bevyengine / bevyengine/bevy

Fix bevy plugin dependency crashes

Open
#12,782 1 comment 0 reactions 0 assignees View on GitHub
A-App C-Bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.