Deprecations
Description
Deprecated settings still work. Updatecli accepts the old form, logs a warning, and translates it to the new one, so a manifest keeps running between releases. The warning is the notice: nothing on this page breaks a pipeline today, and everything on it goes away eventually.
How long a deprecation lasts.
COMPATIBILITY.md sets the
rule: an old form is only ever dropped in a major release. No patch or minor release removes
anything on this page, so a manifest that runs today goes on running until the next major ships.
The Since column is there to tell you how long a form has been on notice, not to start a clock.
How each entry behaves. Not all of them are simple renames, and the exceptions are easy to miss while skimming. Every entry in Deprecations by release carries one or more of these markers:
translated - Updatecli rewrites the old form to the new one on every run, so the pipeline behaves as though the manifest had already been migrated.
warned - accepted exactly as written, nothing is rewritten, so migrating is a manual edit.
ignored - the setting has no effect at all beyond the warning.
commitmessage.titleis the only one, see Commit messages.error - already refused outright under some setting or combination.
querybecomes a hard error as soon as the engine moves todasel/v2or later, see Dasel engines.
Tip | Three commands answer "does any of this apply to me?":
|
Deprecations by release
The same entries as the rest of this page, one row per release, newest first. Everything listed here still works, and goes on working until the next major release (see Description).
| Release | Released | Deprecated in this release |
|---|---|---|
2026-08-05 |
| |
2026-04-10 |
| |
2026-02-24 |
| |
2025-08-01 |
| |
2025-03-31 |
| |
2024-11-04 |
| |
2024-07-10 |
| |
2023-10-19 |
| |
2023-05-26 |
| |
2023-02-09 |
| |
2022-12-12 |
| |
2022-11-07 |
| |
2022-09-28 |
| |
2022-09-03 |
| |
2022-08-27 |
| |
2022-05-09 | camelCase transformer names (translated, ignored when the lowercase form is set too) | |
2022-04-06 |
|
Note | The updatecli-action v1 and v2 branches are not in the table. They belong to
updatecli/updatecli-action, which is versioned separately from Updatecli itself, so no Updatecli
release deprecated them and the policy described above does not apply. See Branches v1 and v2. |
Commands
The four original top-level commands moved under pipeline and manifest. All four still run and
log Deprecated command, please instead use ….
| Deprecated | Use instead | Since |
|---|---|---|
|
| v0.114.0 |
|
| v0.114.0 |
|
| v0.114.0 |
|
| v0.31.0 |
See the Commands reference for the current command tree.
Manifest keys
Stage identifiers
Mixed-case and snake_case keys were normalised to lowercase. The old spelling is copied onto the new key and cleared.
| Deprecated | Use instead | Applies to | Since |
|---|---|---|---|
|
| sources, conditions, targets | v0.23.0 |
|
| actions, which only exist from this release on | v0.40.0 |
|
| conditions, targets | v0.23.0 |
|
| sources, conditions, targets | v0.34.0 |
|
| targets | v0.86.0 |
conditionids is the one that changes shape rather than spelling. A target listing
conditionids: [check] becomes:
targets:
default:
dependson:
- condition#checkUpdatecli performs that translation itself and, in doing so, also sets disableconditions: true on
the target (the conditions named in dependson are the only ones that gate it).
Important | Setting the old key and the new key together is not a warning. conditionids combined
with dependson makes Updatecli ignore conditionids; conditionids combined with
disableconditions: true is an outright error, because disabling conditions while naming conditions
is contradictory. The same applies to scmID alongside scmid on an action. |
Resource kind values must also be lowercase. A capitalised kind is accepted and lowercased with
kind value "…" must be lowercase.
Top-level keys
| Deprecated | Use instead | Notes | Since |
|---|---|---|---|
|
| Mutually exclusive - using both is an error, not a warning | v0.40.0 |
|
| Names the manifest | v0.64.1 |
|
| Mutually exclusive - using both is an error | v0.40.0 |
Action kinds
Both were renamed when actions grew beyond pull requests.
| Deprecated | Use instead | Since |
|---|---|---|
|
| v0.40.0 |
|
| v0.40.0 |
Transformers
Every camelCase transformer was renamed to lowercase, all of them in the same release. The behaviour is unchanged.
| Deprecated | Use instead | Since |
|---|---|---|
|
| v0.25.0 |
|
| v0.25.0 |
|
| v0.25.0 |
|
| v0.25.0 |
|
| v0.25.0 |
|
| v0.25.0 |
|
| v0.25.0 |
The deprecated spellings are hidden from the JSON schema, so an editor completing from the schema will only ever offer the lowercase form. See the "Transformer" page.
Actions
github/pullrequest: automerge
Deprecated in v0.116.0 in favour of merge.strategy, which offers three behaviours where
automerge had two.
| Before | After |
|---|---|
| |
automerge: false is not a no-op, it translates to merge.strategy: manual:
| Old value | Translates to | Meaning |
|---|---|---|
|
| Hand the pull request to GitHub’s auto-merge, which merges it once the required checks pass. |
|
| Leave the pull request open for a human. This is also the default when |
- (no equivalent) |
| Updatecli merges the pull request itself, after |
client has no automerge equivalent, so it is only reachable after migrating. See the
"GitHub Pull Request" page.
Resource plugins
Dasel engines
json, toml, and csv read and write through Dasel, selected by the engine parameter.
dasel/v3 arrives in v0.120.0 and, from that release, both dasel/v1 and dasel/v2 are deprecated
in favour of it:
Engine "dasel/v1" is deprecated and will be removed in a future updatecli version. Please use "dasel/v3" instead.The history differs per plugin. json has warned about dasel/v1 since v0.105.0, where the warning
pointed at dasel/v2 instead. toml and csv had no engine parameter at all before v0.120.0, so
that release is where their first warning appears.
| Plugin | Deprecated engines | Since |
|---|---|---|
|
| v0.105.0 (retargeted at |
|
| v0.120.0 |
|
| v0.120.0 |
Warning |
|
Migrating the engine forces a second change. Under dasel/v2 and dasel/v3, query is rejected
rather than warned about:
engine "dasel/v3" requires the parameter "key" over "query"So rename query to key in the same edit.
Setting engine: dasel/v3 is not a flag flip either. The Dasel v3 selector syntax is richer than the
v1 and v2 one, and it is not backward compatible with it, so the keys themselves have to be rewritten.
The leading dot is the usual casualty, .version is a parse error under dasel/v3:
| Before | After |
|---|---|
| |
The "JSON" page compares the selectors engine by engine, and the Dasel documentation covers the v3 syntax in full.
Deprecated parameters
| Plugin | Deprecated | Use instead | Notes | Since |
|---|---|---|---|---|
|
|
| Accepted under | v0.105.0 |
|
|
| Same rule, these plugins only gained | v0.120.0 |
|
|
|
| v0.37.0 |
|
|
| Prefix the old URL onto the repository name | v0.33.0 |
|
|
| Copied across automatically | v0.44.0 |
|
|
| v0.97.0 | |
|
|
| v0.97.0 |
Commit messages
Warning |
To control the commit title, rename the target. Everything else under |
YAML key syntax
Warning |
The rewrite is scheduled to become an error in a future major release. Update the keys now:
This applies to |
Compose file name
The default compose file was renamed from update-compose.yaml to updatecli-compose.yaml in
v0.80.0. The old name is still picked up, with a warning:
Deprecated default compose file "update-compose.yaml" detected. Please rename it to "updatecli-compose.yaml"If both files exist, Updatecli uses the deprecated one and says so:
Both default compose files "update-compose.yaml" and "updatecli-compose.yaml" detected. Please remove "update-compose.yaml" to start using "updatecli-compose.yaml"Renaming the file is the whole migration. See the "Compose" page.
updatecli-action
Branches v1 and v2
The v1 and v2 branches of updatecli/updatecli-action are deprecated. Pin a released version
instead, or track main if you deliberately want the branch tip.
These branches belong to the action’s own repository, which is versioned separately from Updatecli, so this deprecation is not tied to any Updatecli release and is absent from Deprecations by release.
Go Further
Changelogs - what shipped in each release.
Troubleshooting - error messages and what causes them.
Commands - the current command reference.