I’ve asked similar questions before, but I wanted to see if there were any changes with recent updates or plans for future upgrades in this area.
When you trigger a new flow, and there are cross cycle pre-reqs, is there a way to automatically satisfy them?
e.g. with a simple workflow. This workflow will stall.
$ cat flow.cylc
[scheduler]
allow implicit tasks = True
[scheduling]
initial cycle point = 20250916T06
runahead limit = P2
[[graph]]
T06, T18 = """
@wall_clock => a_0
b_0[-PT12H] => a_0 & b_0
a_0 => b_0
"""
[runtime]
[[a_0]]
script = true
[[b_0]]
script = if [[ ${CYLC_TASK_CYCLE_POINT} == '20250917T0600Z' ]]; then cylc trigger --flow=new $CYLC_WORKFLOW_NAME //20250917T0600Z/a_0; fi
$ cylc show basic-workflow//20250917T0600Z/b_0
title: (not given)
description: (not given)
URL: (not given)
state: waiting
flows: [2]
prerequisites: ('⨯': not satisfied)
✓ 20250917T0600Z/a_0 succeeded
⨯ 20250916T1800Z/b_0 succeeded
...
Without manual intervention (or programming in logic to either know all cross-cycle pre-reqs or figure them out dynamically), 20250917T0600Z/b_0
will never be able to run. I had tried things like cylc set -p //20250916T1800Z/*:succeeded basic-workflow //20250917T0600Z/*
but Cylc didn’t like that
2025-09-18T00:54:54Z WARNING - Invalid prerequisite task name:
Illegal task name: *
It would be useful to be able to be able to do something like
# Trigger a new flow and Cylc auto-sets any prereqs from previous cycles which were satisfied for the previous flow
cylc trigger --flow-new --auto-set-old-cycle-prereq basic-workflow //20250917T0600Z/a_0
OR
# Trigger new flow and then set, for all tasks in the current cycle, including ones not in n=0 window, all prereqs from the previous cycle
cylc trigger --flow-new basic-workflow //20250917T0600Z/a_0
cylc set -p '//20250916T1800Z/*:succeeded' basic-workflow '//20250917T0600Z/*