Rename, do not recreate
Rename each existing flow to its new name withkosli rename flow:
How the old name behaves after a rename
After renaming, the old name still resolves to the renamed flow for both reads and writes:kosli get flow,kosli list trailsand similar queries act on the renamed flow.kosli begin trailandkosli attestcommands that still use the old name record into the renamed flow rather than auto-creating a new one.
Rollout order
No simultaneous cutover is needed, because jobs that still use the old name keep landing in the right flow.1
Rename the flow in Kosli
Run
kosli rename flow for each flow you are moving onto the convention.2
Update pipelines at your own pace
Change the flow name in each CI job when convenient, across any number of CI systems. Jobs that have not been updated yet continue to record into the renamed flow.
3
Retire the old name
Once no pipeline uses the old name, it needs no further action. Leave it unused so it keeps pointing at the renamed flow.
When the convention also changes trail names
Renaming a flow does not change how trails inside it are named. A job that has not been updated still writes trail names in the old style into the renamed flow. For flows whose trail naming also changes, either:- update the pipeline before renaming the flow, so the first trails under the new flow name already follow the convention, or
- rename the flow first and accept a short window of off-convention trail names until the pipeline is updated.
Limits
- A rename cannot split a flow. A flow that mixes build and release activity cannot be turned into a Build Flow and a Release Flow by renaming. Create the new flows, point the pipelines at them, and archive the old flow once it is no longer used.
- Archiving retires a name from auto-creation. Archiving a flow renames it to
<name>-archived-at-<timestamp>, but Kosli remembers the original name. A stalekosli attestorkosli begin trailjob that still uses it fails withCannot auto-create Flow because '<name>' previously existedinstead of silently creating a new flow. An explicitkosli create flowwith that name still succeeds and takes the name over. Seekosli archive flow.