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

(Hierarchical) Stage Labels, Conditions, and Transitions #35

Closed
wants to merge 5 commits into from

Conversation

maniwani
Copy link

@maniwani maniwani commented Oct 12, 2021

RENDERED

Summary

Reorganizes the system scheduling API with better separation of responsibilities. Introduces a single schedule executor, reincarnates stages into topological system labels, and splits run criteria into conditions and transitions.

Motivation

The current system scheduling API packs great functional coverage into a tasteful number of tools, but there are some key things missing, and the overall cohesion isn't as good as it could be.

See #2801 for more background.

move rfc into folder

gotta learn to follow instructions

fix image

fix image take 2
tidied up execution stack example

edit bulleted list wording

Made small edit to the summarized benefits for better clarity.

simplify condition pseudocode

More diplomatic motivation, more clarification on labels, transitions, compositions, and tied back to the plugin ecosystem.
reworded some stuff for clarity and fixed typos
mentioned that conditions can be made read-only
cleaned up implementation strategy
rebranded Set to Config
@maniwani maniwani force-pushed the stage-labels-rfc branch 4 times, most recently from 7560aa5 to de448c1 Compare October 13, 2021 00:50
@maniwani maniwani force-pushed the stage-labels-rfc branch 3 times, most recently from 8b9167f to 8d27e34 Compare October 14, 2021 03:09
reworded a fair amount of stuff
@maniwani
Copy link
Author

Closing since @alice-i-cecile is spearheading an RFC for a design a bunch of us discussed in the Discord that incorporates a fair bit of what's in here—only immutable fetches in run criteria, run criteria returning bool, reusable system descriptors, one executor for the schedule.

Some differences are the complete removal of stages (with the addition of an explicit sync point system) and a simpler state machine (no stack whatsover). Any looping and nesting will involve running a nested schedule inside an exclusive system.

@maniwani maniwani closed this Jan 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant