Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate App::add_system in favor of allowing single systems to be passed into add_systems #7992

Closed
alice-i-cecile opened this issue Mar 9, 2023 · 1 comment
Labels
A-ECS Entities, components, systems, and events C-Usability A targeted quality-of-life change that makes Bevy easier to use X-Controversial There is active debate or serious implications around merging this PR
Milestone

Comments

@alice-i-cecile
Copy link
Member

What problem does this solve or what need does it fill?

There are several problems here:

  1. It's easy to typo add_system as add_systems and vice versa.
  2. The APIs are duplicative and somewhat confusing.
  3. The APIs are annoying to refactor between.
  4. Working with the complex mess of traits is a pain when writing app extension methods and internally.

What solution would you like?

  1. Use the same trick as in [Merged by Bors] - Implement Bundle for Component. Use Bundle tuples for insertion #2975 and impl the relevant trait for single systems.
  2. Deprecate App::add_system.
  3. Remove all of the single system traits if possible.

This must have a deprecation notice to reduce the migration pain.

Additional context

Discussed on Discord with @cart.

We could do the same thing for plugins later. See #7631 for a parallel problem there.

@alice-i-cecile alice-i-cecile added A-ECS Entities, components, systems, and events C-Usability A targeted quality-of-life change that makes Bevy easier to use X-Controversial There is active debate or serious implications around merging this PR labels Mar 9, 2023
@alice-i-cecile alice-i-cecile added this to the 0.11 milestone Mar 9, 2023
@hymm
Copy link
Contributor

hymm commented Apr 16, 2023

Should this be closed? add_system was deprecated in #8079.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ECS Entities, components, systems, and events C-Usability A targeted quality-of-life change that makes Bevy easier to use X-Controversial There is active debate or serious implications around merging this PR
Projects
None yet
Development

No branches or pull requests

2 participants