Skip to content

Conversation

alessio-perugini
Copy link
Contributor

@alessio-perugini alessio-perugini commented May 6, 2025

What I did

Added missing format option to the formatter.Print function.
Handling the yaml case separately, as it's not supported by the formatter.Print function. Maybe we can extend that function by adding support for yaml?

Before:

NAME                   REQUIRED            DEFAULT VALUE          ALTERNATE VALUE
DOCKER_REGISTRY_BASE   false               ubuntu/ubuntu:latest
BIND_PORT              false               8100
BIND_ADDRESS           false               127.0.0.1

After:

{
    "BIND_ADDRESS": {
        "Name": "BIND_ADDRESS",
        "DefaultValue": "127.0.0.1",
        "PresenceValue": "",
        "Required": false
    },
    "BIND_PORT": {
        "Name": "BIND_PORT",
        "DefaultValue": "8100",
        "PresenceValue": "",
        "Required": false
    },
    "DOCKER_REGISTRY_BASE": {
        "Name": "DOCKER_REGISTRY_BASE",
        "DefaultValue": "ubuntu/ubuntu:latest",
        "PresenceValue": "",
        "Required": false
    }
}

Related issue

closes #12808

I've noticed that all the other flags that produce some kind of output like --services don't honor the --format flag.
Most of them just return a raw fmt.Println.

When diving deeper into the fix, I've noticed that the format flag defaults to yaml, even when not explicitly provided, and is used only by the default config command without any flags.

I've opted to change the default value to an empty string and override that if we are going to execute the runConfig func. This shouldn't break the old behavior, but I could be wrong here.

Cute animal photo

cute-animal

@alessio-perugini alessio-perugini requested a review from a team as a code owner May 6, 2025 17:20
@alessio-perugini alessio-perugini requested review from ndeloof and glours May 6, 2025 17:20
When providing the --variables with --format flag, the current
implementation always printed in human readable form.
This patch correctly add the missing format in the formatter.Print
function, making the commands behave as an user would expect.

Example:
`config --variables --format json`

Signed-off-by: Alessio Perugini <alessio@perugini.xyz>
@alessio-perugini alessio-perugini force-pushed the variables-follow-the-format-setting branch from 4debc20 to 14bc441 Compare May 6, 2025 17:25
Signed-off-by: Alessio Perugini <alessio@perugini.xyz>
@alessio-perugini alessio-perugini force-pushed the variables-follow-the-format-setting branch from 245d340 to abecf66 Compare May 6, 2025 17:43
@ndeloof
Copy link
Contributor

ndeloof commented May 6, 2025

run make docs to update docs after flag update

Signed-off-by: Alessio Perugini <alessio@perugini.xyz>
@alessio-perugini
Copy link
Contributor Author

@ndeloof done in 7558912

@ndeloof ndeloof merged commit 4bf18d2 into docker:main May 6, 2025
28 checks passed
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request May 8, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | minor | `v2.34.0` -> `v2.36.0` |

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.36.0`](https://github.com/docker/compose/releases/tag/v2.36.0)

[Compare Source](docker/compose@v2.35.1...v2.36.0)

#### What's Changed

🎉 You can now use external binaries as service provider to extend Compose behaviour. For more information about creating your own plugin check [the documentation](https://github.com/docker/compose/blob/main/docs/extension.md)

##### ✨ Improvements

-   Introduce `networks.interface_name` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12771
-   Add support for `COMPOSE_PROGRESS` env variable by [@&#8203;AnvarU](https://github.com/AnvarU) in docker/compose#12769
-   Document extensibility using service.provider and open provider to external binaries by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12777
-   Introduce build `--check` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12765

##### 🐛 Fixes

-   Build: write `--print` output to stdout by [@&#8203;emersion](https://github.com/emersion) in docker/compose#12756
-   Fix: concurrent map writes when pulling by [@&#8203;skanehira](https://github.com/skanehira) in docker/compose#12752
-   Fix support for remote absolute path by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12786
-   Fix collect image digests for service images built by bake by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12784
-   Enable services implicitly declared by a service:xx build dependency by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12785
-   Fix config `--variables` not honoring the `--format` flag by [@&#8203;alessio-perugini](https://github.com/alessio-perugini) in docker/compose#12809

##### 🔧  Internal

-   Remove support of Synchronize File Shares integration with Docker Desktop by [@&#8203;glours](https://github.com/glours) in docker/compose#12763
-   Display proper event message for provider services on up and down by [@&#8203;glours](https://github.com/glours) in docker/compose#12788
-   E2e test for start_interval by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12795
-   Document behavior on missing extension by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12802

##### ⚙️ Dependencies

-   Build(deps): bump github.com/docker/cli from `28.1.0+incompatible` to `28.1.1+incompatible` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12761
-   Build(deps): bump github.com/docker/docker from `28.1.0+incompatible` to `28.1.1+incompatible` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12759
-   Build(deps): bump google.golang.org/grpc from `1.71.1` to `1.72.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12760
-   Build(deps): bump github.com/containerd/containerd/v2 from `2.0.4` to `2.0.5` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12758
-   Bump compose-go to `v2.6.1` by [@&#8203;glours](https://github.com/glours) in docker/compose#12766
-   Bump compose-go to `v2.6.2` by [@&#8203;glours](https://github.com/glours) in docker/compose#12810
-   Build(deps): bump github.com/moby/buildkit from `0.21.0` to `0.21.1` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12796
-   Build(deps): bump golang.org/x/sync from `0.13.0` to `0.14.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12805
-   Build(deps): bump golang.org/x/sys from `0.32.0` to `0.33.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12804
-   Build(deps): bump go.uber.org/mock from `0.5.1` to `0.5.2` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12792

#### New Contributors

-   [@&#8203;skanehira](https://github.com/skanehira) made their first contribution in docker/compose#12752
-   [@&#8203;AnvarU](https://github.com/AnvarU) made their first contribution in docker/compose#12769
-   [@&#8203;alessio-perugini](https://github.com/alessio-perugini) made their first contribution in docker/compose#12809

**Full Changelog**: docker/compose@v2.35.1...v2.36.0

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

[Compare Source](docker/compose@v2.35.0...v2.35.1)

#### What's Changed

##### 🐛 Fixes

-   Use bind API for bind mounts by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12733
-   Prefer bind API by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12734

##### 🔧  Internal

-   CI(bin-image): free disk space by [@&#8203;crazy-max](https://github.com/crazy-max) in docker/compose#12732
-   Fix zizmor security alerts on GHA workflows by [@&#8203;glours](https://github.com/glours) in docker/compose#12737
-   Chore: make function comment match function name by [@&#8203;dufucun](https://github.com/dufucun) in docker/compose#12748
-   Migrate to use github.com/moby/go-archive by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#12716

##### ⚙️ Dependencies

-   Build(deps): bump github.com/moby/buildkit from `0.20.1` to `0.20.2` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12667
-   Build(deps): bump google.golang.org/grpc from `1.71.0` to `1.71.1` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12691
-   Build(deps): bump go.uber.org/mock from `0.5.0` to `0.5.1` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12720
-   Build(deps): bump golang.org/x/crypto from `0.32.0` to `0.35.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12745
-   Bump buildkit `v0.21.0`, buildx `v0.23.0` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#12754
-   Downgrade go-difflib and go-spew to tagged releases by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#12755
-   Bump github.com/docker/docker, github.com/docker/cli `v28.1.0` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#12738

#### New Contributors

-   [@&#8203;dufucun](https://github.com/dufucun) made their first contribution in docker/compose#12748

**Full Changelog**: docker/compose@v2.35.0...v2.35.1

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

[Compare Source](docker/compose@v2.34.0...v2.35.0)

#### What's Changed

🎉  1st implementation of external services feature to support Docker Model Runner in Compose by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12692

##### ✨ Improvements

-   Set `$PWD` (may not be supported on Windows) by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12643
-   Introduce config `--no-env-resolution` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12665
-   Introduce `build --print` to dump equivalent bakefile by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12675
-   Feat(run): Add `--quiet` and `--quiet-build` options for the `run` command by [@&#8203;idsulik](https://github.com/idsulik) in docker/compose#12685
-   Introduce `volume.type=image` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12725

##### 🐛 Fixes

-   Fix support for secret set by env inside included file by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12635
-   Fix edge-case bug checking path prefix in watch for bind mount volumes by [@&#8203;matiboux](https://github.com/matiboux) in docker/compose#12640
-   Run only loads required service env_file and ignores others by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12645
-   Fixed support for `depends_on.restart` in `up` and `restart` commands  by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12649
-   Bake parses "${}" in DockerfileInline as a variable by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12664
-   Fix(secrets): Reverted secrets file mode 440 -> 444 by [@&#8203;idsulik](https://github.com/idsulik) in docker/compose#12666
-   Fix scale completion by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12672
-   Fix: replace `docker-compose.yml` with `compose.yaml` by [@&#8203;k-kbk](https://github.com/k-kbk) in docker/compose#12680
-   Include implicit build dependencies in build command by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12683
-   Capture git fetch output when debug output is enabled by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12719
-   Mount API is not strictly equivalent to bind by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12722

##### 🔧  Internal

-   Test commandName subcommand order by [@&#8203;maxproske](https://github.com/maxproske) in docker/compose#12535
-   Set watch option --prune=true as default by [@&#8203;remcokranenburg](https://github.com/remcokranenburg) in docker/compose#12650
-   Plugin Docker Desktop Model Runner check by [@&#8203;glours](https://github.com/glours) in docker/compose#12718
-   pkg/compose: implement Export using atomicwriter by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#12715
-   Style: refactor Desktop client for readability and maintainability by [@&#8203;Saracomethstein](https://github.com/Saracomethstein) in docker/compose#12723

##### ⚙️ Dependencies

-   Build(deps): bump github.com/docker/buildx from `0.21.2` to `0.21.3` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12646
-   Build(deps): bump github.com/containerd/containerd/v2 from `2.0.3` to `2.0.4` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12647
-   Bump docker & cli `v28.0.4` and buildx `v0.22.0` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12674
-   Bump golangci-lint to version `v2.0.2` by [@&#8203;glours](https://github.com/glours) in docker/compose#12689
-   Bump golang to `1.23.8` by [@&#8203;glours](https://github.com/glours) in docker/compose#12698
-   Update secret detector to fix vulnerability https://github.com/golang… by [@&#8203;sigi-glovebox](https://github.com/sigi-glovebox) in docker/compose#12707
-   Build(deps): bump golang.org/x/sys from `0.31.0` to `0.32.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12713
-   Build(deps): bump golang.org/x/sync from `0.12.0` to `0.13.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12712
-   Build(deps): bump github.com/compose-spec/compose-go/v2 from `2.5.1-0.20250409070949-8e1a035095ca` to `2.6.0` by [@&#8203;dependabot](https://github.com/dependabot) in docker/compose#12729

#### New Contributors

-   [@&#8203;matiboux](https://github.com/matiboux) made their first contribution in docker/compose#12640
-   [@&#8203;k-kbk](https://github.com/k-kbk) made their first contribution in docker/compose#12680
-   [@&#8203;sigi-glovebox](https://github.com/sigi-glovebox) made their first contribution in docker/compose#12707
-   [@&#8203;Saracomethstein](https://github.com/Saracomethstein) made their first contribution in docker/compose#12723

**Full Changelog**: docker/compose@v2.34.0...v2.35.0

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTkuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
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.

[BUG] config --variables doesn't honor --format flag
2 participants