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-13 18:45:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker-compose (Old)
 and      /work/SRC/openSUSE:Factory/.docker-compose.new.19631 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "docker-compose"

Fri Jun 13 18:45:32 2025 rev:69 rq:1285308 version:2.37.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes    
2025-06-06 22:42:08.702536649 +0200
+++ /work/SRC/openSUSE:Factory/.docker-compose.new.19631/docker-compose.changes 
2025-06-13 18:45:56.476031900 +0200
@@ -1,0 +2,31 @@
+Fri Jun 13 04:44:15 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 2.37.1:
+  * Improvements
+    - Add support for extra_hosts building with bake by @ndeloof in
+      #12935
+  * Fixes
+    - Fix SIGSEGV on Enable Watch by @ndeloof in #12909
+    - Revert docker compose images JSON output to array format by
+      @x0rw in #12917
+    - Sanitize service name so they can be used as bake targets by
+      @ndeloof in #12925
+    - Only look for required image in bake metadata by @ndeloof in
+      #12930
+    - Don't create metadatafile, just generate a random name by
+      @ndeloof in #12931
+    - Fix the generated manifest for compose artifacts by @jcarter3
+      in #12933
+    - Fix support for additional_contexts with service
+      sub-dependencies by @ndeloof in #12936
+    - Fix panic on failure starting plugin server by @ndeloof in
+      #12914
+  * Internal
+    - Do not forget to remove the bake metadata file by @glours in
+      #12912
+  * Dependencies
+    - Bump golang.org/x/sync v0.15.0 by @ndeloof in #12913
+    - Build(deps): bump google.golang.org/grpc from 1.72.2 to
+      1.73.0 by @dependabot in #12910
+
+-------------------------------------------------------------------

Old:
----
  docker-compose-2.37.0.obscpio

New:
----
  docker-compose-2.37.1.obscpio

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

Other differences:
------------------
++++++ docker-compose.spec ++++++
--- /var/tmp/diff_new_pack.2QpJA3/_old  2025-06-13 18:45:57.248063457 +0200
+++ /var/tmp/diff_new_pack.2QpJA3/_new  2025-06-13 18:45:57.248063457 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           docker-compose
-Version:        2.37.0
+Version:        2.37.1
 Release:        0
 Summary:        Define and run multi-container applications with Docker
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2QpJA3/_old  2025-06-13 18:45:57.280064765 +0200
+++ /var/tmp/diff_new_pack.2QpJA3/_new  2025-06-13 18:45:57.284064928 +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.0</param>
+    <param name="revision">v2.37.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.2QpJA3/_old  2025-06-13 18:45:57.304065746 +0200
+++ /var/tmp/diff_new_pack.2QpJA3/_new  2025-06-13 18:45:57.308065909 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/docker/compose</param>
-              <param 
name="changesrevision">9b67a48c333f99f648dc5dc2daf06d2479b76410</param></service></servicedata>
+              <param 
name="changesrevision">343117233b901110b464786a4daccc264babb56b</param></service></servicedata>
 (No newline at EOF)
 

++++++ docker-compose-2.37.0.obscpio -> docker-compose-2.37.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/cmd/compose/images.go 
new/docker-compose-2.37.1/cmd/compose/images.go
--- old/docker-compose-2.37.0/cmd/compose/images.go     2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/cmd/compose/images.go     2025-06-12 
10:18:57.000000000 +0200
@@ -87,6 +87,14 @@
                }
                return nil
        }
+       if opts.Format == "json" {
+               // Convert map to slice
+               var imageList []api.ImageSummary
+               for _, img := range images {
+                       imageList = append(imageList, img)
+               }
+               return formatter.Print(imageList, opts.Format, dockerCli.Out(), 
nil)
+       }
 
        return formatter.Print(images, opts.Format, dockerCli.Out(),
                func(w io.Writer) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/go.mod 
new/docker-compose-2.37.1/go.mod
--- old/docker-compose-2.37.0/go.mod    2025-06-05 16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/go.mod    2025-06-12 10:18:57.000000000 +0200
@@ -53,9 +53,9 @@
        go.opentelemetry.io/otel/trace v1.35.0
        go.uber.org/goleak v1.3.0
        go.uber.org/mock v0.5.2
-       golang.org/x/sync v0.14.0
+       golang.org/x/sync v0.15.0
        golang.org/x/sys v0.33.0
-       google.golang.org/grpc v1.72.2
+       google.golang.org/grpc v1.73.0
        gopkg.in/yaml.v3 v3.0.1
        gotest.tools/v3 v3.5.2
        tags.cncf.io/container-device-interface v1.0.1
@@ -186,8 +186,8 @@
        golang.org/x/term v0.31.0 // indirect
        golang.org/x/text v0.24.0 // indirect
        golang.org/x/time v0.11.0 // indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20250218202821-56aae31c358a // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250218202821-56aae31c358a // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20250324211829-b45e905df463 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250324211829-b45e905df463 // indirect
        google.golang.org/protobuf v1.36.6 // indirect
        gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/go.sum 
new/docker-compose-2.37.1/go.sum
--- old/docker-compose-2.37.0/go.sum    2025-06-05 16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/go.sum    2025-06-12 10:18:57.000000000 +0200
@@ -569,8 +569,8 @@
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
-golang.org/x/sync v0.14.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
+golang.org/x/sync v0.15.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -618,13 +618,13 @@
 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=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a 
h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20250218202821-56aae31c358a/go.mod 
h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a 
h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250218202821-56aae31c358a/go.mod 
h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 
h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20250324211829-b45e905df463/go.mod 
h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 
h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250324211829-b45e905df463/go.mod 
h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
 google.golang.org/grpc v1.0.5/go.mod 
h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.72.2 h1:TdbGzwb82ty4OusHWepvFWGLgIbNo1/SUynEN0ssqv8=
-google.golang.org/grpc v1.72.2/go.mod 
h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
+google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
+google.golang.org/grpc v1.73.0/go.mod 
h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
 google.golang.org/protobuf v1.36.6 
h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
 google.golang.org/protobuf v1.36.6/go.mod 
h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
 gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod 
h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/internal/ocipush/push.go 
new/docker-compose-2.37.1/internal/ocipush/push.go
--- old/docker-compose-2.37.0/internal/ocipush/push.go  2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/internal/ocipush/push.go  2025-06-12 
10:18:57.000000000 +0200
@@ -105,7 +105,9 @@
 ) error {
        // Check if we need an extra empty layer for the manifest config
        if ociVersion == api.OCIVersion1_1 || ociVersion == "" {
-               layers = append(layers, Pushable{Descriptor: 
v1.DescriptorEmptyJSON, Data: []byte("{}")})
+               if err := resolver.Push(ctx, named, v1.DescriptorEmptyJSON, 
v1.DescriptorEmptyJSON.Data); err != nil {
+                       return err
+               }
        }
        // prepare to push the manifest by pushing the layers
        layerDescriptors := make([]v1.Descriptor, len(layers))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/pkg/compose/build.go 
new/docker-compose-2.37.1/pkg/compose/build.go
--- old/docker-compose-2.37.0/pkg/compose/build.go      2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/pkg/compose/build.go      2025-06-12 
10:18:57.000000000 +0200
@@ -628,7 +628,11 @@
 func addBuildDependencies(services []string, project *types.Project) []string {
        servicesWithDependencies := utils.NewSet(services...)
        for _, service := range services {
-               b := project.Services[service].Build
+               s, ok := project.Services[service]
+               if !ok {
+                       s = project.DisabledServices[service]
+               }
+               b := s.Build
                if b != nil {
                        for _, target := range b.AdditionalContexts {
                                if s, found := strings.CutPrefix(target, 
types.ServicePrefix); found {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/pkg/compose/build_bake.go 
new/docker-compose-2.37.1/pkg/compose/build_bake.go
--- old/docker-compose-2.37.0/pkg/compose/build_bake.go 2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/pkg/compose/build_bake.go 2025-06-12 
10:18:57.000000000 +0200
@@ -23,6 +23,7 @@
        "encoding/json"
        "errors"
        "fmt"
+       "math/rand"
        "os"
        "os/exec"
        "path/filepath"
@@ -113,6 +114,7 @@
        Ulimits          []string          `json:"ulimits,omitempty"`
        Call             string            `json:"call,omitempty"`
        Entitlements     []string          `json:"entitlements,omitempty"`
+       ExtraHosts       map[string]string `json:"extra-hosts,omitempty"`
        Outputs          []string          `json:"output,omitempty"`
 }
 
@@ -140,13 +142,25 @@
                Targets: map[string]bakeTarget{},
        }
        var (
-               group          bakeGroup
-               privileged     bool
-               read           []string
-               expectedImages = make(map[string]string, len(serviceToBeBuild)) 
// service name -> expected image
+               group      bakeGroup
+               privileged bool
+               read       []string
+               targets    = make(map[string]string, len(serviceToBeBuild)) // 
service name -> build target
        )
 
-       for serviceName, service := range serviceToBeBuild {
+       // produce a unique ID for service used as bake target
+       for serviceName := range project.Services {
+               t := strings.ReplaceAll(serviceName, ".", "_")
+               for {
+                       if _, ok := targets[serviceName]; !ok {
+                               targets[serviceName] = t
+                               break
+                       }
+                       t += "_"
+               }
+       }
+
+       for serviceName, service := range project.Services {
                if service.Build == nil {
                        continue
                }
@@ -160,9 +174,6 @@
                        args[k] = *v
                }
 
-               image := api.GetImageNameOrDefault(service, project.Name)
-               expectedImages[serviceName] = image
-
                entitlements := build.Entitlements
                if slices.Contains(build.Entitlements, "security.insecure") {
                        privileged = true
@@ -192,14 +203,15 @@
                        }
                }
 
-               cfg.Targets[serviceName] = bakeTarget{
+               target := targets[serviceName]
+               cfg.Targets[target] = bakeTarget{
                        Context:          build.Context,
-                       Contexts:         
additionalContexts(build.AdditionalContexts),
+                       Contexts:         
additionalContexts(build.AdditionalContexts, targets),
                        Dockerfile:       dockerFilePath(build.Context, 
build.Dockerfile),
                        DockerfileInline: 
strings.ReplaceAll(build.DockerfileInline, "${", "$${"),
                        Args:             args,
                        Labels:           build.Labels,
-                       Tags:             append(build.Tags, image),
+                       Tags:             append(build.Tags, 
api.GetImageNameOrDefault(service, project.Name)),
 
                        CacheFrom: build.CacheFrom,
                        // CacheTo:    TODO
@@ -212,11 +224,19 @@
                        ShmSize:      build.ShmSize,
                        Ulimits:      toBakeUlimits(build.Ulimits),
                        Entitlements: entitlements,
+                       ExtraHosts:   toBakeExtraHosts(build.ExtraHosts),
 
                        Outputs: outputs,
                        Call:    call,
                }
-               group.Targets = append(group.Targets, serviceName)
+       }
+
+       // create a bake group with targets for services to build
+       for serviceName, service := range serviceToBeBuild {
+               if service.Build == nil {
+                       continue
+               }
+               group.Targets = append(group.Targets, targets[serviceName])
        }
 
        cfg.Groups["default"] = group
@@ -232,17 +252,25 @@
        }
        logrus.Debugf("bake build config:\n%s", string(b))
 
-       metadata, err := os.CreateTemp(os.TempDir(), "compose")
-       if err != nil {
-               return nil, err
+       var metadataFile string
+       for {
+               // we don't use os.CreateTemp here as we need a temporary file 
name, but don't want it actually created
+               // as bake relies on atomicwriter and this creates conflict 
during rename
+               metadataFile = filepath.Join(os.TempDir(), 
fmt.Sprintf("compose-build-metadataFile-%d.json", rand.Int31()))
+               if _, err = os.Stat(metadataFile); os.IsNotExist(err) {
+                       break
+               }
        }
+       defer func() {
+               _ = os.Remove(metadataFile)
+       }()
 
        buildx, err := manager.GetPlugin("buildx", s.dockerCli, 
&cobra.Command{})
        if err != nil {
                return nil, err
        }
 
-       args := []string{"bake", "--file", "-", "--progress", "rawjson", 
"--metadata-file", metadata.Name()}
+       args := []string{"bake", "--file", "-", "--progress", "rawjson", 
"--metadata-file", metadataFile}
        mustAllow := buildx.Version != "" && 
versions.GreaterThanOrEqualTo(buildx.Version[1:], "0.17.0")
        if mustAllow {
                // FIXME we should prompt user about this, but this is a 
breaking change in UX
@@ -269,9 +297,8 @@
 
        // Use docker/cli mechanism to propagate termination signal to child 
process
        server, err := socket.NewPluginServer(nil)
-       if err != nil {
+       if err == nil {
                defer server.Close() //nolint:errcheck
-               cmd.Cancel = server.Close
                cmd.Env = replace(cmd.Env, socket.EnvKey, 
server.Addr().String())
        }
 
@@ -323,7 +350,7 @@
                return nil, fmt.Errorf("failed to execute bake: %w", err)
        }
 
-       b, err = os.ReadFile(metadata.Name())
+       b, err = os.ReadFile(metadataFile)
        if err != nil {
                return nil, err
        }
@@ -336,10 +363,11 @@
 
        cw := progress.ContextWriter(ctx)
        results := map[string]string{}
-       for service, name := range expectedImages {
-               built, ok := md[service] // bake target == service name
+       for name := range serviceToBeBuild {
+               target := targets[name]
+               built, ok := md[target]
                if !ok {
-                       return nil, fmt.Errorf("build result not found in Bake 
metadata for service %s", service)
+                       return nil, fmt.Errorf("build result not found in Bake 
metadata for service %s", name)
                }
                results[name] = built.Digest
                cw.Event(progress.BuiltEvent(name))
@@ -347,11 +375,19 @@
        return results, nil
 }
 
-func additionalContexts(contexts types.Mapping) map[string]string {
+func toBakeExtraHosts(hosts types.HostsList) map[string]string {
+       m := make(map[string]string)
+       for k, v := range hosts {
+               m[k] = strings.Join(v, ",")
+       }
+       return m
+}
+
+func additionalContexts(contexts types.Mapping, targets map[string]string) 
map[string]string {
        ac := map[string]string{}
        for k, v := range contexts {
                if target, found := strings.CutPrefix(v, types.ServicePrefix); 
found {
-                       v = "target:" + target
+                       v = "target:" + targets[target]
                }
                ac[k] = v
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/pkg/compose/plugins.go 
new/docker-compose-2.37.1/pkg/compose/plugins.go
--- old/docker-compose-2.37.0/pkg/compose/plugins.go    2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/pkg/compose/plugins.go    2025-06-12 
10:18:57.000000000 +0200
@@ -207,7 +207,6 @@
        server, err := socket.NewPluginServer(nil)
        if err == nil {
                defer server.Close() //nolint:errcheck
-               cmd.Cancel = server.Close
                cmd.Env = replace(cmd.Env, socket.EnvKey, 
server.Addr().String())
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/pkg/compose/up.go 
new/docker-compose-2.37.1/pkg/compose/up.go
--- old/docker-compose-2.37.0/pkg/compose/up.go 2025-06-05 16:48:05.000000000 
+0200
+++ new/docker-compose-2.37.1/pkg/compose/up.go 2025-06-12 10:18:57.000000000 
+0200
@@ -72,12 +72,9 @@
        var isTerminated atomic.Bool
        printer := newLogPrinter(options.Start.Attach)
 
-       var watcher *Watcher
-       if options.Start.Watch {
-               watcher, err = NewWatcher(project, options, s.watch)
-               if err != nil {
-                       return err
-               }
+       watcher, err := NewWatcher(project, options, s.watch)
+       if err != nil && options.Start.Watch {
+               return err
        }
 
        var navigationMenu *formatter.LogKeyboard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.37.0/pkg/e2e/build_test.go 
new/docker-compose-2.37.1/pkg/e2e/build_test.go
--- old/docker-compose-2.37.0/pkg/e2e/build_test.go     2025-06-05 
16:48:05.000000000 +0200
+++ new/docker-compose-2.37.1/pkg/e2e/build_test.go     2025-06-12 
10:18:57.000000000 +0200
@@ -536,3 +536,47 @@
        out := res.Combined()
        assert.Check(t, strings.Contains(out, "test1  Built"))
 }
+
+func TestBuildSubset(t *testing.T) {
+       c := NewParallelCLI(t)
+
+       t.Cleanup(func() {
+               c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/subset/compose.yaml", "down", "--rmi=local")
+       })
+
+       res := c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/subset/compose.yaml", "build", "main")
+       out := res.Combined()
+       assert.Check(t, strings.Contains(out, "main  Built"))
+}
+
+func TestBuildDependentImage(t *testing.T) {
+       c := NewParallelCLI(t)
+
+       t.Cleanup(func() {
+               c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/dependencies/compose.yaml", "down", "--rmi=local")
+       })
+
+       res := c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/dependencies/compose.yaml", "build", "firstbuild")
+       out := res.Combined()
+       assert.Check(t, strings.Contains(out, "firstbuild  Built"))
+
+       res = c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/dependencies/compose.yaml", "build", "secondbuild")
+       out = res.Combined()
+       assert.Check(t, strings.Contains(out, "secondbuild  Built"))
+}
+
+func TestBuildSubDependencies(t *testing.T) {
+       c := NewParallelCLI(t)
+
+       t.Cleanup(func() {
+               c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/sub-dependencies/compose.yaml", "down", "--rmi=local")
+       })
+
+       res := c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/sub-dependencies/compose.yaml", "build", "main")
+       out := res.Combined()
+       assert.Check(t, strings.Contains(out, "main  Built"))
+
+       res = c.RunDockerComposeCmd(t, "-f", 
"fixtures/build-test/sub-dependencies/compose.yaml", "up", "--build", "main")
+       out = res.Combined()
+       assert.Check(t, strings.Contains(out, "main  Built"))
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/dependencies/compose.yaml 
new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/dependencies/compose.yaml
--- 
old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/dependencies/compose.yaml 
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/dependencies/compose.yaml 
    2025-06-12 10:18:57.000000000 +0200
@@ -0,0 +1,26 @@
+services:
+  firstbuild:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+      additional_contexts:
+        dep1: service:dep1
+    entrypoint: ["echo", "Hello from firstbuild"]
+    depends_on:
+      - dep1
+
+  secondbuild:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+      additional_contexts:
+        dep1: service:dep1
+    entrypoint: ["echo", "Hello from secondbuild"]
+    depends_on:
+      - dep1
+
+  dep1:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from dep1"]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/sub-dependencies/compose.yaml
 
new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/sub-dependencies/compose.yaml
--- 
old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/sub-dependencies/compose.yaml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/sub-dependencies/compose.yaml
 2025-06-12 10:18:57.000000000 +0200
@@ -0,0 +1,36 @@
+services:
+  main:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+      additional_contexts:
+        dep1: service:dep1
+        dep2: service:dep2
+    entrypoint: ["echo", "Hello from main"]
+
+  dep1:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+      additional_contexts:
+        subdep1: service:subdep1
+        subdep2: service:subdep2
+    entrypoint: ["echo", "Hello from dep1"]
+
+  dep2:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from dep2"]
+
+  subdep1:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from subdep1"]
+
+  subdep2:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from subdep2"]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/subset/compose.yaml 
new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/subset/compose.yaml
--- old/docker-compose-2.37.0/pkg/e2e/fixtures/build-test/subset/compose.yaml   
1970-01-01 01:00:00.000000000 +0100
+++ new/docker-compose-2.37.1/pkg/e2e/fixtures/build-test/subset/compose.yaml   
2025-06-12 10:18:57.000000000 +0200
@@ -0,0 +1,14 @@
+services:
+  main:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from main"]
+    depends_on:
+      - dep1
+
+  dep1:
+    build:
+      dockerfile_inline: |
+        FROM alpine
+    entrypoint: ["echo", "Hello from dep1"]
\ No newline at end of file

++++++ docker-compose.obsinfo ++++++
--- /var/tmp/diff_new_pack.2QpJA3/_old  2025-06-13 18:45:57.616078499 +0200
+++ /var/tmp/diff_new_pack.2QpJA3/_new  2025-06-13 18:45:57.620078663 +0200
@@ -1,5 +1,5 @@
 name: docker-compose
-version: 2.37.0
-mtime: 1749134885
-commit: 9b67a48c333f99f648dc5dc2daf06d2479b76410
+version: 2.37.1
+mtime: 1749716337
+commit: 343117233b901110b464786a4daccc264babb56b
 

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

Reply via email to