-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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 more granular system sets for state transition schedule ordering #13763
Add more granular system sets for state transition schedule ordering #13763
Conversation
89e7472
to
b5cfb7c
Compare
We should collaborate on either this or #13724: they seem very similar :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall the PR is good - the main issue was in the test, so I'd recommend applying some changes there (I provided suggestions) - but once they're in I'll be happy with this.
Co-authored-by: Lee-Orr <lee-orr@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some documentation nits & a question.
This in the changelog seems not entirely accurate. |
8187a21
to
dd100cc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good tests, reasonable implementation. If you can get CI green I'll merge this tomorrow during the merge train.
dd100cc
to
ad188aa
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed the added test, but the implementation looks good.
…13763) # Objective Fixes #13711 ## Solution Introduce smaller, generic system sets for each schedule variant, which are ordered against other generic variants: - `ExitSchedules<S>` - For `OnExit` schedules, runs from leaf states to root states. - `TransitionSchedules<S>` - For `OnTransition` schedules, runs in arbitrary order. - `EnterSchedules<S>` - For `OnEnter` schedules, runs from root states to leaf states. Also unified `ApplyStateTransition<S>` schedule which works in basically the same way, just for internals. ## Testing - One test that tests schedule execution order --------- Co-authored-by: Lee-Orr <lee-orr@users.noreply.github.com>
Objective
Fixes #13711
Solution
Introduce smaller, generic system sets for each schedule variant, which are ordered against other generic variants:
ExitSchedules<S>
- ForOnExit
schedules, runs from leaf states to root states.TransitionSchedules<S>
- ForOnTransition
schedules, runs in arbitrary order.EnterSchedules<S>
- ForOnEnter
schedules, runs from root states to leaf states.Also unified
ApplyStateTransition<S>
schedule which works in basically the same way, just for internals.Testing