Fix bevy plugin dependency crashes
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
You would expect that the following: `app.add_plugins(DefaultPlugins.build().disable::())` would disable 2D and every plugin feature that depends on it (gizmos, ui, etc..), but most Bevy plugins rely on feature flags instead. This makes disabling most plugins to crash the app.
## What solution would you like?
- Add plugin checks (is_plugin_added) and allow plugins to specify their plugin dependencies so App can automatically order them.
## What alternative(s) have you considered?
- Short term, we could add plugin checks and order them manually on Default/MinimalPlugins
Contributor guide
Research direction
Start by tracing App plugin registration and the DefaultPlugins and MinimalPlugins entry points described in the issue. Review how is_plugin_added and plugin ordering would interact with disabled SpritePlugin dependencies; done means disabled plugins no longer cause crashes and declared dependencies are handled consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100