Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package docker-compose for openSUSE:Factory 
checked in at 2025-06-23 15:00:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker-compose (Old)
 and      /work/SRC/openSUSE:Factory/.docker-compose.new.7067 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "docker-compose"

Mon Jun 23 15:00:36 2025 rev:70 rq:1287267 version:2.37.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes    
2025-06-13 18:45:56.476031900 +0200
+++ /work/SRC/openSUSE:Factory/.docker-compose.new.7067/docker-compose.changes  
2025-06-23 15:00:40.162288451 +0200
@@ -1,0 +2,17 @@
+Fri Jun 20 14:03:10 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 2.37.2:
+  * Improvements
+    - introduce use_api_socket by @ndeloof in #12908
+  * Fixes
+    - restore ContainerName in images --json by @ndeloof in #12943
+    - fix panic using w shortcut on project without watch support
+      by @ndeloof in #12944
+  * Internal
+    - move run logic inside backend by @ndeloof in #12908
+  * Dependencies
+    - bump compose-go to v2.6.5 by @ndeloof in #12958
+    - build(deps): bump github.com/containerd/containerd/v2 from
+      2.1.1 to 2.1.2 by @dependabot in #12939
+
+-------------------------------------------------------------------

Old:
----
  docker-compose-2.37.1.obscpio

New:
----
  docker-compose-2.37.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ docker-compose.spec ++++++
--- /var/tmp/diff_new_pack.0A2orm/_old  2025-06-23 15:00:41.034324904 +0200
+++ /var/tmp/diff_new_pack.0A2orm/_new  2025-06-23 15:00:41.034324904 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           docker-compose
-Version:        2.37.1
+Version:        2.37.2
 Release:        0
 Summary:        Define and run multi-container applications with Docker
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.0A2orm/_old  2025-06-23 15:00:41.066326242 +0200
+++ /var/tmp/diff_new_pack.0A2orm/_new  2025-06-23 15:00:41.070326409 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/docker/compose</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.37.1</param>
+    <param name="revision">v2.37.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.0A2orm/_old  2025-06-23 15:00:41.090327245 +0200
+++ /var/tmp/diff_new_pack.0A2orm/_new  2025-06-23 15:00:41.094327413 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/docker/compose</param>
-              <param 
name="changesrevision">343117233b901110b464786a4daccc264babb56b</param></service></servicedata>
+              <param 
name="changesrevision">f7825a56bf4e430024dfce48b1f3f332c2fd3d85</param></service></servicedata>
 (No newline at EOF)
 

++++++ docker-compose-2.37.1.obscpio -> docker-compose-2.37.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.gitattributes 
new/docker-compose-2.37.2/.gitattributes
--- old/docker-compose-2.37.1/.gitattributes    1970-01-01 01:00:00.000000000 
+0100
+++ new/docker-compose-2.37.2/.gitattributes    2025-06-20 15:16:51.000000000 
+0200
@@ -0,0 +1,2 @@
+core.autocrlf false
+*.golden text eol=lf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/CODEOWNERS 
new/docker-compose-2.37.2/.github/CODEOWNERS
--- old/docker-compose-2.37.1/.github/CODEOWNERS        1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/CODEOWNERS        2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,2 @@
+# global rules
+* @docker/compose-maintainers
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/bug_report.yml 
new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/bug_report.yml
--- old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/bug_report.yml     
1970-01-01 01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/bug_report.yml     
2025-06-20 15:16:51.000000000 +0200
@@ -0,0 +1,49 @@
+name: 🐞 Bug
+description: File a bug/issue
+title: "[BUG] <title>"
+labels: ['status/0-triage', 'kind/bug']
+body:
+  - type: textarea
+    attributes:
+      label: Description
+      description: |
+        Briefly describe the problem you are having.
+
+        Include both the current behavior (what you are seeing) as well as 
what you expected to happen.
+    validations:
+      required: true
+  - type: textarea
+    attributes:
+      label: Steps To Reproduce
+      description: Steps to reproduce the behavior.
+      placeholder: |
+        1. In this environment...
+        2. With this config...
+        3. Run '...'
+        4. See error...
+    validations:
+      required: false
+  - type: textarea
+    attributes:
+      label: Compose Version
+      description: |
+        Paste output of `docker compose version` and `docker-compose version`.
+      render: Text
+    validations:
+      required: false
+  - type: textarea
+    attributes:
+      label: Docker Environment
+      description: Paste output of `docker info`.
+      render: Text
+    validations:
+      required: false
+  - type: textarea
+    attributes:
+      label: Anything else?
+      description: |
+        Links? References? Anything that will give us more context about the 
issue you are encountering!
+
+        Tip: You can attach images or log files by clicking this area to 
highlight it and then dragging files in.
+    validations:
+      required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/config.yml 
new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/config.yml
--- old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/config.yml 2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,11 @@
+blank_issues_enabled: true
+contact_links:
+  - name: Docker Community Slack
+    url: https://dockr.ly/slack
+    about: 'Use the #docker-compose channel'
+  - name: Docker Support Forums
+    url: https://forums.docker.com/c/open-source-projects/compose/15
+    about: 'Use the "Open Source Projects > Compose" category'
+  - name: 'Ask on Stack Overflow'
+    url: https://stackoverflow.com/questions/tagged/docker-compose
+    about: 'Use the [docker-compose] tag when creating new questions'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/feature_request.yaml 
new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/feature_request.yaml
--- old/docker-compose-2.37.1/.github/ISSUE_TEMPLATE/feature_request.yaml       
1970-01-01 01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/ISSUE_TEMPLATE/feature_request.yaml       
2025-06-20 15:16:51.000000000 +0200
@@ -0,0 +1,13 @@
+name: Feature request
+description: Missing functionality? Come tell us about it!
+labels:
+  - kind/feature
+  - status/0-triage
+body:
+  - type: textarea
+    id: description
+    attributes:
+      label: Description
+      description: What is the feature you want to see?
+    validations:
+      required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/PULL_REQUEST_TEMPLATE.md 
new/docker-compose-2.37.2/.github/PULL_REQUEST_TEMPLATE.md
--- old/docker-compose-2.37.1/.github/PULL_REQUEST_TEMPLATE.md  1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/PULL_REQUEST_TEMPLATE.md  2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,6 @@
+**What I did**
+
+**Related issue**
+<!-- If this is a bug fix, make sure your description includes "fixes #xxxx", 
or "closes #xxxx" -->
+
+**(not mandatory) A picture of a cute animal, if possible in relation to what 
you did**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/SECURITY.md 
new/docker-compose-2.37.2/.github/SECURITY.md
--- old/docker-compose-2.37.1/.github/SECURITY.md       1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/SECURITY.md       2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,44 @@
+# Security Policy
+
+The maintainers of Docker Compose take security seriously. If you discover
+a security issue, please bring it to their attention right away!
+
+## Reporting a Vulnerability
+
+Please **DO NOT** file a public issue, instead send your report privately
+to [[email protected]](mailto:[email protected]).
+
+Reporter(s) can expect a response within 72 hours, acknowledging the issue was
+received.
+
+## Review Process
+
+After receiving the report, an initial triage and technical analysis is
+performed to confirm the report and determine its scope. We may request
+additional information in this stage of the process.
+
+Once a reviewer has confirmed the relevance of the report, a draft security
+advisory will be created on GitHub. The draft advisory will be used to discuss
+the issue with maintainers, the reporter(s), and where applicable, other
+affected parties under embargo.
+
+If the vulnerability is accepted, a timeline for developing a patch, public
+disclosure, and patch release will be determined. If there is an embargo period
+on public disclosure before the patch release, the reporter(s) are expected to
+participate in the discussion of the timeline and abide by agreed upon dates
+for public disclosure.
+
+## Accreditation
+
+Security reports are greatly appreciated and we will publicly thank you,
+although we will keep your name confidential if you request it. We also like to
+send gifts - if you're into swag, make sure to let us know. We do not currently
+offer a paid security bounty program at this time.
+
+## Supported Versions
+
+This project docs not provide long-term supported versions, and only the 
current
+release and `main` branch are actively maintained. Docker Compose v1, and the
+corresponding [v1 branch](https://github.com/docker/compose/tree/v1) reached
+EOL and are no longer supported. 
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/dependabot.yml 
new/docker-compose-2.37.2/.github/dependabot.yml
--- old/docker-compose-2.37.1/.github/dependabot.yml    1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/dependabot.yml    2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,23 @@
+version: 2
+updates:
+  - package-ecosystem: gomod
+    directory: /
+    schedule:
+      interval: daily
+    ignore:
+      # docker + moby deps require coordination
+      - dependency-name: "github.com/docker/buildx"
+        # buildx is still 0.x
+        update-types: ["version-update:semver-minor"]
+      - dependency-name: "github.com/moby/buildkit"
+        # buildkit is still 0.x
+        update-types: [ "version-update:semver-minor" ]
+      - dependency-name: "github.com/docker/cli"
+        update-types: ["version-update:semver-major"]
+      - dependency-name: "github.com/docker/docker"
+        update-types: ["version-update:semver-major"]
+      - dependency-name: "github.com/containerd/containerd"
+        # containerd major/minor must be kept in sync with moby
+        update-types: [ "version-update:semver-major", 
"version-update:semver-minor" ]
+        # OTEL dependencies should be upgraded in sync with engine, cli, 
buildkit and buildx projects
+      - dependency-name: "go.opentelemetry.io/*"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/stale.yml 
new/docker-compose-2.37.2/.github/stale.yml
--- old/docker-compose-2.37.1/.github/stale.yml 1970-01-01 01:00:00.000000000 
+0100
+++ new/docker-compose-2.37.2/.github/stale.yml 2025-06-20 15:16:51.000000000 
+0200
@@ -0,0 +1,59 @@
+# Configuration for probot-stale - https://github.com/probot/stale
+
+# Number of days of inactivity before an Issue or Pull Request becomes stale
+daysUntilStale: 90
+
+# Number of days of inactivity before an Issue or Pull Request with the stale 
label is closed.
+# Set to false to disable. If disabled, issues still need to be closed 
manually, but will remain marked as stale.
+daysUntilClose: 7
+
+# Only issues or pull requests with all of these labels are check if stale. 
Defaults to `[]` (disabled)
+onlyLabels: []
+
+# Issues or Pull Requests with these labels will never be considered stale. 
Set to `[]` to disable
+exemptLabels:
+  - "kind/feature"
+
+# Set to true to ignore issues in a project (defaults to false)
+exemptProjects: false
+
+# Set to true to ignore issues in a milestone (defaults to false)
+exemptMilestones: false
+
+# Set to true to ignore issues with an assignee (defaults to false)
+exemptAssignees: true
+
+# Label to use when marking as stale
+staleLabel: stale
+
+# Comment to post when marking as stale. Set to `false` to disable
+markComment: >
+  This issue has been automatically marked as stale because it has not had
+  recent activity. It will be closed if no further activity occurs. Thank you
+  for your contributions.
+
+# Comment to post when removing the stale label.
+unmarkComment: >
+  This issue has been automatically marked as not stale anymore due to the 
recent activity.
+
+# Comment to post when closing a stale Issue or Pull Request.
+closeComment: >
+  This issue has been automatically closed because it had not recent activity 
during the stale period.
+
+# Limit the number of actions per hour, from 1-30. Default is 30
+limitPerRun: 30
+
+# Limit to only `issues` or `pulls`
+only: issues
+
+# Optionally, specify configuration settings that are specific to just 
'issues' or 'pulls':
+# pulls:
+#   daysUntilStale: 30
+#   markComment: >
+#     This pull request has been automatically marked as stale because it has 
not had
+#     recent activity. It will be closed if no further activity occurs. Thank 
you
+#     for your contributions.
+
+# issues:
+#   exemptLabels:
+#     - confirmed
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/workflows/ci.yml 
new/docker-compose-2.37.2/.github/workflows/ci.yml
--- old/docker-compose-2.37.1/.github/workflows/ci.yml  1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/workflows/ci.yml  2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,325 @@
+name: ci
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+on:
+  push:
+    branches:
+      - 'main'
+    tags:
+      - 'v*'
+  pull_request:
+  workflow_dispatch:
+    inputs:
+      debug_enabled:
+        description: 'To run with tmate enter "debug_enabled"'
+        required: false
+        default: "false"
+
+permissions:
+  contents: read # to fetch code (actions/checkout)
+
+jobs:
+  prepare:
+    runs-on: ubuntu-latest
+    outputs:
+      matrix: ${{ steps.platforms.outputs.matrix }}
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Create matrix
+        id: platforms
+        run: |
+          echo matrix=$(docker buildx bake binary-cross --print | jq -cr 
'.target."binary-cross".platforms') >> $GITHUB_OUTPUT
+      -
+        name: Show matrix
+        run: |
+          echo ${{ steps.platforms.outputs.matrix }}
+
+  validate:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        target:
+          - lint
+          - validate-go-mod
+          - validate-headers
+          - validate-docs
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+      -
+        name: Run
+        run: |
+          make ${{ matrix.target }}
+
+  binary:
+    runs-on: ubuntu-latest
+    needs:
+      - prepare
+    strategy:
+      fail-fast: false
+      matrix:
+        platform: ${{ fromJson(needs.prepare.outputs.matrix) }}
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Prepare
+        run: |
+          platform=${MATRIX_PLATFORM}
+          echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
+        env:
+          MATRIX_PLATFORM: ${{ matrix.platform }}
+      -
+        name: Set up QEMU
+        uses: docker/setup-qemu-action@v3
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+      -
+        name: Build
+        uses: docker/bake-action@v6
+        with:
+          source: .
+          targets: release
+          provenance: mode=max
+          sbom: true
+          set: |
+            *.platform=${{ matrix.platform }}
+            *.cache-from=type=gha,scope=binary-${{ env.PLATFORM_PAIR }}
+            *.cache-to=type=gha,scope=binary-${{ env.PLATFORM_PAIR }},mode=max
+      -
+        name: Rename provenance and sbom
+        working-directory: ./bin/release
+        run: |
+          binname=$(find . -name 'docker-compose-*')
+          filename=$(basename "$binname" | sed -E 's/\.exe$//')
+          mv "provenance.json" "${filename}.provenance.json"
+          mv "sbom-binary.spdx.json" "${filename}.sbom.json"
+          find . -name 'sbom*.json' -exec rm {} \;
+      -
+        name: List artifacts
+        run: |
+          tree -nh ./bin/release
+      -
+        name: Upload artifacts
+        uses: actions/upload-artifact@v4
+        with:
+          name: compose-${{ env.PLATFORM_PAIR }}
+          path: ./bin/release
+          if-no-files-found: error
+
+  test:
+    runs-on: ubuntu-latest
+    steps:
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+      -
+        name: Test
+        uses: docker/bake-action@v6
+        with:
+          targets: test
+          set: |
+            *.cache-from=type=gha,scope=test
+            *.cache-to=type=gha,scope=test
+      -
+        name: Gather coverage data
+        uses: actions/upload-artifact@v4
+        with:
+          name: coverage-data-unit
+          path: bin/coverage/unit/
+          if-no-files-found: error
+      - 
+        name: Unit Test Summary
+        uses: test-summary/action@v2
+        with:
+          paths: bin/coverage/unit/report.xml       
+        if: always()
+  e2e:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        mode:
+          - plugin
+          - standalone
+        engine:
+          - 26
+          - 27
+          - 28
+    steps:
+      - name: Prepare
+        run: |
+          mode=${{ matrix.mode }}
+          engine=${{ matrix.engine }}
+          echo "MODE_ENGINE_PAIR=${mode}-${engine}" >> $GITHUB_ENV
+
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Install Docker ${{ matrix.engine }}
+        run: |
+          sudo systemctl stop docker.service
+          sudo apt-get purge docker-ce docker-ce-cli containerd.io 
docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin
+          sudo apt-get install curl
+          curl -fsSL https://test.docker.com -o get-docker.sh
+          sudo sh ./get-docker.sh --version ${{ matrix.engine }}
+
+      - name: Check Docker Version
+        run: docker --version
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+
+      - name: Set up Go
+        uses: actions/setup-go@v5
+        with:
+          go-version-file: 'go.mod'
+          check-latest: true
+          cache: true
+
+      - name: Build
+        uses: docker/bake-action@v6
+        with:
+          source: .
+          targets: binary-with-coverage
+          set: |
+            *.cache-from=type=gha,scope=binary-linux-amd64
+            *.cache-from=type=gha,scope=binary-e2e-${{ matrix.mode }}
+            *.cache-to=type=gha,scope=binary-e2e-${{ matrix.mode }},mode=max
+        env:
+          BUILD_TAGS: e2e
+
+      - name: Setup tmate session
+        if: ${{ github.event_name == 'workflow_dispatch' && 
github.event.inputs.debug_enabled }}
+        uses: mxschmitt/action-tmate@8b4e4ac71822ed7e0ad5fb3d1c33483e9e8fb270 
# v3.11
+        with:
+          limit-access-to-actor: true
+          github-token: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Test plugin mode
+        if: ${{ matrix.mode == 'plugin' }}
+        run: |
+          rm -rf ./bin/coverage/e2e
+          mkdir -p ./bin/coverage/e2e
+          make e2e-compose GOCOVERDIR=bin/coverage/e2e TEST_FLAGS="-v"
+
+      - name: Gather coverage data
+        if: ${{ matrix.mode == 'plugin' }}
+        uses: actions/upload-artifact@v4
+        with:
+          name: coverage-data-e2e-${{ env.MODE_ENGINE_PAIR }}
+          path: bin/coverage/e2e/
+          if-no-files-found: error
+
+      - name: Test standalone mode
+        if: ${{ matrix.mode == 'standalone' }}
+        run: |
+          rm -f /usr/local/bin/docker-compose
+          cp bin/build/docker-compose /usr/local/bin
+          make e2e-compose-standalone
+
+      - name: e2e Test Summary
+        uses: test-summary/action@v2
+        with:
+          paths: /tmp/report/report.xml       
+        if: always()
+  coverage:
+    runs-on: ubuntu-latest
+    needs:
+      - test
+      - e2e
+    steps:
+      # codecov won't process the report without the source code available
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Set up Go
+        uses: actions/setup-go@v5
+        with:
+          go-version-file: 'go.mod'
+          check-latest: true
+      - name: Download unit test coverage
+        uses: actions/download-artifact@v4
+        with:
+          name: coverage-data-unit
+          path: coverage/unit
+          merge-multiple: true
+      - name: Download E2E test coverage
+        uses: actions/download-artifact@v4
+        with:
+          pattern: coverage-data-e2e-*
+          path: coverage/e2e
+          merge-multiple: true
+      - name: Merge coverage reports
+        run: |
+          go tool covdata textfmt -i=./coverage/unit,./coverage/e2e -o 
./coverage.txt
+      - name: Store coverage report in GitHub Actions
+        uses: actions/upload-artifact@v4
+        with:
+          name: go-covdata-txt
+          path: ./coverage.txt
+          if-no-files-found: error
+      - name: Upload coverage to Codecov
+        uses: codecov/codecov-action@v3
+        with:
+          files: ./coverage.txt
+
+  release:
+    permissions:
+      contents: write # to create a release (ncipollo/release-action)
+
+    runs-on: ubuntu-latest
+    needs:
+      - binary
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Download artifacts
+        uses: actions/download-artifact@v4
+        with:
+          pattern: compose-*
+          path: ./bin/release
+          merge-multiple: true
+      -
+        name: Create checksums
+        working-directory: ./bin/release
+        run: |
+          find . -type f -print0 | sort -z | xargs -r0 shasum -a 256 -b | sed 
's# \*\./# *#' > $RUNNER_TEMP/checksums.txt
+          shasum -a 256 -U -c $RUNNER_TEMP/checksums.txt
+          mv $RUNNER_TEMP/checksums.txt .
+          cat checksums.txt | while read sum file; do
+            if [[ "${file#\*}" == docker-compose-* && "${file#\*}" != 
*.provenance.json && "${file#\*}" != *.sbom.json ]]; then
+              echo "$sum $file" > ${file#\*}.sha256
+            fi
+          done
+      -
+        name: List artifacts
+        run: |
+          tree -nh ./bin/release
+      -
+        name: Check artifacts
+        run: |
+          find bin/release -type f -exec file -e ascii -- {} +
+      -
+        name: GitHub Release
+        if: startsWith(github.ref, 'refs/tags/v')
+        uses: ncipollo/release-action@58ae73b360456532aafd58ee170c045abbeaee37 
# v1.10.0
+        with:
+          artifacts: ./bin/release/*
+          generateReleaseNotes: true
+          draft: true
+          token: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/workflows/docs-upstream.yml 
new/docker-compose-2.37.2/.github/workflows/docs-upstream.yml
--- old/docker-compose-2.37.1/.github/workflows/docs-upstream.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/workflows/docs-upstream.yml       
2025-06-20 15:16:51.000000000 +0200
@@ -0,0 +1,51 @@
+# this workflow runs the remote validate bake target from docker/docs
+# to check if yaml reference docs used in this repo are valid
+name: docs-upstream
+
+# Default to 'contents: read', which grants actions to read commits.
+#
+# If any permission is set, any permission not included in the list is
+# implicitly set to "none".
+#
+# see 
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
+permissions:
+  contents: read
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+on:
+  push:
+    branches:
+      - 'main'
+      - 'v[0-9]*'
+    paths:
+      - '.github/workflows/docs-upstream.yml'
+      - 'docs/**'
+  pull_request:
+    paths:
+      - '.github/workflows/docs-upstream.yml'
+      - 'docs/**'
+
+jobs:
+  docs-yaml:
+    runs-on: ubuntu-latest
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Upload reference YAML docs
+        uses: actions/upload-artifact@v4
+        with:
+          name: docs-yaml
+          path: docs/reference
+          retention-days: 1
+
+  validate:
+    uses: docker/docs/.github/workflows/validate-upstream.yml@main
+    needs:
+      - docs-yaml
+    with:
+      module-name: docker/compose
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/workflows/merge.yml 
new/docker-compose-2.37.2/.github/workflows/merge.yml
--- old/docker-compose-2.37.1/.github/workflows/merge.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/workflows/merge.yml       2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,163 @@
+name: merge
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+on:
+  push:
+    branches:
+      - 'main'
+    tags:
+      - 'v*'
+
+permissions:
+  contents: read # to fetch code (actions/checkout)
+
+env:
+  REPO_SLUG: "docker/compose-bin"
+
+jobs:
+  e2e:
+    name: Build and test
+    runs-on: ${{ matrix.os }}
+    timeout-minutes: 15
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [desktop-windows, desktop-macos, desktop-m1]
+        # mode: [plugin, standalone]
+        mode: [plugin]
+    env:
+      GO111MODULE: "on"
+    steps:
+      - uses: actions/checkout@v4
+
+      - uses: actions/setup-go@v5
+        with:
+          go-version-file: go.mod
+          cache: true
+          check-latest: true
+
+      - name: List Docker resources on machine
+        run: |
+          docker ps --all
+          docker volume ls
+          docker network ls
+          docker image ls
+      - name: Remove Docker resources on machine
+        continue-on-error: true
+        run: |
+          docker kill $(docker ps -q)
+          docker rm -f $(docker ps -aq)
+          docker volume rm -f $(docker volume ls -q)
+          docker ps --all
+
+      - name: Unit tests
+        run: make test
+
+      - name: Build binaries
+        run: |
+          make
+      - name: Check arch of go compose binary
+        run: |
+          file ./bin/build/docker-compose
+        if: ${{ !contains(matrix.os, 'desktop-windows') }}
+      -
+        name: Test plugin mode
+        if: ${{ matrix.mode == 'plugin' }}
+        run: |
+          make e2e-compose
+      -
+        name: Test standalone mode
+        if: ${{ matrix.mode == 'standalone' }}
+        run: |
+          make e2e-compose-standalone
+
+  bin-image:
+    runs-on: ubuntu-22.04
+    outputs:
+      digest: ${{ 
fromJSON(steps.bake.outputs.metadata).image-cross['containerimage.digest'] }}
+    steps:
+      -
+        name: Free disk space
+        uses: 
jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
+        with:
+          android: true
+          dotnet: true
+          haskell: true
+          large-packages: true
+          swap-storage: true
+      -
+        name: Checkout
+        uses: actions/checkout@v4
+      -
+        name: Login to DockerHub
+        if: github.event_name != 'pull_request'
+        uses: docker/login-action@v3
+        with:
+          username: ${{ secrets.DOCKERPUBLICBOT_USERNAME }}
+          password: ${{ secrets.DOCKERPUBLICBOT_WRITE_PAT }}
+      -
+        name: Set up QEMU
+        uses: docker/setup-qemu-action@v3
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+      -
+        name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        with:
+          images: |
+            ${{ env.REPO_SLUG }}
+          tags: |
+            type=ref,event=tag
+            type=edge
+          bake-target: meta-helper
+      -
+        name: Build and push image
+        uses: docker/bake-action@v6
+        id: bake
+        with:
+          source: .
+          files: |
+            ./docker-bake.hcl
+            ${{ steps.meta.outputs.bake-file }}
+          targets: image-cross
+          push: ${{ github.event_name != 'pull_request' }}
+          sbom: true
+          provenance: mode=max
+          set: |
+            *.cache-from=type=gha,scope=bin-image
+            *.cache-to=type=gha,scope=bin-image,mode=max
+
+  desktop-edge-test:
+    runs-on: ubuntu-latest
+    needs: bin-image
+    steps:
+      -
+        name: Generate Token
+        id: generate_token
+        uses: actions/create-github-app-token@v1
+        with:
+          app-id: ${{ vars.DOCKERDESKTOP_APP_ID }}
+          private-key: ${{ secrets.DOCKERDESKTOP_APP_PRIVATEKEY }}
+          owner: docker
+          repositories: |
+            ${{ secrets.DOCKERDESKTOP_REPO }}
+      -
+        name: Trigger Docker Desktop e2e with edge version
+        uses: actions/github-script@v7
+        with:
+          github-token: ${{ steps.generate_token.outputs.token }}
+          script: |
+            await github.rest.actions.createWorkflowDispatch({
+              owner: 'docker',
+              repo: '${{ secrets.DOCKERDESKTOP_REPO }}',
+              workflow_id: 'compose-edge-integration.yml',
+              ref: 'main',
+              inputs: {
+                "image-tag": "${{ needs.bin-image.outputs.digest }}"
+              }
+            })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.1/.github/workflows/scorecards.yml 
new/docker-compose-2.37.2/.github/workflows/scorecards.yml
--- old/docker-compose-2.37.1/.github/workflows/scorecards.yml  1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/workflows/scorecards.yml  2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,63 @@
+name: Scorecards supply-chain security
+on:
+  # Only the default branch is supported.
+  branch_protection_rule:
+  schedule:
+    - cron: '44 9 * * 4'
+  push:
+    branches: [ "main" ]
+
+jobs:
+  analysis:
+    name: Scorecards analysis
+    runs-on: ubuntu-latest
+    permissions:
+      # Needed to upload the results to code-scanning dashboard.
+      security-events: write
+      # Used to receive a badge.
+      id-token: write
+      # read permissions to all the other objects
+      actions: read
+      attestations: read
+      checks: read
+      contents: read
+      deployments: read
+      issues: read
+      discussions: read
+      packages: read
+      pages: read
+      pull-requests: read
+      statuses: read
+    
+    steps:
+      - name: "Checkout code"
+        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
tag=v4.4.2
+        with:
+          persist-credentials: false
+
+      - name: "Run analysis"
+        uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # 
tag=v2.4.0
+        with:
+          results_file: results.sarif
+          results_format: sarif
+
+          # Publish the results for public repositories to enable scorecard 
badges. For more details, see
+          # https://github.com/ossf/scorecard-action#publishing-results. 
+          # For private repositories, `publish_results` will automatically be 
set to `false`, regardless 
+          # of the value entered here.
+          publish_results: true
+
+      # Upload the results as artifacts (optional). Commenting out will 
disable uploads of run results in SARIF
+      # format to the repository Actions tab.
+      - name: "Upload artifact"
+        uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b 
# tag=v4.5.0
+        with:
+          name: SARIF file
+          path: results.sarif
+          retention-days: 5
+      
+      # Upload the results to GitHub's code scanning dashboard.
+      - name: "Upload to code-scanning"
+        uses: 
github/codeql-action/upload-sarif@3096afedf9873361b2b2f65e1445b13272c83eb8 # 
tag=v2.20.00
+        with:
+          sarif_file: results.sarif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.github/workflows/stale.yml 
new/docker-compose-2.37.2/.github/workflows/stale.yml
--- old/docker-compose-2.37.1/.github/workflows/stale.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/.github/workflows/stale.yml       2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,33 @@
+name: 'Close stale issues'
+
+# Default to 'contents: read', which grants actions to read commits.
+#
+# If any permission is set, any permission not included in the list is
+# implicitly set to "none".
+#
+# see 
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
+permissions:
+  contents: read
+
+on:
+  schedule:
+    - cron: '0 0 * * 0,3' # at midnight UTC every Sunday and Wednesday
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    permissions:
+      issues: write
+      pull-requests: write
+    steps:
+      - uses: actions/stale@v9
+        with:
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+          stale-issue-message: >
+            This issue has been automatically marked as stale because it has 
not had
+            recent activity. It will be closed if no further activity occurs. 
Thank you
+            for your contributions.
+          days-before-issue-stale: 150 # marks stale after 5 months
+          days-before-issue-close: 30 # closes 1 month after being marked with 
no action
+          stale-issue-label: "stale"
+          exempt-issue-labels: "kind/feature,kind/enhancement"
+          
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/.gitignore 
new/docker-compose-2.37.2/.gitignore
--- old/docker-compose-2.37.1/.gitignore        1970-01-01 01:00:00.000000000 
+0100
+++ new/docker-compose-2.37.2/.gitignore        2025-06-20 15:16:51.000000000 
+0200
@@ -0,0 +1,5 @@
+bin/
+/.vscode/
+coverage.out
+covdatafiles/
+.DS_Store
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/cmd/compose/images.go 
new/docker-compose-2.37.2/cmd/compose/images.go
--- old/docker-compose-2.37.1/cmd/compose/images.go     2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/cmd/compose/images.go     2025-06-20 
15:16:51.000000000 +0200
@@ -88,12 +88,35 @@
                return nil
        }
        if opts.Format == "json" {
+
+               type img struct {
+                       ID            string    `json:"ID"`
+                       ContainerName string    `json:"ContainerName"`
+                       Repository    string    `json:"Repository"`
+                       Tag           string    `json:"Tag"`
+                       Platform      string    `json:"Platform"`
+                       Size          int64     `json:"Size"`
+                       LastTagTime   time.Time `json:"LastTagTime"`
+               }
                // Convert map to slice
-               var imageList []api.ImageSummary
-               for _, img := range images {
-                       imageList = append(imageList, img)
+               var imageList []img
+               for ctr, i := range images {
+                       imageList = append(imageList, img{
+                               ContainerName: ctr,
+                               ID:            i.ID,
+                               Repository:    i.Repository,
+                               Tag:           i.Tag,
+                               Platform:      platforms.Format(i.Platform),
+                               Size:          i.Size,
+                               LastTagTime:   i.LastTagTime,
+                       })
+               }
+               json, err := formatter.ToJSON(imageList, "", "")
+               if err != nil {
+                       return err
                }
-               return formatter.Print(imageList, opts.Format, dockerCli.Out(), 
nil)
+               _, err = fmt.Fprintln(dockerCli.Out(), json)
+               return err
        }
 
        return formatter.Print(images, opts.Format, dockerCli.Out(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/cmd/compose/run.go 
new/docker-compose-2.37.2/cmd/compose/run.go
--- old/docker-compose-2.37.1/cmd/compose/run.go        2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/cmd/compose/run.go        2025-06-20 
15:16:51.000000000 +0200
@@ -271,22 +271,6 @@
                return err
        }
 
-       err = progress.Run(ctx, func(ctx context.Context) error {
-               var buildForDeps *api.BuildOptions
-               if !createOpts.noBuild {
-                       // allow dependencies needing build to be implicitly 
selected
-                       bo, err := buildOpts.toAPIBuildOptions(nil)
-                       if err != nil {
-                               return err
-                       }
-                       buildForDeps = &bo
-               }
-               return startDependencies(ctx, backend, *project, buildForDeps, 
options)
-       }, dockerCli.Err())
-       if err != nil {
-               return err
-       }
-
        labels := types.Labels{}
        for _, s := range options.labels {
                parts := strings.SplitN(s, "=", 2)
@@ -298,9 +282,7 @@
 
        var buildForRun *api.BuildOptions
        if !createOpts.noBuild {
-               // dependencies have already been started above, so only the 
service
-               // being run might need to be built at this point
-               bo, err := 
buildOpts.toAPIBuildOptions([]string{options.Service})
+               bo, err := buildOpts.toAPIBuildOptions(project.ServiceNames())
                if err != nil {
                        return err
                }
@@ -314,7 +296,12 @@
 
        // start container and attach to container streams
        runOpts := api.RunOptions{
-               Build:             buildForRun,
+               CreateOptions: api.CreateOptions{
+                       Build:         buildForRun,
+                       RemoveOrphans: options.removeOrphans,
+                       IgnoreOrphans: options.ignoreOrphans,
+                       QuietPull:     options.quietPull,
+               },
                Name:              options.name,
                Service:           options.Service,
                Command:           options.Command,
@@ -332,7 +319,6 @@
                UseNetworkAliases: options.useAliases,
                NoDeps:            options.noDeps,
                Index:             0,
-               QuietPull:         options.quietPull,
        }
 
        for name, service := range project.Services {
@@ -352,34 +338,3 @@
        }
        return err
 }
-
-func startDependencies(ctx context.Context, backend api.Service, project 
types.Project, buildOpts *api.BuildOptions, options runOptions) error {
-       dependencies := types.Services{}
-       var requestedService types.ServiceConfig
-       for name, service := range project.Services {
-               if name != options.Service {
-                       dependencies[name] = service
-               } else {
-                       requestedService = service
-               }
-       }
-
-       project.Services = dependencies
-       project.DisabledServices[options.Service] = requestedService
-       err := backend.Create(ctx, &project, api.CreateOptions{
-               Build:         buildOpts,
-               IgnoreOrphans: options.ignoreOrphans,
-               RemoveOrphans: options.removeOrphans,
-               QuietPull:     options.quietPull,
-       })
-       if err != nil {
-               return err
-       }
-
-       if len(dependencies) > 0 {
-               return backend.Start(ctx, project.Name, api.StartOptions{
-                       Project: &project,
-               })
-       }
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/cmd/formatter/shortcut.go 
new/docker-compose-2.37.2/cmd/formatter/shortcut.go
--- old/docker-compose-2.37.1/cmd/formatter/shortcut.go 2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/cmd/formatter/shortcut.go 2025-06-20 
15:16:51.000000000 +0200
@@ -22,6 +22,7 @@
        "fmt"
        "math"
        "os"
+       "reflect"
        "syscall"
        "time"
 
@@ -69,8 +70,9 @@
 }
 
 type KeyboardWatch struct {
-       Watching bool
-       Watcher  Toggle
+       Watching     bool
+       Watcher      Toggle
+       IsConfigured bool
 }
 
 type Toggle interface {
@@ -90,7 +92,6 @@
        kError                KeyboardError
        Watch                 KeyboardWatch
        IsDockerDesktopActive bool
-       IsWatchConfigured     bool
        logLevel              KEYBOARD_LOG_LEVEL
        signalChannel         chan<- os.Signal
 }
@@ -101,11 +102,11 @@
 func NewKeyboardManager(isDockerDesktopActive bool, sc chan<- os.Signal, w 
bool, watcher Toggle) *LogKeyboard {
        KeyboardManager = &LogKeyboard{
                Watch: KeyboardWatch{
-                       Watching: w,
-                       Watcher:  watcher,
+                       Watching:     w,
+                       Watcher:      watcher,
+                       IsConfigured: !reflect.ValueOf(watcher).IsNil(),
                },
                IsDockerDesktopActive: isDockerDesktopActive,
-               IsWatchConfigured:     true,
                logLevel:              INFO,
                signalChannel:         sc,
        }
@@ -267,7 +268,7 @@
 }
 
 func (lk *LogKeyboard) ToggleWatch(ctx context.Context, options api.UpOptions) 
{
-       if !lk.IsWatchConfigured {
+       if !lk.Watch.IsConfigured {
                return
        }
        if lk.Watch.Watching {
@@ -298,7 +299,7 @@
        case 'v':
                lk.openDockerDesktop(ctx, project)
        case 'w':
-               if !lk.IsWatchConfigured {
+               if !lk.Watch.IsConfigured {
                        // we try to open watch docs if DD is installed
                        if lk.IsDockerDesktopActive {
                                lk.openDDWatchDocs(ctx, project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/go.mod 
new/docker-compose-2.37.2/go.mod
--- old/docker-compose-2.37.1/go.mod    2025-06-12 10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/go.mod    2025-06-20 15:16:51.000000000 +0200
@@ -8,13 +8,13 @@
        github.com/Microsoft/go-winio v0.6.2
        github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
        github.com/buger/goterm v1.0.4
-       github.com/compose-spec/compose-go/v2 v2.6.4
-       github.com/containerd/containerd/v2 v2.1.1
+       github.com/compose-spec/compose-go/v2 v2.6.5
+       github.com/containerd/containerd/v2 v2.1.2
        github.com/containerd/errdefs v1.0.0
        github.com/containerd/platforms v1.0.0-rc.1
        github.com/davecgh/go-spew v1.1.1
        github.com/distribution/reference v0.6.0
-       github.com/docker/buildx v0.24.0
+       github.com/docker/buildx v0.25.0
        github.com/docker/cli v28.2.2+incompatible
        github.com/docker/cli-docs-tool v0.10.0
        github.com/docker/docker v28.2.2+incompatible
@@ -29,7 +29,7 @@
        github.com/mattn/go-shellwords v1.0.12
        github.com/mitchellh/go-ps v1.0.0
        github.com/mitchellh/mapstructure v1.5.0
-       github.com/moby/buildkit v0.22.0
+       github.com/moby/buildkit v0.23.0
        github.com/moby/go-archive v0.1.0
        github.com/moby/patternmatcher v0.6.0
        github.com/moby/sys/atomicwriter v0.1.0
@@ -82,7 +82,7 @@
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/cenkalti/backoff/v4 v4.3.0 // indirect
        github.com/cespare/xxhash/v2 v2.3.0 // indirect
-       github.com/containerd/console v1.0.4 // indirect
+       github.com/containerd/console v1.0.5 // indirect
        github.com/containerd/containerd/api v1.9.0 // indirect
        github.com/containerd/continuity v0.4.5 // indirect
        github.com/containerd/errdefs/pkg v0.3.0 // indirect
@@ -117,7 +117,7 @@
        github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
        github.com/hashicorp/errwrap v1.1.0 // indirect
        github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
-       github.com/in-toto/in-toto-golang v0.5.0 // indirect
+       github.com/in-toto/in-toto-golang v0.9.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/inhies/go-bytesize v0.0.0-20220417184213-4913239db9cf // 
indirect
        github.com/josharian/intern v1.0.0 // indirect
@@ -157,13 +157,14 @@
        github.com/prometheus/procfs v0.15.1 // indirect
        github.com/rivo/uniseg v0.2.0 // indirect
        github.com/russross/blackfriday/v2 v2.1.0 // indirect
-       github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
+       github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect
+       github.com/secure-systems-lab/go-securesystemslib v0.6.0 // indirect
        github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // 
indirect
        github.com/shibumi/go-pathspec v1.3.0 // indirect
        github.com/theupdateframework/notary v0.7.0 // indirect
        github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 
// indirect
-       github.com/tonistiigi/fsutil v0.0.0-20250417144416-3f76f8130144 // 
indirect
-       github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // 
indirect
+       github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f // 
indirect
+       github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 // 
indirect
        github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // 
indirect
        github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // 
indirect
        github.com/x448/float16 v0.8.4 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/go.sum 
new/docker-compose-2.37.2/go.sum
--- old/docker-compose-2.37.1/go.sum    2025-06-12 10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/go.sum    2025-06-20 15:16:51.000000000 +0200
@@ -80,16 +80,16 @@
 github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004/go.mod 
h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA=
 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb 
h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE=
 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod 
h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
-github.com/compose-spec/compose-go/v2 v2.6.4 
h1:Gjv6x8eAhqwwWvoXIo0oZ4bDQBh0OMwdU7LUL9PDLiM=
-github.com/compose-spec/compose-go/v2 v2.6.4/go.mod 
h1:vPlkN0i+0LjLf9rv52lodNMUTJF5YHVfHVGLLIP67NA=
+github.com/compose-spec/compose-go/v2 v2.6.5 
h1:H7xP5OMKdkN2p0brx01slxIU6dE/q6ybbG+jozPtIqk=
+github.com/compose-spec/compose-go/v2 v2.6.5/go.mod 
h1:TmjkIB9W73fwVxkYY+u2uhMbMUakjiif79DlYgXsyvU=
 github.com/containerd/cgroups/v3 v3.0.5 
h1:44na7Ud+VwyE7LIoJ8JTNQOa549a8543BmzaJHo6Bzo=
 github.com/containerd/cgroups/v3 v3.0.5/go.mod 
h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins=
-github.com/containerd/console v1.0.4 
h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
-github.com/containerd/console v1.0.4/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
+github.com/containerd/console v1.0.5 
h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
+github.com/containerd/console v1.0.5/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
 github.com/containerd/containerd/api v1.9.0 
h1:HZ/licowTRazus+wt9fM6r/9BQO7S0vD5lMcWspGIg0=
 github.com/containerd/containerd/api v1.9.0/go.mod 
h1:GhghKFmTR3hNtyznBoQ0EMWr9ju5AqHjcZPsSpTKutI=
-github.com/containerd/containerd/v2 v2.1.1 
h1:znnkm7Ajz8lg8BcIPMhc/9yjBRN3B+OkNKqKisKfwwM=
-github.com/containerd/containerd/v2 v2.1.1/go.mod 
h1:zIfkQj4RIodclYQkX7GSSswSwgP8d/XxDOtOAoSDIGU=
+github.com/containerd/containerd/v2 v2.1.2 
h1:4ZQxB+FVYmwXZgpBcKfar6ieppm3KC5C6FRKvtJ6DRU=
+github.com/containerd/containerd/v2 v2.1.2/go.mod 
h1:8C5QV9djwsYDNhxfTCFjWtTBZrqjditQ4/ghHSYjnHM=
 github.com/containerd/continuity v0.4.5 
h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
 github.com/containerd/continuity v0.4.5/go.mod 
h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
 github.com/containerd/errdefs v1.0.0 
h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
@@ -100,8 +100,8 @@
 github.com/containerd/fifo v1.1.0/go.mod 
h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
 github.com/containerd/log v0.1.0 
h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
-github.com/containerd/nydus-snapshotter v0.15.0 
h1:RqZRs1GPeM6T3wmuxJV9u+2Rg4YETVMwTmiDeX+iWC8=
-github.com/containerd/nydus-snapshotter v0.15.0/go.mod 
h1:biq0ijpeZe0I5yZFSJyHzFSjjRZQ7P7y/OuHyd7hYOw=
+github.com/containerd/nydus-snapshotter v0.15.2 
h1:qsHI4M+Wwrf6Jr4eBqhNx8qh+YU0dSiJ+WPmcLFWNcg=
+github.com/containerd/nydus-snapshotter v0.15.2/go.mod 
h1:FfwH2KBkNYoisK/e+KsmNr7xTU53DmnavQHMFOcXwfM=
 github.com/containerd/platforms v1.0.0-rc.1 
h1:83KIq4yy1erSRgOVHNk1HYdPvzdJ5CnsWaRoJX4C41E=
 github.com/containerd/platforms v1.0.0-rc.1/go.mod 
h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4=
 github.com/containerd/plugin v1.0.0 
h1:c8Kf1TNl6+e2TtMHZt+39yAPDbouRH9WAToRjex483Y=
@@ -125,8 +125,10 @@
 github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod 
h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 github.com/distribution/reference v0.6.0 
h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
 github.com/distribution/reference v0.6.0/go.mod 
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
-github.com/docker/buildx v0.24.0 
h1:qiD+xktY+Fs3R79oz8M+7pbhip78qGLx6LBuVmyb+64=
-github.com/docker/buildx v0.24.0/go.mod 
h1:vYkdBUBjFo/i5vUE0mkajGlk03gE0T/HaGXXhgIxo8E=
+github.com/dlclark/regexp2 v1.11.0 
h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
+github.com/dlclark/regexp2 v1.11.0/go.mod 
h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
+github.com/docker/buildx v0.25.0 
h1:qs5WxBo0wQKSXcQ+v6UhWaeM2Pu+95ZCymaimRzInaE=
+github.com/docker/buildx v0.25.0/go.mod 
h1:xJcOeBhz49tgqN174MMGuOU4bxNmgfaLnZn7Gm641EE=
 github.com/docker/cli v28.2.2+incompatible 
h1:qzx5BNUDFqlvyq4AHzdNB7gSyVTmU4cgsyN9SdInc1A=
 github.com/docker/cli v28.2.2+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/cli-docs-tool v0.10.0 
h1:bOD6mKynPQgojQi3s2jgcUWGp/Ebqy1SeCr9VfKQLLU=
@@ -216,8 +218,8 @@
 github.com/google/gofuzz v1.0.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
 github.com/google/gofuzz v1.2.0/go.mod 
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db 
h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
-github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod 
h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 
h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8=
+github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod 
h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod 
h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
@@ -243,8 +245,8 @@
 github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec 
h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog=
 github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod 
h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=
 github.com/hpcloud/tail v1.0.0/go.mod 
h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/in-toto/in-toto-golang v0.5.0 
h1:hb8bgwr0M2hGdDsLjkJ3ZqJ8JFLL/tgYdAxF/XEFBbY=
-github.com/in-toto/in-toto-golang v0.5.0/go.mod 
h1:/Rq0IZHLV7Ku5gielPT4wPHJfH1GdHMCq8+WPxw8/BE=
+github.com/in-toto/in-toto-golang v0.9.0 
h1:tHny7ac4KgtsfrG6ybU8gVOZux2H8jN05AXJ9EBM1XU=
+github.com/in-toto/in-toto-golang v0.9.0/go.mod 
h1:xsBVrVsHNsB61++S6Dy2vWosKhuA3lUTQd+eF9HdeMo=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod 
h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
@@ -315,8 +317,8 @@
 github.com/mitchellh/mapstructure v0.0.0-20150613213606-2caf8efc9366/go.mod 
h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/buildkit v0.22.0 
h1:aWN06w1YGSVN1XfeZbj2ZbgY+zi5xDAjEFI8Cy9fTjA=
-github.com/moby/buildkit v0.22.0/go.mod 
h1:j4pP5hxiTWcz7xuTK2cyxQislHl/N2WWHzOy43DlLJw=
+github.com/moby/buildkit v0.23.0 
h1:HV+u7xM2IZhAjVautFR2l5FNhkxFR0jhF5ILXyc3398=
+github.com/moby/buildkit v0.23.0/go.mod 
h1:v5jMDvQgUyidk3wu3NvVAAd5JJo83nfet9Gf/o0+EAQ=
 github.com/moby/docker-image-spec v1.3.1 
h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
 github.com/moby/docker-image-spec v1.3.1/go.mod 
h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
 github.com/moby/go-archive v0.1.0 
h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ=
@@ -423,8 +425,10 @@
 github.com/rogpeppe/go-internal v1.13.1/go.mod 
h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
 github.com/russross/blackfriday/v2 v2.1.0 
h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/secure-systems-lab/go-securesystemslib v0.4.0 
h1:b23VGrQhTA8cN2CbBw7/FulN9fTtqYUdS5+Oxzt+DUE=
-github.com/secure-systems-lab/go-securesystemslib v0.4.0/go.mod 
h1:FGBZgq2tXWICsxWQW1msNf49F0Pf2Op5Htayx335Qbs=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 
h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod 
h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
+github.com/secure-systems-lab/go-securesystemslib v0.6.0 
h1:T65atpAVCJQK14UA57LMdZGpHi4QYSH/9FZyNGqMYIA=
+github.com/secure-systems-lab/go-securesystemslib v0.6.0/go.mod 
h1:8Mtpo9JKks/qhPG4HGZ2LGMvrPbzuxwfz/f/zLfEWkk=
 github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b 
h1:h+3JX2VoWTFuyQEo87pStk/a99dzIO1mM9KxIyLPGTU=
 github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b/go.mod 
h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=
 github.com/shibumi/go-pathspec v1.3.0 
h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI=
@@ -436,8 +440,8 @@
 github.com/sirupsen/logrus v1.9.3/go.mod 
h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 
h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=
 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod 
h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog=
-github.com/spdx/tools-golang v0.5.3 
h1:ialnHeEYUC4+hkm5vJm4qz2x+oEJbS0mAMFrNXdQraY=
-github.com/spdx/tools-golang v0.5.3/go.mod 
h1:/ETOahiAo96Ob0/RAIBmFZw6XN0yTnyr/uFZm2NTMhI=
+github.com/spdx/tools-golang v0.5.5 
h1:61c0KLfAcNqAjlg6UNMdkwpMernhw3zVRwDZ2x9XOmk=
+github.com/spdx/tools-golang v0.5.5/go.mod 
h1:MVIsXx8ZZzaRWNQpUDhC4Dud34edUYJYecciXgrw5vE=
 github.com/spf13/cast v0.0.0-20150508191742-4d07383ffe94 
h1:JmfC365KywYwHB946TTiQWEb8kqPY+pybPLoGE9GgVk=
 github.com/spf13/cast v0.0.0-20150508191742-4d07383ffe94/go.mod 
h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=
 github.com/spf13/cobra v0.0.1/go.mod 
h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
@@ -472,10 +476,10 @@
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375/go.mod 
h1:xRroudyp5iVtxKqZCrA6n2TLFRBf8bmnjr1UD4x+z7g=
 github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 
h1:r0p7fK56l8WPequOaR3i9LBqfPtEdXIQbUTzT55iqT4=
 github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323/go.mod 
h1:3Iuxbr0P7D3zUzBMAZB+ois3h/et0shEz0qApgHYGpY=
-github.com/tonistiigi/fsutil v0.0.0-20250417144416-3f76f8130144 
h1:k9tdF32oJYwtjzMx+D26M6eYiCaAPdJ7tyN7tF1oU5Q=
-github.com/tonistiigi/fsutil v0.0.0-20250417144416-3f76f8130144/go.mod 
h1:BKdcez7BiVtBvIcef90ZPc6ebqIWr4JWD7+EvLm6J98=
-github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 
h1:7I5c2Ig/5FgqkYOh/N87NzoyI9U15qUPXhDD8uCupv8=
-github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4/go.mod 
h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE=
+github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f 
h1:MoxeMfHAe5Qj/ySSBfL8A7l1V+hxuluj8owsIEEZipI=
+github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f/go.mod 
h1:BKdcez7BiVtBvIcef90ZPc6ebqIWr4JWD7+EvLm6J98=
+github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 
h1:2f304B10LaZdB8kkVEaoXvAMVan2tl9AiK4G0odjQtE=
+github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0/go.mod 
h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE=
 github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea 
h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0=
 github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea/go.mod 
h1:WPnis/6cRcDZSUvVmezrxJPkiO87ThFYsoUiMwWNDJk=
 github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab 
h1:H6aJ0yKQ0gF49Qb2z5hI1UHxSQt4JMyxebFR15KnApw=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/pkg/api/api.go 
new/docker-compose-2.37.2/pkg/api/api.go
--- old/docker-compose-2.37.1/pkg/api/api.go    2025-06-12 10:18:57.000000000 
+0200
+++ new/docker-compose-2.37.2/pkg/api/api.go    2025-06-20 15:16:51.000000000 
+0200
@@ -351,7 +351,7 @@
 
 // RunOptions group options of the Run API
 type RunOptions struct {
-       Build *BuildOptions
+       CreateOptions
        // Project is the compose project used to define this app. Might be nil 
if user ran command just with project name
        Project           *types.Project
        Name              string
@@ -371,8 +371,6 @@
        Privileged        bool
        UseNetworkAliases bool
        NoDeps            bool
-       // QuietPull makes the pulling process quiet
-       QuietPull bool
        // used by exec
        Index int
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/pkg/compose/apiSocket.go 
new/docker-compose-2.37.2/pkg/compose/apiSocket.go
--- old/docker-compose-2.37.1/pkg/compose/apiSocket.go  1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-compose-2.37.2/pkg/compose/apiSocket.go  2025-06-20 
15:16:51.000000000 +0200
@@ -0,0 +1,90 @@
+/*
+   Copyright 2020 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package compose
+
+import (
+       "bytes"
+       "fmt"
+       "strings"
+
+       "github.com/compose-spec/compose-go/v2/types"
+       "github.com/docker/cli/cli/config/configfile"
+)
+
+// --use-api-socket is not actually supported by the Docker Engine
+// but is a client-side hack (see 
https://github.com/docker/cli/blob/master/cli/command/container/create.go#L246)
+// we replicate here by transforming the project model
+
+func (s *composeService) useAPISocket(project *types.Project) (*types.Project, 
error) {
+       useAPISocket := false
+       for _, service := range project.Services {
+               if service.UseAPISocket {
+                       useAPISocket = true
+                       break
+               }
+       }
+       if !useAPISocket {
+               return project, nil
+       }
+
+       socket := s.dockerCli.DockerEndpoint().Host
+       if !strings.HasPrefix(socket, "unix://") {
+               return nil, fmt.Errorf("use_api_socket can only be used with 
unix sockets: docker endpoint %s is incompatible", socket)
+       }
+       socket = strings.TrimPrefix(socket, "unix://") // should we confirm 
absolute path?
+
+       creds, err := s.dockerCli.ConfigFile().GetAllCredentials()
+       if err != nil {
+               return nil, fmt.Errorf("resolving credentials failed: %w", err)
+       }
+       newConfig := &configfile.ConfigFile{
+               AuthConfigs: creds,
+       }
+       var configBuf bytes.Buffer
+       if err := newConfig.SaveToWriter(&configBuf); err != nil {
+               return nil, fmt.Errorf("saving creds for API socket: %w", err)
+       }
+
+       project.Configs["#apisocket"] = types.ConfigObjConfig{
+               Content: configBuf.String(),
+       }
+
+       for name, service := range project.Services {
+               service.Volumes = append(service.Volumes, 
types.ServiceVolumeConfig{
+                       Type:   types.VolumeTypeBind,
+                       Source: socket,
+                       Target: "/var/run/docker.sock",
+               })
+
+               _, envvarPresent := service.Environment["DOCKER_CONFIG"]
+
+               // If the DOCKER_CONFIG env var is already present, we assume 
the client knows
+               // what they're doing and don't inject the creds.
+               if !envvarPresent {
+                       // Set our special little location for the config file.
+                       path := "/run/secrets/docker"
+                       service.Environment["DOCKER_CONFIG"] = &path
+               }
+
+               service.Configs = append(service.Configs, 
types.ServiceConfigObjConfig{
+                       Source: "#apisocket",
+                       Target: "/run/secrets/docker/config.json",
+               })
+               project.Services[name] = service
+       }
+       return project, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/pkg/compose/build.go 
new/docker-compose-2.37.2/pkg/compose/build.go
--- old/docker-compose-2.37.1/pkg/compose/build.go      2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/pkg/compose/build.go      2025-06-20 
15:16:51.000000000 +0200
@@ -28,7 +28,6 @@
        "github.com/containerd/platforms"
        "github.com/docker/buildx/build"
        "github.com/docker/buildx/builder"
-       "github.com/docker/buildx/controller/pb"
        "github.com/docker/buildx/store/storeutil"
        "github.com/docker/buildx/util/buildflags"
        xprogress "github.com/docker/buildx/util/progress"
@@ -483,8 +482,8 @@
                        DockerfilePath:   dockerFilePath(service.Build.Context, 
service.Build.Dockerfile),
                        NamedContexts:    toBuildContexts(service, project),
                },
-               CacheFrom:    pb.CreateCaches(cacheFrom.ToPB()),
-               CacheTo:      pb.CreateCaches(cacheTo.ToPB()),
+               CacheFrom:    build.CreateCaches(cacheFrom),
+               CacheTo:      build.CreateCaches(cacheTo),
                NoCache:      service.Build.NoCache,
                Pull:         service.Build.Pull,
                BuildArgs:    flatten(resolveAndMergeBuildArgs(s.dockerCli, 
project, service, options)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/pkg/compose/create.go 
new/docker-compose-2.37.2/pkg/compose/create.go
--- old/docker-compose-2.37.1/pkg/compose/create.go     2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/pkg/compose/create.go     2025-06-20 
15:16:51.000000000 +0200
@@ -114,6 +114,13 @@
                                "--remove-orphans flag to clean it up.", 
orphans.names())
                }
        }
+
+       // Temporary implementation of use_api_socket until we get actual 
support inside docker engine
+       project, err = s.useAPISocket(project)
+       if err != nil {
+               return err
+       }
+
        return newConvergence(options.Services, observedState, networks, 
volumes, s).apply(ctx, project, options)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.1/pkg/compose/run.go 
new/docker-compose-2.37.2/pkg/compose/run.go
--- old/docker-compose-2.37.1/pkg/compose/run.go        2025-06-12 
10:18:57.000000000 +0200
+++ new/docker-compose-2.37.2/pkg/compose/run.go        2025-06-20 
15:16:51.000000000 +0200
@@ -28,6 +28,7 @@
        "github.com/docker/cli/cli"
        cmd "github.com/docker/cli/cli/command/container"
        "github.com/docker/compose/v2/pkg/api"
+       "github.com/docker/compose/v2/pkg/progress"
        "github.com/docker/docker/pkg/stringid"
 )
 
@@ -58,6 +59,19 @@
 }
 
 func (s *composeService) prepareRun(ctx context.Context, project 
*types.Project, opts api.RunOptions) (string, error) {
+       // Temporary implementation of use_api_socket until we get actual 
support inside docker engine
+       project, err := s.useAPISocket(project)
+       if err != nil {
+               return "", err
+       }
+
+       err = progress.Run(ctx, func(ctx context.Context) error {
+               return s.startDependencies(ctx, project, opts)
+       }, s.stdinfo())
+       if err != nil {
+               return "", err
+       }
+
        service, err := project.GetService(opts.Service)
        if err != nil {
                return "", err
@@ -160,3 +174,33 @@
                service.Labels = service.Labels.Add(k, v)
        }
 }
+
+func (s *composeService) startDependencies(ctx context.Context, project 
*types.Project, options api.RunOptions) error {
+       var dependencies []string
+       for name := range project.Services {
+               if name != options.Service {
+                       dependencies = append(dependencies, name)
+               }
+       }
+
+       project, err := project.WithSelectedServices(dependencies)
+       if err != nil {
+               return err
+       }
+       err = s.Create(ctx, project, api.CreateOptions{
+               Build:         options.Build,
+               IgnoreOrphans: options.IgnoreOrphans,
+               RemoveOrphans: options.RemoveOrphans,
+               QuietPull:     options.QuietPull,
+       })
+       if err != nil {
+               return err
+       }
+
+       if len(dependencies) > 0 {
+               return s.Start(ctx, project.Name, api.StartOptions{
+                       Project: project,
+               })
+       }
+       return nil
+}

++++++ docker-compose.obsinfo ++++++
--- /var/tmp/diff_new_pack.0A2orm/_old  2025-06-23 15:00:41.382339452 +0200
+++ /var/tmp/diff_new_pack.0A2orm/_new  2025-06-23 15:00:41.386339620 +0200
@@ -1,5 +1,5 @@
 name: docker-compose
-version: 2.37.1
-mtime: 1749716337
-commit: 343117233b901110b464786a4daccc264babb56b
+version: 2.37.2
+mtime: 1750425411
+commit: f7825a56bf4e430024dfce48b1f3f332c2fd3d85
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/docker-compose/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.docker-compose.new.7067/vendor.tar.gz differ: char 
44, line 1

Reply via email to