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

Improvements to execution order ambiguity reporting #4299

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
91a5e35
Number the reported ambiguities, to make them easier to discuss in a …
afonsolage Sep 2, 2021
9892cc1
Fixed formatting
afonsolage Sep 2, 2021
3383bf0
Explain which components/resources the systems are conflicting on.
afonsolage Sep 2, 2021
50b86c6
Fixed wrong output_prefix
afonsolage Sep 2, 2021
21aad3e
Report ambiguities where all pairwise combinations of systems conflic…
afonsolage Sep 3, 2021
f0c7134
Create a simple ambiguous method that causes a system to be ignored c…
afonsolage Sep 3, 2021
601a267
Create a simple ambiguous_with system_label method to create two-elem…
afonsolage Sep 3, 2021
66ba0f9
Provide an 'X unresolved ambiguities detected' message that runs by d…
afonsolage Sep 4, 2021
5d3ff55
Fixed format issue
afonsolage Sep 4, 2021
b9e4988
Fixed ecs_guide example
afonsolage Sep 4, 2021
e997b1d
Provide an way to ignore/filter crates when using ambiguity checker.
afonsolage Sep 4, 2021
7972ee1
By default, ambiguity checker should ignore internal bevy crates.
afonsolage Sep 4, 2021
389d2ec
Added better message when warning about unresolved ambiguities
afonsolage Sep 4, 2021
fe7c475
Updated ReportExecutionOrderAmbiguities docs
afonsolage Sep 4, 2021
2d01a15
Added ambiguity_checker example
afonsolage Sep 4, 2021
3bbb669
Fixed typo on ReportExecutionOrderAmbiguities docs
afonsolage Sep 4, 2021
36007e3
Added example on README.md
afonsolage Sep 4, 2021
ae0d6c8
Ignoring ReportExecutionOrderAmbiguities doc test since there is no b…
afonsolage Sep 4, 2021
9b3cd44
Changed ambiguity_checker to use custom component instead of primitiv…
afonsolage Sep 4, 2021
5170f46
Moved ecs_guide to be the first example on ECS section
afonsolage Sep 5, 2021
ad04d76
Added better example description on README.md
afonsolage Sep 5, 2021
f9a4b1f
Apply suggestions from code review
afonsolage Sep 6, 2021
eb17666
Added doc hidden method include_bevy witch includes bevy internal crates
afonsolage Sep 7, 2021
b19876b
Added missing docs on ReportExecutionOrderAmbiguities.ignore
afonsolage Sep 7, 2021
5da7a37
Renamed ambigous method to silence_ambiguity_checks
afonsolage Sep 7, 2021
a006845
Supress the hint message if the ReportExecutionOrderAmbiguities is al…
afonsolage Sep 7, 2021
4aa6cc9
Typo suggestion fix
afonsolage Sep 7, 2021
0837a34
Fixed formating
afonsolage Sep 8, 2021
5e53970
Explicitly added bevy internal crates names, in order to avoid conflu…
afonsolage Sep 8, 2021
3487c47
Ambiguity checker ignores conflicts only between crates inside the cr…
afonsolage Sep 8, 2021
fb1dffb
Fixed ambiguity tests error due to new ambiguity check behavior
afonsolage Sep 8, 2021
b746726
Apply suggestions from code review
afonsolage Sep 8, 2021
85a6663
Fixed formatting
afonsolage Sep 8, 2021
cf08855
Removed bevy_egui from BEVY_CRATES
afonsolage Sep 10, 2021
ea27bd9
Fixed BEVY_CRATES array size
afonsolage Sep 10, 2021
d058e35
Added instructions to add new crates to BEVY_CRATES array
afonsolage Sep 10, 2021
f152eb4
Fixed typo on ReportExecutionOrderAmbiguities ignore function
afonsolage Sep 12, 2021
f8c0a7b
Removed BEVY_CRATES const array
afonsolage Sep 12, 2021
063445f
Added ignore crate on plugins of bevy_audio, bevy_render, bevy_sprite…
afonsolage Sep 12, 2021
d1fb419
Updated ambiguity_checker example
afonsolage Sep 12, 2021
9b6bb09
Updated ReportExecutionOrderAmbiguities docs
afonsolage Sep 12, 2021
a5371f0
Removed the information of BEVY_CRATES from CONTRIBUTING.md, since it…
afonsolage Sep 12, 2021
fcf14d7
Fix up rebase
alice-i-cecile Mar 23, 2022
1b919cd
Add default for AmbiguityDetection enum
alice-i-cecile Mar 23, 2022
61251bd
Simplify and clarify execution order reporting
alice-i-cecile Mar 23, 2022
5301761
CI nits
alice-i-cecile Mar 23, 2022
0b734ee
MyAnotherResource -> MyOtherResource
alice-i-cecile Mar 23, 2022
07a8a21
Improve wording of warning
alice-i-cecile Mar 23, 2022
886655d
Split ambiguity detection logic off into its own file
alice-i-cecile Mar 23, 2022
1a9e574
Rename silence_ambiguity_checks to ignore_all_ambiguities
alice-i-cecile Mar 28, 2022
e241983
Yeet ambiguity sets
alice-i-cecile Mar 28, 2022
0b81818
Note value of defaults
alice-i-cecile Mar 28, 2022
17a0fb2
Docs for AmbiguityReportLevel
alice-i-cecile Mar 28, 2022
1dbd05d
Fix rebase
alice-i-cecile Mar 28, 2022
692e27f
Allow the use of implicit system labels with ambiguous_with
alice-i-cecile Mar 28, 2022
b279192
Export ReportExecutionOrderAmbiguities in prelude
alice-i-cecile Mar 28, 2022
28afc86
Simplify architecture
alice-i-cecile Mar 29, 2022
c51432e
No need to add the resource in CorePlugin
alice-i-cecile Mar 29, 2022
d246a14
No need for LogPlugin
alice-i-cecile Mar 29, 2022
43ef139
More reporting levels
alice-i-cecile Mar 29, 2022
16fcfa9
Refactor to expose method to get ambiguities on SystemStage
alice-i-cecile Mar 29, 2022
6924d0c
Refactored (usize, usize, Vec<ComponentId>) into SystemOrderAmbiguity
alice-i-cecile Mar 29, 2022
402388c
Explicitly pass in a reporting level
alice-i-cecile Mar 29, 2022
746c0c6
Basic tests for ambiguity reporting levels
alice-i-cecile Mar 29, 2022
7a90186
Initialize schedules for tests
alice-i-cecile Mar 29, 2022
f9075ba
Expose n_ambiguities method on SystemStage
alice-i-cecile Mar 29, 2022
3452c2b
Expose SystemStage::initialize
alice-i-cecile Mar 29, 2022
e8c2c0a
More tests
alice-i-cecile Mar 29, 2022
c3906a2
Fix logic for ignoring ambiguities
alice-i-cecile Mar 29, 2022
216bd1a
Remove error-prone Ord and PartialOrd traits
alice-i-cecile Mar 29, 2022
84ef1a7
Remove report_internal test
alice-i-cecile Mar 29, 2022
4e11653
Split error message by singular and plural for grammar purposes
alice-i-cecile Mar 29, 2022
94c67c5
Add internal_ambiguities dev example
alice-i-cecile Mar 30, 2022
5bd467d
Add bevy_hierarchy to the internal blacklist
alice-i-cecile Mar 30, 2022
ee09475
Use stage.initialize in tests
alice-i-cecile Mar 30, 2022
20306ce
Yeet giant test
alice-i-cecile Mar 30, 2022
606cd98
Comprehensive test suite
alice-i-cecile Mar 30, 2022
adb6216
Hide rough edges from the public API
alice-i-cecile Mar 30, 2022
fc2d598
Naming consistency
alice-i-cecile Mar 30, 2022
f252a70
Refactor to make SystemOrderAmbiguity safe for public consumption
alice-i-cecile Mar 30, 2022
c716d19
Tests for exclusive systems
alice-i-cecile Mar 30, 2022
0edb0ec
Make ambiguity reporting prettier
alice-i-cecile Mar 30, 2022
ae0dee1
Make warning for exclusive system conflicts clearer
alice-i-cecile Mar 30, 2022
583fdee
Make levels of ReportExecutionOrderAmbiguities consistent with clippy
alice-i-cecile Mar 30, 2022
4df39ff
Rename ReportExecutionOrderAmbiguities to ExecutionOrderAmbiguities
alice-i-cecile Mar 30, 2022
b38bb1b
Thanks clippy
alice-i-cecile Mar 30, 2022
69cb9b7
Fix broken tests
alice-i-cecile Mar 31, 2022
7b13ca7
Fix type name formatting when a local type is used as second type param
alice-i-cecile Mar 31, 2022
65cb329
Fix doc links
alice-i-cecile Mar 31, 2022
f9148cf
Simplify string parsing
alice-i-cecile Mar 31, 2022
312168f
Fix overlooked refactoring errors
alice-i-cecile Mar 31, 2022
d90fa27
Use tracing macros, rather than println!()
alice-i-cecile Mar 31, 2022
299263c
Fix with/without query slicing test
alice-i-cecile Mar 31, 2022
4d64cfb
Ignore known failing test
alice-i-cecile Mar 31, 2022
0f65194
Remove spurious println()
alice-i-cecile Apr 4, 2022
7cf82da
Cleaner handling of plural case.
alice-i-cecile Apr 4, 2022
5c1000c
Formatting
alice-i-cecile Apr 4, 2022
ade98dc
Fix internal_ambiguities example warning level
alice-i-cecile Apr 4, 2022
7a8d1e0
Minor fixes
alice-i-cecile Apr 4, 2022
4ce3a21
Improve docs
alice-i-cecile Apr 4, 2022
078d69a
Move type name shortening to bevy_utils
alice-i-cecile Apr 4, 2022
77d5c33
Reuse get_short_name function
alice-i-cecile Apr 4, 2022
81b3065
Handle more edge cases in get_short_name
alice-i-cecile Apr 4, 2022
d102ffe
Re-enable commented out test
alice-i-cecile Apr 4, 2022
19e8d5f
Use ignore syntax
alice-i-cecile Apr 4, 2022
d705c3b
Move derives below docs
alice-i-cecile Apr 4, 2022
2f8c36b
Remove TODO
alice-i-cecile Apr 11, 2022
efaad59
Wording suggestions
alice-i-cecile Apr 11, 2022
7d66097
More wording suggestions
alice-i-cecile Apr 11, 2022
5671675
Deterministic, not lockstep
alice-i-cecile Apr 11, 2022
57fb76d
Fix outdated error message
alice-i-cecile Apr 20, 2022
bddee99
Fix rebase
alice-i-cecile Apr 22, 2022
733fbaf
Ignore newly introduced internal ambiguities T_T
alice-i-cecile Apr 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,10 @@ name = "custom_diagnostic"
path = "examples/diagnostics/custom_diagnostic.rs"

# ECS (Entity Component System)
[[example]]
name = "ambiguity_checker"
path = "examples/ecs/ambiguity_checker.rs"

[[example]]
name = "ecs_guide"
path = "examples/ecs/ecs_guide.rs"
Expand Down Expand Up @@ -544,6 +548,10 @@ path = "examples/stress_tests/transform_hierarchy.rs"

# Tools

[[example]]
name = "internal_ambiguities"
path = "examples/tools/internal_ambiguities.rs"

[[example]]
name = "scene_viewer"
path = "examples/tools/scene_viewer.rs"
Expand Down
7 changes: 4 additions & 3 deletions crates/bevy_ecs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,10 @@ pub mod prelude {
event::{EventReader, EventWriter},
query::{Added, AnyOf, ChangeTrackers, Changed, Or, QueryState, With, Without},
schedule::{
AmbiguitySetLabel, ExclusiveSystemDescriptorCoercion, ParallelSystemDescriptorCoercion,
RunCriteria, RunCriteriaDescriptorCoercion, RunCriteriaLabel, Schedule, Stage,
StageLabel, State, SystemLabel, SystemSet, SystemStage,
AmbiguitySetLabel, ExclusiveSystemDescriptorCoercion, ExecutionOrderAmbiguities,
ParallelSystemDescriptorCoercion, RunCriteria, RunCriteriaDescriptorCoercion,
RunCriteriaLabel, Schedule, Stage, StageLabel, State, SystemLabel, SystemSet,
SystemStage,
},
system::{
Commands, In, IntoChainSystem, IntoExclusiveSystem, IntoSystem, Local, NonSend,
Expand Down
Loading