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 2024-09-23 15:20:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/docker-compose (Old) and /work/SRC/openSUSE:Factory/.docker-compose.new.29891 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker-compose" Mon Sep 23 15:20:18 2024 rev:50 rq:1202396 version:2.29.7 Changes: -------- --- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes 2024-09-15 12:41:46.713992015 +0200 +++ /work/SRC/openSUSE:Factory/.docker-compose.new.29891/docker-compose.changes 2024-09-23 15:21:19.779221554 +0200 @@ -1,0 +2,34 @@ +Sat Sep 21 17:07:16 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 2.29.7: + * revert commits link to mount API over bind changes + +------------------------------------------------------------------- +Sat Sep 21 17:04:16 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 2.29.6: + * don't set propagation if target engine isn't linux + * build(deps): bump github.com/docker/docker v27.3.0-rc.2 + * build(deps): bump github.com/docker/cli v27.3.0-rc.2 + +------------------------------------------------------------------- +Sat Sep 21 17:01:01 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 2.29.5: + * set propagation default + * Remove custom codeql workflow + +------------------------------------------------------------------- +Sat Sep 21 16:58:45 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 2.29.4: + * fix import + * chore(watch): Add debug log when skipping service without build + context + * stop dependent containers before recreating diverged service + * Fixed possible `nil` pointer dereference + * bump github.com/docker/buildx v0.17.1 + * build(deps): bump docker, docker/cli to v27.3.0-rc.1 + * gha: test against docker engine v27.3.0 + +------------------------------------------------------------------- Old: ---- docker-compose-2.29.3.obscpio New: ---- docker-compose-2.29.7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ docker-compose.spec ++++++ --- /var/tmp/diff_new_pack.juUs89/_old 2024-09-23 15:21:20.435248761 +0200 +++ /var/tmp/diff_new_pack.juUs89/_new 2024-09-23 15:21:20.435248761 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: docker-compose -Version: 2.29.3 +Version: 2.29.7 Release: 0 Summary: Define and run multi-container applications with Docker License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.juUs89/_old 2024-09-23 15:21:20.471250254 +0200 +++ /var/tmp/diff_new_pack.juUs89/_new 2024-09-23 15:21:20.475250420 +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.29.3</param> + <param name="revision">v2.29.7</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.juUs89/_old 2024-09-23 15:21:20.495251250 +0200 +++ /var/tmp/diff_new_pack.juUs89/_new 2024-09-23 15:21:20.499251416 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/docker/compose</param> - <param name="changesrevision">8bf0627ea977610b2a5fb234300527ac7bdf2f60</param></service></servicedata> + <param name="changesrevision">9c60fe67df0763c81f2276fd4163ee5354d70b09</param></service></servicedata> (No newline at EOF) ++++++ docker-compose-2.29.3.obscpio -> docker-compose-2.29.7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/.github/workflows/ci.yml new/docker-compose-2.29.7/.github/workflows/ci.yml --- old/docker-compose-2.29.3/.github/workflows/ci.yml 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/.github/workflows/ci.yml 2024-09-20 10:37:57.000000000 +0200 @@ -144,7 +144,7 @@ - 24.0.9 - 25.0.5 - 26.1.4 - - 27.2.1 + - 27.3.0 steps: - name: Prepare run: | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/.github/workflows/codeql.yml new/docker-compose-2.29.7/.github/workflows/codeql.yml --- old/docker-compose-2.29.3/.github/workflows/codeql.yml 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/.github/workflows/codeql.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -name: codeql - -on: - push: - branches: - - 'main' - paths-ignore: - - '**/*.md' - - '**/*.txt' - - '**/*.yaml' - - '**/*_test.go' - pull_request: - branches: - - 'main' - paths-ignore: - - '**/*.md' - - '**/*.txt' - - '**/*.yaml' - - '**/*_test.go' - -jobs: - analyze: - name: Analyze - runs-on: 'ubuntu-latest' - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: - - go - - steps: - - - 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: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/go.mod new/docker-compose-2.29.7/go.mod --- old/docker-compose-2.29.3/go.mod 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/go.mod 2024-09-20 10:37:57.000000000 +0200 @@ -12,10 +12,10 @@ github.com/containerd/platforms v0.2.1 github.com/davecgh/go-spew v1.1.1 github.com/distribution/reference v0.6.0 - github.com/docker/buildx v0.17.0 - github.com/docker/cli v27.2.1+incompatible + github.com/docker/buildx v0.17.1 + github.com/docker/cli v27.3.0-rc.2+incompatible github.com/docker/cli-docs-tool v0.8.0 - github.com/docker/docker v27.2.1+incompatible + github.com/docker/docker v27.3.0-rc.2+incompatible github.com/docker/go-connections v0.5.0 github.com/docker/go-units v0.5.0 github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 @@ -51,7 +51,7 @@ go.opentelemetry.io/otel/trace v1.21.0 go.uber.org/goleak v1.3.0 go.uber.org/mock v0.4.0 - golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 + golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 golang.org/x/sync v0.8.0 golang.org/x/sys v0.25.0 google.golang.org/grpc v1.62.0 @@ -60,7 +60,7 @@ ) require ( - dario.cat/mergo v1.0.0 // indirect + dario.cat/mergo v1.0.1 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect @@ -94,7 +94,7 @@ github.com/docker/go-metrics v0.0.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fvbommel/sortorder v1.0.2 // indirect + github.com/fvbommel/sortorder v1.1.0 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect @@ -133,9 +133,9 @@ github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect - github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/sequential v0.6.0 // indirect github.com/moby/sys/signal v0.7.1 // indirect - github.com/moby/sys/symlink v0.2.0 // indirect + github.com/moby/sys/symlink v0.3.0 // indirect github.com/moby/sys/user v0.3.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -168,12 +168,12 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/term v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/term v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect + golang.org/x/time v0.6.0 // indirect google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect @@ -190,5 +190,5 @@ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.3.0 // indirect - tags.cncf.io/container-device-interface v0.7.2 // indirect + tags.cncf.io/container-device-interface v0.8.0 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/go.sum new/docker-compose-2.29.7/go.sum --- old/docker-compose-2.29.3/go.sum 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/go.sum 2024-09-20 10:37:57.000000000 +0200 @@ -2,8 +2,8 @@ cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA= @@ -126,17 +126,17 @@ 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.17.0 h1:Z+QQxsJJPldaeU/4aNXoudFwDDK0/ALFYmDcP5q5fiY= -github.com/docker/buildx v0.17.0/go.mod h1:sBKkoZFs+R2D6ARyQ4/GE/FQHHFsl9PkHdvv/GXAsMo= -github.com/docker/cli v27.2.1+incompatible h1:U5BPtiD0viUzjGAjV1p0MGB8eVA3L3cbIrnyWmSJI70= -github.com/docker/cli v27.2.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/buildx v0.17.1 h1:9ob2jGp4+W9PxWw68GsoNFp+eYFc7eUoRL9VljLCSM4= +github.com/docker/buildx v0.17.1/go.mod h1:kJOhOhS47LRvrLFRulFiO5SE6VJf54yYMn7DzjgO5W0= +github.com/docker/cli v27.3.0-rc.2+incompatible h1:z/lQXreGSzWl0RySxyFOm6WygLQtre2EkB4SCwsEut0= +github.com/docker/cli v27.3.0-rc.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli-docs-tool v0.8.0 h1:YcDWl7rQJC3lJ7WVZRwSs3bc9nka97QLWfyJQli8yJU= github.com/docker/cli-docs-tool v0.8.0/go.mod h1:8TQQ3E7mOXoYUs811LiPdUnAhXrcVsBIrW21a5pUbdk= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v27.2.1+incompatible h1:fQdiLfW7VLscyoeYEBz7/J8soYFDZV1u6VW6gJEjNMI= -github.com/docker/docker v27.2.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.3.0-rc.2+incompatible h1:+WSuhLOwbip2IuVKZ4ecSQfG/grbPw96d3b7jBC8MSQ= +github.com/docker/docker v27.3.0-rc.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= @@ -166,8 +166,8 @@ github.com/fsnotify/fsevents v0.2.0 h1:BRlvlqjvNTfogHfeBOFvSC9N0Ddy+wzQCQukyoD7o/c= github.com/fsnotify/fsevents v0.2.0/go.mod h1:B3eEk39i4hz8y1zaWS/wPrAP4O6wkIl7HQwKBr1qH/w= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fvbommel/sortorder v1.0.2 h1:mV4o8B2hKboCdkJm+a7uX/SIpZob4JzUpc5GGnM45eo= -github.com/fvbommel/sortorder v1.0.2/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= +github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -331,12 +331,12 @@ github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= -github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= -github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= +github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= github.com/moby/sys/signal v0.7.1 h1:PrQxdvxcGijdo6UXXo/lU/TvHUWyPhj7UOpSo8tuvk0= github.com/moby/sys/signal v0.7.1/go.mod h1:Se1VGehYokAkrSQwL4tDzHvETwUZlnY7S5XtQ50mQp8= -github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc= -github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= +github.com/moby/sys/symlink v0.3.0 h1:GZX89mEZ9u53f97npBy4Rc3vJKj7JBDj/PN2I22GrNU= +github.com/moby/sys/symlink v0.3.0/go.mod h1:3eNdhduHmYPcgsJtZXW1W4XUJdZGBIkttZ8xKqPUJq0= github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= @@ -530,15 +530,15 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= -golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 h1:kx6Ds3MlpiUHKj7syVnbp57++8WpuKPcR5yjLBjvLEA= +golang.org/x/exp v0.0.0-20240823005443-9b4947da3948/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -549,10 +549,10 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -576,7 +576,6 @@ golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -588,23 +587,23 @@ golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -666,5 +665,5 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= -tags.cncf.io/container-device-interface v0.7.2 h1:MLqGnWfOr1wB7m08ieI4YJ3IoLKKozEnnNYBtacDPQU= -tags.cncf.io/container-device-interface v0.7.2/go.mod h1:Xb1PvXv2BhfNb3tla4r9JL129ck1Lxv9KuU6eVOfKto= +tags.cncf.io/container-device-interface v0.8.0 h1:8bCFo/g9WODjWx3m6EYl3GfUG31eKJbaggyBDxEldRc= +tags.cncf.io/container-device-interface v0.8.0/go.mod h1:Apb7N4VdILW0EVdEMRYXIDVRZfNJZ+kmEUss2kRRQ6Y= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/internal/desktop/client.go new/docker-compose-2.29.7/internal/desktop/client.go --- old/docker-compose-2.29.3/internal/desktop/client.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/internal/desktop/client.go 2024-09-20 10:37:57.000000000 +0200 @@ -166,10 +166,10 @@ func (c *Client) CreateFileShare(ctx context.Context, r CreateFileShareRequest) (*CreateFileShareResponse, error) { rawBody, _ := json.Marshal(r) req, err := http.NewRequestWithContext(ctx, http.MethodPost, backendURL("/mutagen/file-shares"), bytes.NewReader(rawBody)) - req.Header.Set("Content-Type", "application/json") if err != nil { return nil, err } + req.Header.Set("Content-Type", "application/json") resp, err := c.client.Do(req) if err != nil { return nil, err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/compose/convergence.go new/docker-compose-2.29.7/pkg/compose/convergence.go --- old/docker-compose-2.29.3/pkg/compose/convergence.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/pkg/compose/convergence.go 2024-09-20 10:37:57.000000000 +0200 @@ -45,9 +45,6 @@ ) const ( - extLifecycle = "x-lifecycle" - forceRecreate = "force_recreate" - doubledContainerNameWarning = "WARNING: The %q service is using the custom container name %q. " + "Docker requires each container to have a unique name. " + "Remove the custom name to scale the service.\n" @@ -108,9 +105,7 @@ }) } -var mu sync.Mutex - -func (c *convergence) ensureService(ctx context.Context, project *types.Project, service types.ServiceConfig, recreate string, inherit bool, timeout *time.Duration) error { +func (c *convergence) ensureService(ctx context.Context, project *types.Project, service types.ServiceConfig, recreate string, inherit bool, timeout *time.Duration) error { //nolint:gocyclo expected, err := getScale(service) if err != nil { return err @@ -147,6 +142,7 @@ // If we don't get a container number (?) just sort by creation date return containers[i].Created < containers[j].Created }) + for i, container := range containers { if i >= expected { // Scale Down @@ -163,6 +159,11 @@ return err } if mustRecreate { + err := c.stopDependentContainers(ctx, project, service) + if err != nil { + return err + } + i, container := i, container eg.Go(tracing.SpanWrapFuncForErrGroup(ctx, "container/recreate", tracing.ContainerOptions(container), func(ctx context.Context) error { recreated, err := c.service.recreateContainer(ctx, project, service, container, inherit, timeout) @@ -217,6 +218,25 @@ return err } +func (c *convergence) stopDependentContainers(ctx context.Context, project *types.Project, service types.ServiceConfig) error { + w := progress.ContextWriter(ctx) + // Stop dependent containers, so they will be restarted after service is re-created + dependents := project.GetDependentsForService(service) + for _, name := range dependents { + dependents := c.observedState[name] + err := c.service.stopContainers(ctx, w, dependents, nil) + if err != nil { + return err + } + for i, dependent := range dependents { + dependent.State = ContainerExited + dependents[i] = dependent + } + c.observedState[name] = dependents + } + return nil +} + func getScale(config types.ServiceConfig) (int, error) { scale := config.GetScale() if scale > 1 && config.ContainerName != "" { @@ -296,7 +316,7 @@ if policy == api.RecreateNever { return false, nil } - if policy == api.RecreateForce || expected.Extensions[extLifecycle] == forceRecreate { + if policy == api.RecreateForce { return true, nil } configHash, err := ServiceHash(expected) @@ -535,26 +555,9 @@ } w.Event(progress.NewEvent(getContainerProgressName(replaced), progress.Done, "Recreated")) - setDependentLifecycle(project, service.Name, forceRecreate) return created, err } -// setDependentLifecycle define the Lifecycle strategy for all services to depend on specified service -func setDependentLifecycle(project *types.Project, service string, strategy string) { - mu.Lock() - defer mu.Unlock() - - for i, s := range project.Services { - if utils.StringContains(s.GetDependencies(), service) { - if s.Extensions == nil { - s.Extensions = map[string]interface{}{} - } - s.Extensions[extLifecycle] = strategy - project.Services[i] = s - } - } -} - func (s *composeService) startContainer(ctx context.Context, container moby.Container) error { w := progress.ContextWriter(ctx) w.Event(progress.NewEvent(getContainerProgressName(container), progress.Working, "Restart")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/compose/convergence_test.go new/docker-compose-2.29.7/pkg/compose/convergence_test.go --- old/docker-compose-2.29.3/pkg/compose/convergence_test.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/pkg/compose/convergence_test.go 2024-09-20 10:37:57.000000000 +0200 @@ -28,6 +28,7 @@ containerType "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/network" + "github.com/docker/go-connections/nat" "go.uber.org/mock/gomock" "gotest.tools/v3/assert" @@ -300,10 +301,17 @@ }, } - apiClient.EXPECT().ContainerCreate(gomock.Any(), gomock.Any(), gomock.Cond(func(x any) bool { - v := x.(*containerType.HostConfig) - return v.NetworkMode == "b-moby-name" - }), gomock.Eq( + var falseBool bool + apiClient.EXPECT().ContainerCreate(gomock.Any(), gomock.Any(), gomock.Eq( + &containerType.HostConfig{ + PortBindings: nat.PortMap{}, + ExtraHosts: []string{}, + Tmpfs: map[string]string{}, + Resources: containerType.Resources{ + OomKillDisable: &falseBool, + }, + NetworkMode: "b-moby-name", + }), gomock.Eq( &network.NetworkingConfig{ EndpointsConfig: map[string]*network.EndpointSettings{ "b-moby-name": { @@ -382,10 +390,17 @@ }, } - apiClient.EXPECT().ContainerCreate(gomock.Any(), gomock.Any(), gomock.Cond(func(x any) bool { - v := x.(*containerType.HostConfig) - return v.NetworkMode == "b-moby-name" - }), gomock.Eq( + var falseBool bool + apiClient.EXPECT().ContainerCreate(gomock.Any(), gomock.Any(), gomock.Eq( + &containerType.HostConfig{ + PortBindings: nat.PortMap{}, + ExtraHosts: []string{}, + Tmpfs: map[string]string{}, + Resources: containerType.Resources{ + OomKillDisable: &falseBool, + }, + NetworkMode: "b-moby-name", + }), gomock.Eq( &network.NetworkingConfig{ EndpointsConfig: map[string]*network.EndpointSettings{ "a-moby-name": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/compose/create.go new/docker-compose-2.29.7/pkg/compose/create.go --- old/docker-compose-2.29.3/pkg/compose/create.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/pkg/compose/create.go 2024-09-20 10:37:57.000000000 +0200 @@ -806,23 +806,23 @@ return nil, nil, err } - version, err := s.RuntimeVersion(ctx) - if err != nil { - return nil, nil, err - } - if versions.GreaterThan(version, "1.42") { - // We can fully leverage `Mount` API as a replacement for legacy `Bind` - return nil, mountOptions, nil - } - MOUNTS: for _, m := range mountOptions { + if m.Type == mount.TypeNamedPipe { + mounts = append(mounts, m) + continue + } if m.Type == mount.TypeBind { - // `Mount` does not offer option to created host path if missing + // `Mount` is preferred but does not offer option to created host path if missing // so `Bind` API is used here with raw volume string + // see https://github.com/moby/moby/issues/43483 for _, v := range service.Volumes { if v.Target == m.Target { - if v.Bind != nil && v.Bind.CreateHostPath { + switch { + case string(m.Type) != v.Type: + v.Source = m.Source + fallthrough + case v.Bind != nil && v.Bind.CreateHostPath: binds = append(binds, v.String()) continue MOUNTS } @@ -1060,7 +1060,7 @@ } } - bind, vol, tmpfs := buildMountOptions(volume) + bind, vol, tmpfs := buildMountOptions(project, volume) volume.Target = path.Clean(volume.Target) @@ -1080,7 +1080,7 @@ }, nil } -func buildMountOptions(volume types.ServiceVolumeConfig) (*mount.BindOptions, *mount.VolumeOptions, *mount.TmpfsOptions) { +func buildMountOptions(project types.Project, volume types.ServiceVolumeConfig) (*mount.BindOptions, *mount.VolumeOptions, *mount.TmpfsOptions) { switch volume.Type { case "bind": if volume.Volume != nil { @@ -1097,6 +1097,11 @@ if volume.Tmpfs != nil { logrus.Warnf("mount of type `volume` should not define `tmpfs` option") } + if v, ok := project.Volumes[volume.Source]; ok && v.DriverOpts["o"] == types.VolumeTypeBind { + return buildBindOption(&types.ServiceVolumeBind{ + CreateHostPath: true, + }), nil, nil + } return nil, buildVolumeOptions(volume.Volume), nil case "tmpfs": if volume.Bind != nil { @@ -1115,8 +1120,7 @@ return nil } return &mount.BindOptions{ - Propagation: mount.Propagation(bind.Propagation), - CreateMountpoint: bind.CreateHostPath, + Propagation: mount.Propagation(bind.Propagation), // NonRecursive: false, FIXME missing from model ? } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/compose/watch.go new/docker-compose-2.29.7/pkg/compose/watch.go --- old/docker-compose-2.29.3/pkg/compose/watch.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/pkg/compose/watch.go 2024-09-20 10:37:57.000000000 +0200 @@ -128,6 +128,7 @@ } if len(services) == 0 && service.Build == nil { + logrus.Debugf("service %q has no build context, skipping watch", service.Name) continue } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/e2e/compose_up_test.go new/docker-compose-2.29.7/pkg/e2e/compose_up_test.go --- old/docker-compose-2.29.3/pkg/e2e/compose_up_test.go 2024-09-12 14:38:02.000000000 +0200 +++ new/docker-compose-2.29.7/pkg/e2e/compose_up_test.go 2024-09-20 10:37:57.000000000 +0200 @@ -90,3 +90,23 @@ c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "--remove-orphans") } + +func TestLoggingDriver(t *testing.T) { + c := NewCLI(t) + const projectName = "e2e-logging-driver" + + host := "HOST=127.0.0.1" + res := c.RunDockerCmd(t, "info", "-f", "{{.OperatingSystem}}") + os := res.Stdout() + if strings.TrimSpace(os) == "Docker Desktop" { + host = "HOST=host.docker.internal" + } + + cmd := c.NewDockerComposeCmd(t, "-f", "fixtures/logging-driver/compose.yaml", "--project-name", projectName, "up", "-d") + cmd.Env = append(cmd.Env, host, "BAR=foo") + icmd.RunCmd(cmd).Assert(t, icmd.Success) + + cmd = c.NewDockerComposeCmd(t, "-f", "fixtures/logging-driver/compose.yaml", "--project-name", projectName, "up", "-d") + cmd.Env = append(cmd.Env, host, "BAR=zot") + icmd.RunCmd(cmd).Assert(t, icmd.Success) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-compose-2.29.3/pkg/e2e/fixtures/logging-driver/compose.yaml new/docker-compose-2.29.7/pkg/e2e/fixtures/logging-driver/compose.yaml --- old/docker-compose-2.29.3/pkg/e2e/fixtures/logging-driver/compose.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-compose-2.29.7/pkg/e2e/fixtures/logging-driver/compose.yaml 2024-09-20 10:37:57.000000000 +0200 @@ -0,0 +1,19 @@ +services: + fluentbit: + image: fluent/fluent-bit:3.1.7-debug + ports: + - "24224:24224" + - "24224:24224/udp" + environment: + FOO: ${BAR} + + app: + image: nginx + depends_on: + fluentbit: + condition: service_started + restart: true + logging: + driver: fluentd + options: + fluentd-address: ${HOST:-127.0.0.1}:24224 ++++++ docker-compose.obsinfo ++++++ --- /var/tmp/diff_new_pack.juUs89/_old 2024-09-23 15:21:20.755262033 +0200 +++ /var/tmp/diff_new_pack.juUs89/_new 2024-09-23 15:21:20.759262199 +0200 @@ -1,5 +1,5 @@ name: docker-compose -version: 2.29.3 -mtime: 1726144682 -commit: 8bf0627ea977610b2a5fb234300527ac7bdf2f60 +version: 2.29.7 +mtime: 1726821477 +commit: 9c60fe67df0763c81f2276fd4163ee5354d70b09 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/docker-compose/vendor.tar.gz /work/SRC/openSUSE:Factory/.docker-compose.new.29891/vendor.tar.gz differ: char 5, line 1