Skip to content

Conversation

@thaJeztah
Copy link
Member

buildx v0.17 was released a Year ago, so any version this conditional code was accounting for would be versions before that; the latest of which being buildx v0.16.2 (July 2024).

Given that those versions are long EOL and no longer supported, we can probably remove the conditional code.

What I did

Related issue

(not mandatory) A picture of a cute animal, if possible in relation to what you did

[buildx v0.17][1] was released a Year ago, so any version this
conditional code was accounting for would be versions before that;
the latest of which being [buildx v0.16.2][2] (July 2024).

Given that those versions are long EOL and no longer supported, we
can probably remove the conditional code.

[1]: https://github.com/docker/buildx/releases/tag/v0.17.0
[2]: https://github.com/docker/buildx/releases/tag/v0.16.2

Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah thaJeztah marked this pull request as ready for review October 13, 2025 19:18
@thaJeztah thaJeztah requested a review from a team as a code owner October 13, 2025 19:18
@thaJeztah thaJeztah requested review from glours and ndeloof October 13, 2025 19:18
Copy link
Contributor

@glours glours left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I let @ndeloof check also

@ndeloof
Copy link
Contributor

ndeloof commented Oct 13, 2025

LGTM, but I wonder we could check version number and warn user running an obsolete release of buildx

@thaJeztah
Copy link
Member Author

That's always gonna be tricky; that applies to all binaries (cli, compose itself, buildx, ... ); we can somewhat fix it in packaging and set a minimum version, https://github.com/docker/packaging/blob/66807ae5e8fbbed4dd498bfe2891c504b78cf38b/pkg/docker-cli/deb/control#L19

@ndeloof
Copy link
Contributor

ndeloof commented Oct 13, 2025

I had in mind Mac/Windows installation with some users relying on homebrew or manual installation, or maybe an older version was selected. We could just check by versions.GreaterThanOrEqualTo(buildx.Version, xxx) if some unsupported version is selected

@ndeloof ndeloof merged commit ae3309a into docker:main Oct 14, 2025
43 of 47 checks passed
@thaJeztah
Copy link
Member Author

Yeah, it's a tricky one; it's good to shell out to buildx because the alternative wasn't great, but it also means that the buildx bake command-line now becomes a formal contract / API for compose.

I wonder if we should consider moving the options-struct-to-command-line-flags conversion to a utility package in buildx; that way changes made in the buildx command-line will stay in lock-step with the code to set those flags (e.g. if a flag is added / removed / renamed / changed, the buildx maintainers can make sure the code that compose uses to call buildx bake is updated as well and set the right version-switch.

Perhaps it would even be an idea to have a (hidden) flag that acccepts a JSON-struct with all the options - that would have a more structured way to pass options to buildx when invoked; i.e., something like

docker buildx bake --___bake_options='{"version":"v0.29.1", "progress": "rawjson", "provenance": true .....}'
  • Some version in that struct could tell buildx bake what version was expected to be used by compose, which could allow buildx bake to adjust things where needed (or detect "unknown fields" and produce an error that a newer verrsion is needed).
  • Some of those options could even be implicit (e.g. when using __bake_options, then always use rawjson)

@crazy-max any thoughts? Would something like that make sense to do? (i.e. a flag or subcommand to execute buildx programmatically?)

@thaJeztah thaJeztah deleted the drop_buildx_0.16 branch October 14, 2025 08:19
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 20, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | patch | `v2.40.0` -> `v2.40.1` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>docker/compose (docker/compose)</summary>

### [`v2.40.1`](https://github.com/docker/compose/releases/tag/v2.40.1)

[Compare Source](docker/compose@v2.40.0...v2.40.1)

#### What's Changed

##### ✨ Improvements

##### 🐛 Fixes

- Write error to watcher error channel if Start() fails by [@&#8203;Trolldemorted](https://github.com/Trolldemorted) in [#&#8203;13263](docker/compose#13263)
- Fix: set PWD only if not set by [@&#8203;kianelbo](https://github.com/kianelbo) in [#&#8203;13268](docker/compose#13268)
- bake only interpolates ${\*} by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13270](docker/compose#13270)
- Fix: make "publish" push all compose files addressed in "extends" statements when using "profiles". by [@&#8203;ogoulpeau-ledger](https://github.com/ogoulpeau-ledger) in [#&#8203;13277](docker/compose#13277)
- Support Ctrl+Z to run compose in background by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13289](docker/compose#13289)
- Fix race-condition bug in publish command by [@&#8203;paul-kinexon](https://github.com/paul-kinexon) in [#&#8203;13291](docker/compose#13291)
- Set secret/config uid:gid to match container's USER by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13288](docker/compose#13288)
- Fix failure to delegate build with bake by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13275](docker/compose#13275)
- Make CTRL+Z a no-op operation on Windows by [@&#8203;glours](https://github.com/glours) in [#&#8203;13293](docker/compose#13293)

##### 🔧  Internal

- pkg/compose: align classic builder implementation with docker/cli by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13278](docker/compose#13278)
- pkg/compose: build with bake: drop support for buildx v0.16 and lower by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13280](docker/compose#13280)
- Use fixed version of compose bridge transformer images by [@&#8203;glours](https://github.com/glours) in [#&#8203;13284](docker/compose#13284)

##### ⚙️ Dependencies

- Build(deps): bump github.com/docker/docker from 28.5.0+incompatible to 28.5.1+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13274](docker/compose#13274)
- Build(deps): bump github.com/docker/cli from 28.5.0+incompatible to 28.5.1+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13273](docker/compose#13273)
- Build(deps): bump golang.org/x/sys from 0.36.0 to 0.37.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13272](docker/compose#13272)
- Build(deps): bump docker/buildx v0.29.1, moby/buildkit v0.25.1 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13279](docker/compose#13279)
- Bump golang to version 1.24.9 by [@&#8203;glours](https://github.com/glours) in [#&#8203;13285](docker/compose#13285)

#### New Contributors

- [@&#8203;Trolldemorted](https://github.com/Trolldemorted) made their first contribution in [#&#8203;13263](docker/compose#13263)
- [@&#8203;ogoulpeau-ledger](https://github.com/ogoulpeau-ledger) made their first contribution in [#&#8203;13277](docker/compose#13277)
- [@&#8203;paul-kinexon](https://github.com/paul-kinexon) made their first contribution in [#&#8203;13291](docker/compose#13291)

**Full Changelog**: <docker/compose@v2.40.0...v2.40.1>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTEuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE1MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants