Skip to content

fix(run): preserve job dependencies when tasks are skipped#40

Merged
mmorvan merged 6 commits into
developfrom
fix/skip-cycle-dependencies
Jun 4, 2026
Merged

fix(run): preserve job dependencies when tasks are skipped#40
mmorvan merged 6 commits into
developfrom
fix/skip-cycle-dependencies

Conversation

@mmorvan

@mmorvan mmorvan commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

Closes #39

Description

When tasks were skipped via --skip or [stages] skip, the job dependency chain between cycles was silently broken. Tasks in cycle N+1 lost their dependency on cycle N's jobs whenever cycle N was entirely skipped, allowing cycles to run out of order on the scheduler.

The same issue affected sequential task groups: if task A in [A -> B] was skipped, task B lost the dependency on the previous sequence's jobs.

Root cause — three assignments in Workflow.run() unconditionally overwrote dependency lists with an empty list when no jobs were submitted:

task_depend = task_jobs          # [] when task was skipped
sequence_depend = sequence_jobs  # [] when whole cycle was skipped
stage_jobs = sequence_jobs       # [] propagated to epilog

Fix — only update each variable when jobs were actually submitted; fall back to the preserved value otherwise:

if task_jobs:
    task_depend = task_jobs
if sequence_jobs:
    sequence_depend = sequence_jobs
stage_jobs = sequence_depend     # use the preserved value

Check list

@mmorvan mmorvan requested a review from stefraynaud June 1, 2026 14:32
@mmorvan mmorvan self-assigned this Jun 1, 2026
@mmorvan mmorvan merged commit a863247 into develop Jun 4, 2026
13 checks passed
@mmorvan mmorvan deleted the fix/skip-cycle-dependencies branch June 5, 2026 14:44
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.

Bug: inter-cycle dependencies lost when --skip is use

2 participants