cylc-flow
cylc-flow copied to clipboard
`cylc release`: only need to match in the tasks-to-hold list
Currently the hold/release commands both work like this:
- glob pattern args:
- find matching task proxies in the task pool
- add/remove their IDs from the tasks-to-hold list
- action the hold/release on the matching task proxies
- specific task ID args:
- add/remove the IDs from tasks-to-hold list
- action the hold/release for any of those that exist in the task pool
HOWEVER, we can only release tasks that are already held, so "release" actually only needs to look at the tasks-to-hold list:
- glob pattern or specific ID:
- find matching IDs in the tasks-to-hold list, and remove them
- action the release for any of those that exist in the task pool
NOTE this allows releasing a glob-hold by using the same glob, even if it no longer matches in the task pool - which can be important in partial graph rewind scenarios. [I have a real example, which motivated this Issue].