Skip to content
New issue

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

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

Already on GitHub? # 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.

# for free to join this conversation on GitHub. Already have an account? # 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