-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Deny internal execution order ambiguities in CI #7386
Copy link
Copy link
Closed
Labels
A-Build-SystemRelated to build systems or continuous integrationRelated to build systems or continuous integrationA-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-TestingA change that impacts how we test Bevy or how users test their appsA change that impacts how we test Bevy or how users test their appsD-ComplexQuite challenging from either a design or technical perspective. Ask for help!Quite challenging from either a design or technical perspective. Ask for help!S-Ready-For-ImplementationThis issue is ready for an implementation PR. Go for it!This issue is ready for an implementation PR. Go for it!
Metadata
Metadata
Assignees
Labels
A-Build-SystemRelated to build systems or continuous integrationRelated to build systems or continuous integrationA-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-TestingA change that impacts how we test Bevy or how users test their appsA change that impacts how we test Bevy or how users test their appsD-ComplexQuite challenging from either a design or technical perspective. Ask for help!Quite challenging from either a design or technical perspective. Ask for help!S-Ready-For-ImplementationThis issue is ready for an implementation PR. Go for it!This issue is ready for an implementation PR. Go for it!
What problem does this solve or what need does it fill?
As discussed in #7383, internal execution order ambiguities are genuinely bad.
They often represent subtle bugs, break determinism for end users, and result in noisy logs for users.
What solution would you like?
enumfrom Improvements to execution order ambiguity reporting #4299 to create configurable levels of system execution order ambiguity reporting / strictness first.To actually get this to pass, we need more powerful tools to resolve or ignore ambiguities between plugins that aren't aware of them.
Once #7267 is merged, we should have those.
Then, add some form of
IntegrationPlugintoDefaultPluginsthat uses system set configuration + feature flags to resolve or ignore cross-plugin ambiguities.What alternative(s) have you considered?
Do this manually before every release 🥲
We could just ignore ambiguities on the offending systems completely, but that's definitely incorrect for important systems like UI layout and animation.
Current status