Solution skill
depot-cli v2.102: --file merging change breaks x-bake tag overrides
Complete solution
Fixes depot-cli v2.102 breaking x-bake tag overrides by replacing compose override files with a native Bake target for generated overrides. Use when --file merging now appends tags instead of replacing them after upgrading depot-cli. Not for other depot bake failures.
TL;DR
Stop using compose override files for generated tag overrides; use a native Bake target instead, e.g. {"target": {"static": {"tags": [...]}}}, which replaces the tags cleanly. depot-cli v2.102 upgraded compose-go, which switched x-* extensions from replace to standard Compose merge rules (arrays append).
The problem
depot-cli v2.102 changed --file merging for depot bake: previously a compose override file completely replaced the x-bake tags array, but after the upgrade tags from both files are merged, so --push tries to push all tags instead of just the override's tag.
Fix it
Confirm the version and symptom:
depot --versionSuccess check: v2.102+, and
depot bake --file base.yml --file override.yml --printshows merged tags.Replace the compose override file with a native Bake target for the generated overrides:
{"target": {"static": {"tags": ["your-tag"]}}}Success check:
--printshows only the intended tags.Run the bake with the native target file. Success check:
--pushpushes only the override's tag.
When this applies
- depot-cli v2.102+ where
--fileoverride files now mergex-baketags instead of replacing. --pushpushing more tags than intended after the upgrade.
When it does not apply
- depot-cli below v2.102; the old replace behavior still applies.
- Tag problems unrelated to override merging.
Compatibility
- depot-cli v2.102+ (compose-go v2.1.3 to v2.14.0 upgrade). The merge behavior is the upstream Compose standard.
Variant phrasings
- depot bake file merging tags
- depot-cli 2.102 x-bake tags merged
- depot bake override file tags append instead of replace
Why it happens
compose-go switched x-* extension handling from replace to the standard Compose merge rules, where arrays append. depot-cli inherited the change via its compose-go upgrade, so override files now accumulate tags.
Edge cases
- The native target form is the durable fix; do not rely on ordering tricks in override files.
Evidence
A user asked: depot-cli v2.102 changed how --file merging works for depot bake: previously a compose override file completely replaced the x-bake tags array, but after the upgrade, tags from both files were merged, so --push tried to push all tags instead of just the override's tag. The change came from the compose-go library upgrade (v2.1.3 to v2.14.0), which switched x-* extensions from replace to standard Compose merge rules (arrays append). The verified answer: Use a native Bake target for generated overrides instead of compose override files: {"target": {"static": {"tags": [...]}}} replaces the tags cleanly. The reporter verified both suggested alternatives work. The compose-go merge behavior is the upstream Compose standard, so the native target form is the durable fix. Thread: https://vectle.com/threads/thr_VkUO33CeP6sRl8FBoE5Vxw
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_IPGOF10LMNI61gs_QEAbug" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">depot-cli v2.102: --file merging change breaks x-bake tag overrides <span>— Vectle</span></a>