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

Add a plugin / world setting for missing resource parameter panicking, skipping, and warning #17309

Open
fallible-algebra opened this issue Jan 11, 2025 · 1 comment
Labels
A-ECS Entities, components, systems, and events C-Feature A new feature, making something new possible D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design This issue requires design work to think about how it would best be accomplished

Comments

@fallible-algebra
Copy link

fallible-algebra commented Jan 11, 2025

0.15.1 reverted the behaviour of "non-Option resources aren't present" from its 0.15 behaviour (non-panicking, warn once, skip the system for as long as those resources aren't present) to 0.14 behaviour (panic). While there now exists a method to allow this warn-once behaviour per-system, there is not a global / plugin setting to change this behaviour.

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

Eliding the need to migrate already-existing large projects to this new behaviour.

What solution would you like?

A plugin or world setting to re-enable "warn once, skip, and don't panic" behaviour as the "default" for new systems.

What alternative(s) have you considered?

  • Extending App with some kind of RegisterSkippableSystems trait that registers systems and marks them as warn-once don't-panic, and using this exclusively.
  • Reverting my own project to 0.15.

Additional context

I began working on my own project during the 0.15 release candidate process with "don't run if the resources aren't present" as a behaviour in mind, it being a welcome change to me in early prototyping. While I could migrate to this new fallible systems method of doing things (and I likely will at a later date – but at the moment I'm focused on other parts of development), this will involve a lot of rewriting and the system parameters for systems I write in future will be more verbose.

Related issues: #16578, #15265, #17138, #17178, #17324

@fallible-algebra fallible-algebra added C-Feature A new feature, making something new possible S-Needs-Triage This issue needs to be labelled labels Jan 11, 2025
@fallible-algebra fallible-algebra changed the title Add a plugin / world setting for missing system parameter panicking, skipping, and warning Add a plugin / world setting for missing resource parameter panicking, skipping, and warning Jan 11, 2025
@BenjaminBrienen BenjaminBrienen added A-ECS Entities, components, systems, and events D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design This issue requires design work to think about how it would best be accomplished and removed S-Needs-Triage This issue needs to be labelled labels Jan 11, 2025
@fallible-algebra
Copy link
Author

fallible-algebra commented Jan 13, 2025

It seems that trying to avoid 0.15.1 and depend on =0.15.0 is a fragile alternative due to this change happening in a "patch" semver version. edit: But adding bevy_ecs = "=0.15.0" does actually fix the dependencies at 0.15.0.

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-Feature A new feature, making something new possible D-Complex Quite challenging from either a design or technical perspective. Ask for help! S-Needs-Design This issue requires design work to think about how it would best be accomplished
Projects
None yet
Development

No branches or pull requests

2 participants