-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Summary
This issue proposes simplifying and clarifying the job state model to reduce ambiguity, remove overlapping meanings, and improve both documentation and implementation.
Proposed changes
-
Reduce overlapping terminal states (canceled / terminated)
Both represent jobs that are intentionally stopped before completion. Unless there is a strong requirement to distinguish user-initiated from system-initiated termination, these can likely be collapsed into a single terminal state (for example,canceled). -
Reduce overlapping dependency states (blocked / uninitialized)
Both represent jobs whose dependencies are not yet satisfied. The distinction between “created but not evaluated” and “evaluated but still waiting” may not be necessary. We could merge it into a single state that simply means “created but not runnable due to dependencies.” -
Remove
disabledas a runtime state
Thedisabledstate does not describe an execution phase, but rather a configuration/metadata flag. A disabled job means “do not schedule this job,” which is better modeled as a property (for example,enabled = false) instead of a runtime state in the lifecycle. -
Clarify the distinction between
readyandpendingin the documentation
The intended behavior seems to be:ready: job has satisfied all dependencies and is waiting in the queue to be claimed by a runner.pending: job has been claimed and is waiting for resources to start running.
Example wording forpending: “Job was claimed and is waiting for resources to run.”