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-05-27 11:54:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker-compose (Old)
 and      /work/SRC/openSUSE:Factory/.docker-compose.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "docker-compose"

Mon May 27 11:54:29 2024 rev:42 rq:1176776 version:2.27.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes    
2024-04-25 20:50:00.543900402 +0200
+++ /work/SRC/openSUSE:Factory/.docker-compose.new.24587/docker-compose.changes 
2024-05-27 12:02:33.160653639 +0200
@@ -1,0 +2,29 @@
+Fri May 24 12:38:43 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 2.27.1:
+  * build(deps): bump github.com/containerd/containerd from 1.7.16
+    to 1.7.17
+  * build(deps): bump github.com/docker/buildx from 0.14.0 to
+    0.14.1
+  * drop COMPOSE_EXPERIMENTAL_OTEL as docker/cli has opentelemetry
+    in
+  * add gui/composeview as part of available commands
+  * fix opentelemetry
+  * bump compose-go to version v2.1.1
+  * Set endpoint-specific DriverOpts
+  * Bump compose-go version to latest main
+  * Backport OpenBSD patches
+  * add new navigation menu to open Compose app configuration in
+    Docker Desktop
+  * build(deps): bump github.com/fsnotify/fsevents from 0.1.1 to
+    0.2.0
+  * build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0
+  * fix --resolve-image-digests
+  * allow a local .env file to override compose.yaml sibling .env
+  * Bump docker engine and cli to version 26.1.3
+  * Bump docker to v26.1.2
+  * Add documentation for --menu up option and COMPOSE_MENU
+    environemnt variable
+  * chore(deps): bump docker to v26.1.1 (#11794)
+
+-------------------------------------------------------------------

Old:
----
  compose-2.27.0.obscpio

New:
----
  compose-2.27.1.obscpio

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

Other differences:
------------------
++++++ docker-compose.spec ++++++
--- /var/tmp/diff_new_pack.vMFmPa/_old  2024-05-27 12:02:33.972683450 +0200
+++ /var/tmp/diff_new_pack.vMFmPa/_new  2024-05-27 12:02:33.976683597 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           docker-compose
-Version:        2.27.0
+Version:        2.27.1
 Release:        0
 Summary:        Define and run multi-container applications with Docker
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.vMFmPa/_old  2024-05-27 12:02:34.008684772 +0200
+++ /var/tmp/diff_new_pack.vMFmPa/_new  2024-05-27 12:02:34.012684919 +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.27.0</param>
+    <param name="revision">v2.27.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
@@ -17,7 +17,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="manual">
-    <param name="archive">compose-2.27.0.obscpio</param>
+    <param name="archive">compose-2.27.1.obscpio</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vMFmPa/_old  2024-05-27 12:02:34.040685947 +0200
+++ /var/tmp/diff_new_pack.vMFmPa/_new  2024-05-27 12:02:34.044686094 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/docker/compose</param>
-              <param 
name="changesrevision">9c0b92259737c0baf886619517c3222626c2a247</param></service></servicedata>
+              <param 
name="changesrevision">bf1dd0c267fa4fc63a43fecd62c0919de1cd5db3</param></service></servicedata>
 (No newline at EOF)
 

++++++ compose-2.27.0.obscpio -> compose-2.27.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/Dockerfile 
new/compose-2.27.1/Dockerfile
--- old/compose-2.27.0/Dockerfile       2024-04-24 20:59:42.000000000 +0200
+++ new/compose-2.27.1/Dockerfile       2024-05-24 10:58:53.000000000 +0200
@@ -15,7 +15,7 @@
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 
-ARG GO_VERSION=1.21.9
+ARG GO_VERSION=1.21.10
 ARG XX_VERSION=1.2.1
 ARG GOLANGCI_LINT_VERSION=v1.55.2
 ARG ADDLICENSE_VERSION=v1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/Makefile new/compose-2.27.1/Makefile
--- old/compose-2.27.0/Makefile 2024-04-24 20:59:42.000000000 +0200
+++ new/compose-2.27.1/Makefile 2024-05-24 10:58:53.000000000 +0200
@@ -90,7 +90,7 @@
 
 .PHONY: mocks
 mocks:
-       mockgen --version >/dev/null 2>&1 || go install 
go.uber.org/mock/mockgen@v0.3.0
+       mockgen --version >/dev/null 2>&1 || go install 
go.uber.org/mock/mockgen@v0.4.0
        mockgen -destination pkg/mocks/mock_docker_cli.go -package mocks 
github.com/docker/cli/cli/command Cli
        mockgen -destination pkg/mocks/mock_docker_api.go -package mocks 
github.com/docker/docker/client APIClient
        mockgen -destination pkg/mocks/mock_docker_compose_api.go -package 
mocks -source=./pkg/api/api.go Service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/cmd/cmdtrace/cmd_span.go 
new/compose-2.27.1/cmd/cmdtrace/cmd_span.go
--- old/compose-2.27.0/cmd/cmdtrace/cmd_span.go 2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/cmd/cmdtrace/cmd_span.go 2024-05-24 10:58:53.000000000 
+0200
@@ -30,6 +30,7 @@
        "github.com/docker/compose/v2/internal/tracing"
        "github.com/spf13/cobra"
        flag "github.com/spf13/pflag"
+       "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/attribute"
        "go.opentelemetry.io/otel/codes"
        "go.opentelemetry.io/otel/trace"
@@ -50,7 +51,7 @@
        }
 
        ctx := cmd.Context()
-       ctx, cmdSpan := tracing.Tracer.Start(
+       ctx, cmdSpan := otel.Tracer("").Start(
                ctx,
                "cli/"+strings.Join(commandName(cmd), "-"),
        )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/cmd/compose/compose.go 
new/compose-2.27.1/cmd/compose/compose.go
--- old/compose-2.27.0/cmd/compose/compose.go   2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/cmd/compose/compose.go   2024-05-24 10:58:53.000000000 
+0200
@@ -171,7 +171,7 @@
        f.StringArrayVar(&o.Profiles, "profile", []string{}, "Specify a profile 
to enable")
        f.StringVarP(&o.ProjectName, "project-name", "p", "", "Project name")
        f.StringArrayVarP(&o.ConfigPaths, "file", "f", []string{}, "Compose 
configuration files")
-       f.StringArrayVar(&o.EnvFiles, "env-file", nil, "Specify an alternate 
environment file")
+       f.StringArrayVar(&o.EnvFiles, "env-file", 
defaultStringArrayVar(ComposeEnvFiles), "Specify an alternate environment file")
        f.StringVar(&o.ProjectDir, "project-directory", "", "Specify an 
alternate working directory\n(default: the path of the, first specified, 
Compose file)")
        f.StringVar(&o.WorkDir, "workdir", "", "DEPRECATED! USE 
--project-directory INSTEAD.\nSpecify an alternate working directory\n(default: 
the path of the, first specified, Compose file)")
        f.BoolVar(&o.Compatibility, "compatibility", false, "Run compose in 
backward compatibility mode")
@@ -180,6 +180,13 @@
        _ = f.MarkHidden("workdir")
 }
 
+// get default value for a command line flag that is set by a coma-separated 
value in environment variable
+func defaultStringArrayVar(env string) []string {
+       return strings.FieldsFunc(os.Getenv(env), func(c rune) bool {
+               return c == ','
+       })
+}
+
 func (o *ProjectOptions) projectOrName(ctx context.Context, dockerCli 
command.Cli, services ...string) (*types.Project, string, error) {
        name := o.ProjectName
        var project *types.Project
@@ -384,7 +391,7 @@
                        ctx := cmd.Context()
 
                        // (1) process env vars
-                       err := setEnvWithDotEnv(&opts)
+                       err := setEnvWithLocalDotEnv(&opts)
                        if err != nil {
                                return err
                        }
@@ -594,18 +601,29 @@
        return c
 }
 
-func setEnvWithDotEnv(prjOpts *ProjectOptions) error {
-       if len(prjOpts.EnvFiles) == 0 {
-               if envFiles := os.Getenv(ComposeEnvFiles); envFiles != "" {
-                       prjOpts.EnvFiles = strings.Split(envFiles, ",")
-               }
+// If user has a local .env file, load it as os.environment so it can be used 
to set COMPOSE_ variables
+// This also allows to override values set by the default .env in a compose 
project when ran from a distinct folder
+func setEnvWithLocalDotEnv(prjOpts *ProjectOptions) error {
+       if len(prjOpts.EnvFiles) > 0 {
+               return nil
        }
-       options, err := prjOpts.toProjectOptions()
+
+       wd, err := os.Getwd()
        if err != nil {
                return compose.WrapComposeError(err)
        }
 
-       envFromFile, err := 
dotenv.GetEnvFromFile(composegoutils.GetAsEqualsMap(os.Environ()), 
options.EnvFiles)
+       defaultDotEnv := filepath.Join(wd, ".env")
+
+       s, err := os.Stat(defaultDotEnv)
+       if os.IsNotExist(err) || s.IsDir() {
+               return nil
+       }
+       if err != nil {
+               return err
+       }
+
+       envFromFile, err := 
dotenv.GetEnvFromFile(composegoutils.GetAsEqualsMap(os.Environ()), 
[]string{defaultDotEnv})
        if err != nil {
                return err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/cmd/compose/config.go 
new/compose-2.27.1/cmd/compose/config.go
--- old/compose-2.27.0/cmd/compose/config.go    2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/cmd/compose/config.go    2024-05-24 10:58:53.000000000 
+0200
@@ -143,47 +143,15 @@
        return cmd
 }
 
-func runConfig(ctx context.Context, dockerCli command.Cli, opts configOptions, 
services []string) error {
+func runConfig(ctx context.Context, dockerCli command.Cli, opts configOptions, 
services []string) (err error) {
        var content []byte
        if opts.noInterpolate {
-               // we can't use ToProject, so the model we render here is only 
partially resolved
-               model, err := opts.ToModel(ctx, dockerCli, services)
-               if err != nil {
-                       return err
-               }
-
-               if opts.resolveImageDigests {
-                       err = resolveImageDigests(ctx, dockerCli, model)
-                       if err != nil {
-                               return err
-                       }
-               }
-
-               content, err = formatModel(model, opts.Format)
+               content, err = runConfigNoInterpolate(ctx, dockerCli, opts, 
services)
                if err != nil {
                        return err
                }
        } else {
-               project, err := opts.ToProject(ctx, dockerCli, services)
-               if err != nil {
-                       return err
-               }
-
-               if !opts.noConsistency {
-                       err := project.CheckContainerNameUnicity()
-                       if err != nil {
-                               return err
-                       }
-               }
-
-               switch opts.Format {
-               case "json":
-                       content, err = project.MarshalJSON()
-               case "yaml":
-                       content, err = project.MarshalYAML()
-               default:
-                       return fmt.Errorf("unsupported format %q", opts.Format)
-               }
+               content, err = runConfigInterpolate(ctx, dockerCli, opts, 
services)
                if err != nil {
                        return err
                }
@@ -200,10 +168,62 @@
        if opts.Output != "" && len(content) > 0 {
                return os.WriteFile(opts.Output, content, 0o666)
        }
-       _, err := fmt.Fprint(dockerCli.Out(), string(content))
+       _, err = fmt.Fprint(dockerCli.Out(), string(content))
        return err
 }
 
+func runConfigInterpolate(ctx context.Context, dockerCli command.Cli, opts 
configOptions, services []string) ([]byte, error) {
+       project, err := opts.ToProject(ctx, dockerCli, services)
+       if err != nil {
+               return nil, err
+       }
+
+       if opts.resolveImageDigests {
+               project, err = 
project.WithImagesResolved(compose.ImageDigestResolver(ctx, 
dockerCli.ConfigFile(), dockerCli.Client()))
+               if err != nil {
+                       return nil, err
+               }
+       }
+
+       if !opts.noConsistency {
+               err := project.CheckContainerNameUnicity()
+               if err != nil {
+                       return nil, err
+               }
+       }
+
+       var content []byte
+       switch opts.Format {
+       case "json":
+               content, err = project.MarshalJSON()
+       case "yaml":
+               content, err = project.MarshalYAML()
+       default:
+               return nil, fmt.Errorf("unsupported format %q", opts.Format)
+       }
+       if err != nil {
+               return nil, err
+       }
+       return content, nil
+}
+
+func runConfigNoInterpolate(ctx context.Context, dockerCli command.Cli, opts 
configOptions, services []string) ([]byte, error) {
+       // we can't use ToProject, so the model we render here is only 
partially resolved
+       model, err := opts.ToModel(ctx, dockerCli, services)
+       if err != nil {
+               return nil, err
+       }
+
+       if opts.resolveImageDigests {
+               err = resolveImageDigests(ctx, dockerCli, model)
+               if err != nil {
+                       return nil, err
+               }
+       }
+
+       return formatModel(model, opts.Format)
+}
+
 func resolveImageDigests(ctx context.Context, dockerCli command.Cli, model 
map[string]any) (err error) {
        // create a pseudo-project so we can rely on WithImagesResolved to 
resolve images
        p := &types.Project{
@@ -342,6 +362,7 @@
        if err != nil {
                return err
        }
+
        for _, s := range project.Services {
                fmt.Fprintln(dockerCli.Out(), api.GetImageNameOrDefault(s, 
project.Name))
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/cmd/compose/up.go 
new/compose-2.27.1/cmd/compose/up.go
--- old/compose-2.27.0/cmd/compose/up.go        2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/cmd/compose/up.go        2024-05-24 10:58:53.000000000 
+0200
@@ -164,8 +164,7 @@
        flags.BoolVar(&up.wait, "wait", false, "Wait for services to be 
running|healthy. Implies detached mode.")
        flags.IntVar(&up.waitTimeout, "wait-timeout", 0, "Maximum duration to 
wait for the project to be running|healthy")
        flags.BoolVarP(&up.watch, "watch", "w", false, "Watch source code and 
rebuild/refresh containers when files are updated.")
-       flags.BoolVar(&up.navigationMenu, "menu", false, "Enable interactive 
shortcuts when running attached (Experimental). Incompatible with --detach.")
-       flags.MarkHidden("menu") //nolint:errcheck
+       flags.BoolVar(&up.navigationMenu, "menu", false, "Enable interactive 
shortcuts when running attached. Incompatible with --detach. Can also be 
enable/disable by setting COMPOSE_MENU environment var.")
 
        return upCmd
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/cmd/formatter/shortcut.go 
new/compose-2.27.1/cmd/formatter/shortcut.go
--- old/compose-2.27.0/cmd/formatter/shortcut.go        2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/cmd/formatter/shortcut.go        2024-05-24 
10:58:53.000000000 +0200
@@ -106,6 +106,7 @@
        Watch                 KeyboardWatch
        IsDockerDesktopActive bool
        IsWatchConfigured     bool
+       IsDDComposeUIActive   bool
        logLevel              KEYBOARD_LOG_LEVEL
        signalChannel         chan<- os.Signal
 }
@@ -113,7 +114,7 @@
 var KeyboardManager *LogKeyboard
 var eg multierror.Group
 
-func NewKeyboardManager(ctx context.Context, isDockerDesktopActive, 
isWatchConfigured bool,
+func NewKeyboardManager(ctx context.Context, isDockerDesktopActive, 
isWatchConfigured, isDockerDesktopConfigActive bool,
        sc chan<- os.Signal,
        watchFn func(ctx context.Context,
                project *types.Project,
@@ -124,6 +125,7 @@
        km := LogKeyboard{}
        km.IsDockerDesktopActive = isDockerDesktopActive
        km.IsWatchConfigured = isWatchConfigured
+       km.IsDDComposeUIActive = isDockerDesktopConfigActive
        km.logLevel = INFO
 
        km.Watch.Watching = false
@@ -192,8 +194,16 @@
        if lk.IsDockerDesktopActive {
                openDDInfo = shortcutKeyColor("v") + navColor(" View in Docker 
Desktop")
        }
-       var watchInfo string
+
+       var openDDUI string
        if openDDInfo != "" {
+               openDDUI = navColor("   ")
+       }
+       if lk.IsDDComposeUIActive {
+               openDDUI = openDDUI + shortcutKeyColor("o") + navColor(" View 
Config")
+       }
+       var watchInfo string
+       if openDDInfo != "" || openDDUI != "" {
                watchInfo = navColor("   ")
        }
        var isEnabled = " Enable"
@@ -201,7 +211,7 @@
                isEnabled = " Disable"
        }
        watchInfo = watchInfo + shortcutKeyColor("w") + navColor(isEnabled+" 
Watch")
-       return openDDInfo + watchInfo
+       return openDDInfo + openDDUI + watchInfo
 }
 
 func (lk *LogKeyboard) clearNavigationMenu() {
@@ -234,6 +244,23 @@
        )
 }
 
+func (lk *LogKeyboard) openDDComposeUI(ctx context.Context, project 
*types.Project) {
+       if !lk.IsDDComposeUIActive {
+               return
+       }
+       eg.Go(tracing.EventWrapFuncForErrGroup(ctx, "menu/gui/composeview", 
tracing.SpanOptions{},
+               func(ctx context.Context) error {
+                       link := 
fmt.Sprintf("docker-desktop://dashboard/docker-compose/%s", project.Name)
+                       err := open.Run(link)
+                       if err != nil {
+                               err = fmt.Errorf("Could not open Docker Desktop 
Compose UI")
+                               lk.keyboardError("View Config", err)
+                       }
+                       return err
+               }),
+       )
+}
+
 func (lk *LogKeyboard) keyboardError(prefix string, err error) {
        lk.kError.addError(prefix, err)
 
@@ -284,6 +311,8 @@
                lk.openDockerDesktop(ctx, project)
        case 'w':
                lk.StartWatch(ctx, project, options)
+       case 'o':
+               lk.openDDComposeUI(ctx, project)
        }
        switch key := event.Key; key {
        case keyboard.KeyCtrlC:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/docs/reference/compose.md 
new/compose-2.27.1/docs/reference/compose.md
--- old/compose-2.27.0/docs/reference/compose.md        2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/docs/reference/compose.md        2024-05-24 
10:58:53.000000000 +0200
@@ -177,6 +177,9 @@
 Setting the `COMPOSE_IGNORE_ORPHANS` environment variable to `true` stops 
docker compose from detecting orphaned
 containers for the project.
 
+Setting the `COMPOSE_MENU` environment variable to `false` disables the helper 
menu when running `docker compose up`
+in attached mode. Alternatively, you can also run `docker compose up 
--menu=false` to disable the helper menu.
+
 ### Use Dry Run mode to test your command
 
 Use `--dry-run` flag to test a command without changing your application stack 
state.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/docs/reference/compose_up.md 
new/compose-2.27.1/docs/reference/compose_up.md
--- old/compose-2.27.0/docs/reference/compose_up.md     2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/docs/reference/compose_up.md     2024-05-24 
10:58:53.000000000 +0200
@@ -5,35 +5,36 @@
 
 ### Options
 
-| Name                           | Type          | Default  | Description      
                                                                                
       |
-|:-------------------------------|:--------------|:---------|:--------------------------------------------------------------------------------------------------------|
-| `--abort-on-container-exit`    |               |          | Stops all 
containers if any container was stopped. Incompatible with -d                   
              |
-| `--abort-on-container-failure` |               |          | Stops all 
containers if any container exited with failure. Incompatible with -d           
              |
-| `--always-recreate-deps`       |               |          | Recreate 
dependent containers. Incompatible with --no-recreate.                          
               |
-| `--attach`                     | `stringArray` |          | Restrict 
attaching to the specified services. Incompatible with --attach-dependencies.   
               |
-| `--attach-dependencies`        |               |          | Automatically 
attach to log output of dependent services                                      
          |
-| `--build`                      |               |          | Build images 
before starting containers                                                      
           |
-| `-d`, `--detach`               |               |          | Detached mode: 
Run containers in the background                                                
         |
-| `--dry-run`                    |               |          | Execute command 
in dry run mode                                                                 
        |
-| `--exit-code-from`             | `string`      |          | Return the exit 
code of the selected service container. Implies --abort-on-container-exit       
        |
-| `--force-recreate`             |               |          | Recreate 
containers even if their configuration and image haven't changed                
               |
-| `--no-attach`                  | `stringArray` |          | Do not attach 
(stream logs) to the specified services                                         
          |
-| `--no-build`                   |               |          | Don't build an 
image, even if it's policy                                                      
         |
-| `--no-color`                   |               |          | Produce 
monochrome output                                                               
                |
-| `--no-deps`                    |               |          | Don't start 
linked services                                                                 
            |
-| `--no-log-prefix`              |               |          | Don't print 
prefix in logs                                                                  
            |
-| `--no-recreate`                |               |          | If containers 
already exist, don't recreate them. Incompatible with --force-recreate.         
          |
-| `--no-start`                   |               |          | Don't start the 
services after creating them                                                    
        |
-| `--pull`                       | `string`      | `policy` | Pull image 
before running ("always"\|"missing"\|"never")                                   
             |
-| `--quiet-pull`                 |               |          | Pull without 
printing progress information                                                   
           |
-| `--remove-orphans`             |               |          | Remove 
containers for services not defined in the Compose file                         
                 |
-| `-V`, `--renew-anon-volumes`   |               |          | Recreate 
anonymous volumes instead of retrieving data from the previous containers       
               |
-| `--scale`                      | `stringArray` |          | Scale SERVICE to 
NUM instances. Overrides the `scale` setting in the Compose file if present.    
       |
-| `-t`, `--timeout`              | `int`         | `0`      | Use this timeout 
in seconds for container shutdown when attached or when containers are already 
running |
-| `--timestamps`                 |               |          | Show timestamps  
                                                                                
       |
-| `--wait`                       |               |          | Wait for 
services to be running\|healthy. Implies detached mode.                         
               |
-| `--wait-timeout`               | `int`         | `0`      | Maximum duration 
to wait for the project to be running\|healthy                                  
       |
-| `-w`, `--watch`                |               |          | Watch source 
code and rebuild/refresh containers when files are updated.                     
           |
+| Name                           | Type          | Default  | Description      
                                                                                
                                                   |
+|:-------------------------------|:--------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------|
+| `--abort-on-container-exit`    |               |          | Stops all 
containers if any container was stopped. Incompatible with -d                   
                                                          |
+| `--abort-on-container-failure` |               |          | Stops all 
containers if any container exited with failure. Incompatible with -d           
                                                          |
+| `--always-recreate-deps`       |               |          | Recreate 
dependent containers. Incompatible with --no-recreate.                          
                                                           |
+| `--attach`                     | `stringArray` |          | Restrict 
attaching to the specified services. Incompatible with --attach-dependencies.   
                                                           |
+| `--attach-dependencies`        |               |          | Automatically 
attach to log output of dependent services                                      
                                                      |
+| `--build`                      |               |          | Build images 
before starting containers                                                      
                                                       |
+| `-d`, `--detach`               |               |          | Detached mode: 
Run containers in the background                                                
                                                     |
+| `--dry-run`                    |               |          | Execute command 
in dry run mode                                                                 
                                                    |
+| `--exit-code-from`             | `string`      |          | Return the exit 
code of the selected service container. Implies --abort-on-container-exit       
                                                    |
+| `--force-recreate`             |               |          | Recreate 
containers even if their configuration and image haven't changed                
                                                           |
+| `--menu`                       |               |          | Enable 
interactive shortcuts when running attached. Incompatible with --detach. Can 
also be enable/disable by setting COMPOSE_MENU environment var. |
+| `--no-attach`                  | `stringArray` |          | Do not attach 
(stream logs) to the specified services                                         
                                                      |
+| `--no-build`                   |               |          | Don't build an 
image, even if it's policy                                                      
                                                     |
+| `--no-color`                   |               |          | Produce 
monochrome output                                                               
                                                            |
+| `--no-deps`                    |               |          | Don't start 
linked services                                                                 
                                                        |
+| `--no-log-prefix`              |               |          | Don't print 
prefix in logs                                                                  
                                                        |
+| `--no-recreate`                |               |          | If containers 
already exist, don't recreate them. Incompatible with --force-recreate.         
                                                      |
+| `--no-start`                   |               |          | Don't start the 
services after creating them                                                    
                                                    |
+| `--pull`                       | `string`      | `policy` | Pull image 
before running ("always"\|"missing"\|"never")                                   
                                                         |
+| `--quiet-pull`                 |               |          | Pull without 
printing progress information                                                   
                                                       |
+| `--remove-orphans`             |               |          | Remove 
containers for services not defined in the Compose file                         
                                                             |
+| `-V`, `--renew-anon-volumes`   |               |          | Recreate 
anonymous volumes instead of retrieving data from the previous containers       
                                                           |
+| `--scale`                      | `stringArray` |          | Scale SERVICE to 
NUM instances. Overrides the `scale` setting in the Compose file if present.    
                                                   |
+| `-t`, `--timeout`              | `int`         | `0`      | Use this timeout 
in seconds for container shutdown when attached or when containers are already 
running                                             |
+| `--timestamps`                 |               |          | Show timestamps  
                                                                                
                                                   |
+| `--wait`                       |               |          | Wait for 
services to be running\|healthy. Implies detached mode.                         
                                                           |
+| `--wait-timeout`               | `int`         | `0`      | Maximum duration 
to wait for the project to be running\|healthy                                  
                                                   |
+| `-w`, `--watch`                |               |          | Watch source 
code and rebuild/refresh containers when files are updated.                     
                                                       |
 
 
 <!---MARKER_GEN_END-->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/docs/reference/docker_compose.yaml 
new/compose-2.27.1/docs/reference/docker_compose.yaml
--- old/compose-2.27.0/docs/reference/docker_compose.yaml       2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/docs/reference/docker_compose.yaml       2024-05-24 
10:58:53.000000000 +0200
@@ -118,6 +118,9 @@
     Setting the `COMPOSE_IGNORE_ORPHANS` environment variable to `true` stops 
docker compose from detecting orphaned
     containers for the project.
 
+    Setting the `COMPOSE_MENU` environment variable to `false` disables the 
helper menu when running `docker compose up`
+    in attached mode. Alternatively, you can also run `docker compose up 
--menu=false` to disable the helper menu.
+
     ### Use Dry Run mode to test your command
 
     Use `--dry-run` flag to test a command without changing your application 
stack state.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/docs/reference/docker_compose_up.yaml 
new/compose-2.27.1/docs/reference/docker_compose_up.yaml
--- old/compose-2.27.0/docs/reference/docker_compose_up.yaml    2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/docs/reference/docker_compose_up.yaml    2024-05-24 
10:58:53.000000000 +0200
@@ -123,9 +123,9 @@
       value_type: bool
       default_value: "false"
       description: |
-        Enable interactive shortcuts when running attached (Experimental). 
Incompatible with --detach.
+        Enable interactive shortcuts when running attached. Incompatible with 
--detach. Can also be enable/disable by setting COMPOSE_MENU environment var.
       deprecated: false
-      hidden: true
+      hidden: false
       experimental: false
       experimentalcli: false
       kubernetes: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/go.mod new/compose-2.27.1/go.mod
--- old/compose-2.27.0/go.mod   2024-04-24 20:59:42.000000000 +0200
+++ new/compose-2.27.1/go.mod   2024-05-24 10:58:53.000000000 +0200
@@ -7,19 +7,19 @@
        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.1.0
+       github.com/compose-spec/compose-go/v2 v2.1.1
        github.com/containerd/console v1.0.4
-       github.com/containerd/containerd v1.7.15
+       github.com/containerd/containerd v1.7.17
        github.com/davecgh/go-spew v1.1.1
        github.com/distribution/reference v0.6.0
-       github.com/docker/buildx v0.14.0
-       github.com/docker/cli v26.1.0+incompatible
+       github.com/docker/buildx v0.14.1
+       github.com/docker/cli v26.1.3+incompatible
        github.com/docker/cli-docs-tool v0.7.0
-       github.com/docker/docker v26.1.0+incompatible
+       github.com/docker/docker v26.1.3+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
-       github.com/fsnotify/fsevents v0.1.1
+       github.com/fsnotify/fsevents v0.2.0
        github.com/google/go-cmp v0.6.0
        github.com/hashicorp/go-multierror v1.1.1
        github.com/hashicorp/go-version v1.6.0
@@ -27,7 +27,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.13.1
+       github.com/moby/buildkit v0.13.2
        github.com/moby/patternmatcher v0.6.0
        github.com/moby/term v0.5.0
        github.com/morikuni/aec v1.0.0
@@ -46,14 +46,14 @@
        go.opentelemetry.io/otel v1.21.0
        go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
        go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
+       go.opentelemetry.io/otel/metric v1.21.0
        go.opentelemetry.io/otel/sdk v1.21.0
-       go.opentelemetry.io/otel/sdk/metric v1.21.0
        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/sync v0.7.0
-       golang.org/x/sys v0.19.0
+       golang.org/x/sys v0.20.0
        google.golang.org/grpc v1.59.0
        gopkg.in/yaml.v3 v3.0.1
        gotest.tools/v3 v3.5.1
@@ -64,7 +64,7 @@
        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
-       github.com/Microsoft/hcsshim v0.11.4 // indirect
+       github.com/Microsoft/hcsshim v0.11.5 // indirect
        github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
        github.com/aws/aws-sdk-go-v2/config v1.26.6 // indirect
        github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect
@@ -83,7 +83,7 @@
        github.com/cespare/xxhash/v2 v2.2.0 // indirect
        github.com/containerd/continuity v0.4.3 // indirect
        github.com/containerd/log v0.1.0 // indirect
-       github.com/containerd/ttrpc v1.2.3 // indirect
+       github.com/containerd/ttrpc v1.2.4 // indirect
        github.com/containerd/typeurl/v2 v2.1.1 // indirect
        github.com/docker/distribution v2.8.3+incompatible // indirect
        github.com/docker/docker-credential-helpers v0.8.0 // indirect
@@ -150,7 +150,7 @@
        github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
        github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // 
indirect
        github.com/shibumi/go-pathspec v1.3.0 // indirect
-       github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5 // 
indirect
+       github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c // 
indirect
        github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // 
indirect
        github.com/tonistiigi/vt100 v0.0.0-20230623042737-f9a4f7ef6531 // 
indirect
        github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // 
indirect
@@ -163,7 +163,7 @@
        go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp 
v0.42.0 // indirect
        go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 
// indirect
        go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect
-       go.opentelemetry.io/otel/metric 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.21.0 // indirect
        golang.org/x/net v0.23.0 // indirect
@@ -189,5 +189,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.6.2 // indirect
+       tags.cncf.io/container-device-interface v0.7.2 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/go.sum new/compose-2.27.1/go.sum
--- old/compose-2.27.0/go.sum   2024-04-24 20:59:42.000000000 +0200
+++ new/compose-2.27.1/go.sum   2024-05-24 10:58:53.000000000 +0200
@@ -20,8 +20,8 @@
 github.com/Masterminds/semver/v3 v3.2.1/go.mod 
h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
 github.com/Microsoft/go-winio v0.6.2 
h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
 github.com/Microsoft/go-winio v0.6.2/go.mod 
h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/Microsoft/hcsshim v0.11.4 
h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8=
-github.com/Microsoft/hcsshim v0.11.4/go.mod 
h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
+github.com/Microsoft/hcsshim v0.11.5 
h1:haEcLNpj9Ka1gd3B3tAEs9CpE0c+1IhoL59w/exYU38=
+github.com/Microsoft/hcsshim v0.11.5/go.mod 
h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU=
 github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 
h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
 github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod 
h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
 github.com/Shopify/logrus-bugsnag v0.0.0-20170309145241-6dbc35f2c30d/go.mod 
h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
@@ -90,14 +90,14 @@
 github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 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.1.0 
h1:qdW2qISQlCQG8v1O2TChcdxgAWTUGgUX/CPSO+ES9+E=
-github.com/compose-spec/compose-go/v2 v2.1.0/go.mod 
h1:bEPizBkIojlQ20pi2vNluBa58tevvj0Y18oUSHPyfdc=
+github.com/compose-spec/compose-go/v2 v2.1.1 
h1:tKuYJwAVgxIryRrsvWJSf1kNviVOQVVqwyHsV6YoIUc=
+github.com/compose-spec/compose-go/v2 v2.1.1/go.mod 
h1:bEPizBkIojlQ20pi2vNluBa58tevvj0Y18oUSHPyfdc=
 github.com/containerd/cgroups v1.1.0 
h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
 github.com/containerd/cgroups v1.1.0/go.mod 
h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
 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/containerd v1.7.15 
h1:afEHXdil9iAm03BmhjzKyXnnEBtjaLJefdU7DV0IFes=
-github.com/containerd/containerd v1.7.15/go.mod 
h1:ISzRRTMF8EXNpJlTzyr2XMhN+j9K302C21/+cr3kUnY=
+github.com/containerd/containerd v1.7.17 
h1:KjNnn0+tAVQHAoaWRjmdak9WlvnFR/8rU1CHHy8Rm2A=
+github.com/containerd/containerd v1.7.17/go.mod 
h1:vK+hhT4TIv2uejlcDlbVIc8+h/BqtKLIyNrtCZol8lI=
 github.com/containerd/continuity v0.4.3 
h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8=
 github.com/containerd/continuity v0.4.3/go.mod 
h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
 github.com/containerd/fifo v1.1.0 
h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY=
@@ -109,8 +109,8 @@
 github.com/containerd/stargz-snapshotter v0.15.1 
h1:fpsP4kf/Z4n2EYnU0WT8ZCE3eiKDwikDhL6VwxIlgeA=
 github.com/containerd/stargz-snapshotter/estargz v0.15.1 
h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU=
 github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod 
h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk=
-github.com/containerd/ttrpc v1.2.3 
h1:4jlhbXIGvijRtNC8F/5CpuJZ7yKOBFGFOOXg1bkISz0=
-github.com/containerd/ttrpc v1.2.3/go.mod 
h1:ieWsXucbb8Mj9PH0rXCw1i8IunRbbAiDkpXkbfflWBM=
+github.com/containerd/ttrpc v1.2.4 
h1:eQCQK4h9dxDmpOb9QOOMh2NHTfzroH1IkmHiKZi05Oo=
+github.com/containerd/ttrpc v1.2.4/go.mod 
h1:ojvb8SJBSch0XkqNO0L0YX/5NxR3UnVk2LzFKBK0upc=
 github.com/containerd/typeurl/v2 v2.1.1 
h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4=
 github.com/containerd/typeurl/v2 v2.1.1/go.mod 
h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
 github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@@ -124,17 +124,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.14.0 
h1:FxqcfE7xgeEC4oQlKLpuvfobRDVDXrHE3jByM+mdyqk=
-github.com/docker/buildx v0.14.0/go.mod 
h1:Vy/2lC9QsJvo33+7KKkN/GDE5WxnVqW0/dpcN7ZqPJY=
-github.com/docker/cli v26.1.0+incompatible 
h1:+nwRy8Ocd8cYNQ60mozDDICICD8aoFGtlPXifX/UQ3Y=
-github.com/docker/cli v26.1.0+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/buildx v0.14.1 
h1:Pr3HdtHoDsCghlIExgGp0WOIgvbiViushOKIPUIyFI4=
+github.com/docker/buildx v0.14.1/go.mod 
h1:s6xxLYXZIWnkdYpSvxRmoqZTb1vViV9q2f+Hg8cWA3Y=
+github.com/docker/cli v26.1.3+incompatible 
h1:bUpXT/N0kDE3VUHI2r5VMsYQgi38kYuoC0oL9yt3lqc=
+github.com/docker/cli v26.1.3+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/cli-docs-tool v0.7.0 
h1:M2Da98Unz2kz3A5d4yeSGbhyOge2mfYSNjAFt01Rw0M=
 github.com/docker/cli-docs-tool v0.7.0/go.mod 
h1:zMjqTFCU361PRh8apiXzeAZ1Q/xupbIwTusYpzCXS/o=
 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 v26.1.0+incompatible 
h1:W1G9MPNbskA6VZWL7b3ZljTh0pXI68FpINx0GKaOdaM=
-github.com/docker/docker v26.1.0+incompatible/go.mod 
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v26.1.3+incompatible 
h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo=
+github.com/docker/docker v26.1.3+incompatible/go.mod 
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker-credential-helpers v0.8.0 
h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8=
 github.com/docker/docker-credential-helpers v0.8.0/go.mod 
h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40=
 github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c 
h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
@@ -165,8 +165,8 @@
 github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod 
h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
 github.com/felixge/httpsnoop v1.0.4 
h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
 github.com/felixge/httpsnoop v1.0.4/go.mod 
h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/fsnotify/fsevents v0.1.1 
h1:/125uxJvvoSDDBPen6yUZbil8J9ydKZnnl3TWWmvnkw=
-github.com/fsnotify/fsevents v0.1.1/go.mod 
h1:+d+hS27T6k5J8CRaPLKFgwKYcpS7GwW3Ule9+SC2ZRc=
+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=
@@ -329,8 +329,8 @@
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/reflectwalk v1.0.2 
h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
 github.com/mitchellh/reflectwalk v1.0.2/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/moby/buildkit v0.13.1 
h1:L8afOFhPq2RPJJSr/VyzbufwID7jquZVB7oFHbPRcPE=
-github.com/moby/buildkit v0.13.1/go.mod 
h1:aNmNQKLBFYAOFuzQjR3VA27/FijlvtBD1pjNwTSN37k=
+github.com/moby/buildkit v0.13.2 
h1:nXNszM4qD9E7QtG7bFWPnDI1teUQFQglBzon/IU3SzI=
+github.com/moby/buildkit v0.13.2/go.mod 
h1:2cyVOv9NoHM7arphK9ZfHIWKn9YVZRFd1wXB8kKmEzY=
 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/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
@@ -477,8 +477,8 @@
 github.com/theupdateframework/notary v0.7.0/go.mod 
h1:c9DRxcmhHmVLDay4/2fUYdISnHqbFDGRSlXPO0AhYWw=
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 
h1:QB54BJwA6x8QU9nHY3xJSZR2kX9bgpZekRKGkLTmEXA=
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375/go.mod 
h1:xRroudyp5iVtxKqZCrA6n2TLFRBf8bmnjr1UD4x+z7g=
-github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5 
h1:oZS8KCqAg62sxJkEq/Ppzqrb6EooqzWtL8Oaex7bc5c=
-github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5/go.mod 
h1:vbbYqJlnswsbJqWUcJN8fKtBhnEgldDrcagTgnBVKKM=
+github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c 
h1:+6wg/4ORAbnSoGDzg2Q1i3CeMcT/jjhye/ZfnBHy7/M=
+github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c/go.mod 
h1:vbbYqJlnswsbJqWUcJN8fKtBhnEgldDrcagTgnBVKKM=
 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-20230623042737-f9a4f7ef6531 
h1:Y/M5lygoNPKwVNLMPXgVfsRT40CSFKXCxuU8LoHySjs=
@@ -609,8 +609,8 @@
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
-golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
+golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 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=
@@ -715,5 +715,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.6.2 
h1:dThE6dtp/93ZDGhqaED2Pu374SOeUkBfuvkLuiTdwzg=
-tags.cncf.io/container-device-interface v0.6.2/go.mod 
h1:Shusyhjs1A5Na/kqPVLL0KqnHQHuunol9LFeUNkuGVE=
+tags.cncf.io/container-device-interface v0.7.2 
h1:MLqGnWfOr1wB7m08ieI4YJ3IoLKKozEnnNYBtacDPQU=
+tags.cncf.io/container-device-interface v0.7.2/go.mod 
h1:Xb1PvXv2BhfNb3tla4r9JL129ck1Lxv9KuU6eVOfKto=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/internal/experimental/experimental.go 
new/compose-2.27.1/internal/experimental/experimental.go
--- old/compose-2.27.0/internal/experimental/experimental.go    2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/internal/experimental/experimental.go    2024-05-24 
10:58:53.000000000 +0200
@@ -71,6 +71,10 @@
        return s.determineFeatureState("ComposeNav")
 }
 
+func (s *State) ComposeUI() bool {
+       return s.determineFeatureState("ComposeUIView")
+}
+
 func (s *State) determineFeatureState(name string) bool {
        if s == nil || !s.active || s.desktopValues == nil {
                return false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/internal/locker/runtime_unix.go 
new/compose-2.27.1/internal/locker/runtime_unix.go
--- old/compose-2.27.0/internal/locker/runtime_unix.go  2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/internal/locker/runtime_unix.go  2024-05-24 
10:58:53.000000000 +0200
@@ -1,4 +1,4 @@
-//go:build linux
+//go:build linux || openbsd
 
 /*
    Copyright 2020 Docker Compose CLI authors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/internal/tracing/keyboard_metrics.go 
new/compose-2.27.1/internal/tracing/keyboard_metrics.go
--- old/compose-2.27.0/internal/tracing/keyboard_metrics.go     2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/internal/tracing/keyboard_metrics.go     2024-05-24 
10:58:53.000000000 +0200
@@ -22,7 +22,7 @@
        "go.opentelemetry.io/otel/attribute"
 )
 
-func KeyboardMetrics(ctx context.Context, enabled, isDockerDesktopActive, 
isWatchConfigured bool) {
+func KeyboardMetrics(ctx context.Context, enabled, isDockerDesktopActive, 
isWatchConfigured, isDockerDesktopComposeUI bool) {
        commandAvailable := []string{}
        if isDockerDesktopActive {
                commandAvailable = append(commandAvailable, "gui")
@@ -30,6 +30,11 @@
        if isWatchConfigured {
                commandAvailable = append(commandAvailable, "watch")
        }
+
+       if isDockerDesktopComposeUI {
+               commandAvailable = append(commandAvailable, "gui/composeview")
+       }
+
        AddAttributeToSpan(ctx,
                attribute.Bool("navmenu.enabled", enabled),
                attribute.StringSlice("navmenu.command_available", 
commandAvailable))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/internal/tracing/tracing.go 
new/compose-2.27.1/internal/tracing/tracing.go
--- old/compose-2.27.0/internal/tracing/tracing.go      2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/internal/tracing/tracing.go      2024-05-24 
10:58:53.000000000 +0200
@@ -21,7 +21,6 @@
        "errors"
        "fmt"
        "os"
-       "strconv"
        "strings"
 
        "github.com/docker/compose/v2/internal"
@@ -46,8 +45,6 @@
        otel.SetErrorHandler(skipErrors{})
 }
 
-var Tracer = otel.Tracer("compose")
-
 // OTLPConfig contains the necessary values to initialize an OTLP client
 // manually.
 //
@@ -66,11 +63,6 @@
 func InitTracing(dockerCli command.Cli) (ShutdownFunc, error) {
        // set global propagator to tracecontext (the default is no-op).
        otel.SetTextMapPropagator(propagation.TraceContext{})
-
-       if v, _ := strconv.ParseBool(os.Getenv("COMPOSE_EXPERIMENTAL_OTEL")); 
!v {
-               return nil, nil
-       }
-
        return InitProvider(dockerCli)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/internal/tracing/wrap.go 
new/compose-2.27.1/internal/tracing/wrap.go
--- old/compose-2.27.0/internal/tracing/wrap.go 2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/internal/tracing/wrap.go 2024-05-24 10:58:53.000000000 
+0200
@@ -20,6 +20,7 @@
        "context"
 
        "github.com/acarl005/stripansi"
+       "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/attribute"
        "go.opentelemetry.io/otel/codes"
        semconv "go.opentelemetry.io/otel/semconv/v1.19.0"
@@ -36,7 +37,7 @@
 // adding even more levels of function wrapping/indirection.
 func SpanWrapFunc(spanName string, opts SpanOptions, fn func(ctx 
context.Context) error) func(context.Context) error {
        return func(ctx context.Context) error {
-               ctx, span := Tracer.Start(ctx, spanName, 
opts.SpanStartOptions()...)
+               ctx, span := otel.Tracer("").Start(ctx, spanName, 
opts.SpanStartOptions()...)
                defer span.End()
 
                if err := fn(ctx); err != nil {
@@ -59,7 +60,7 @@
 // adding even more levels of function wrapping/indirection.
 func SpanWrapFuncForErrGroup(ctx context.Context, spanName string, opts 
SpanOptions, fn func(ctx context.Context) error) func() error {
        return func() error {
-               ctx, span := Tracer.Start(ctx, spanName, 
opts.SpanStartOptions()...)
+               ctx, span := otel.Tracer("").Start(ctx, spanName, 
opts.SpanStartOptions()...)
                defer span.End()
 
                if err := fn(ctx); err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/compose/compose.go 
new/compose-2.27.1/pkg/compose/compose.go
--- old/compose-2.27.0/pkg/compose/compose.go   2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/compose/compose.go   2024-05-24 10:58:53.000000000 
+0200
@@ -324,3 +324,10 @@
 func (s *composeService) isDesktopIntegrationActive() bool {
        return s.desktopCli != nil
 }
+
+func (s *composeService) isDesktopUIEnabled() bool {
+       if !s.isDesktopIntegrationActive() {
+               return false
+       }
+       return s.experiments.ComposeUI()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/compose/create.go 
new/compose-2.27.1/pkg/compose/create.go
--- old/compose-2.27.0/pkg/compose/create.go    2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/compose/create.go    2024-05-24 10:58:53.000000000 
+0200
@@ -439,6 +439,7 @@
                ipv4Address string
                ipv6Address string
                macAddress  string
+               driverOpts  types.Options
        )
        if config != nil {
                ipv4Address = config.Ipv4Address
@@ -449,6 +450,7 @@
                        LinkLocalIPs: config.LinkLocalIPs,
                }
                macAddress = config.MacAddress
+               driverOpts = config.DriverOpts
        }
        return &network.EndpointSettings{
                Aliases:     getAliases(p, service, serviceIndex, networkKey, 
useNetworkAliases),
@@ -457,6 +459,7 @@
                IPv6Gateway: ipv6Address,
                IPAMConfig:  ipam,
                MacAddress:  macAddress,
+               DriverOpts:  driverOpts,
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/compose/create_test.go 
new/compose-2.27.1/pkg/compose/create_test.go
--- old/compose-2.27.0/pkg/compose/create_test.go       2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/compose/create_test.go       2024-05-24 
10:58:53.000000000 +0200
@@ -25,6 +25,7 @@
        "gotest.tools/v3/assert/cmp"
 
        "github.com/docker/compose/v2/pkg/api"
+       "github.com/docker/docker/api/types/network"
 
        composetypes "github.com/compose-spec/compose-go/v2/types"
        moby "github.com/docker/docker/api/types"
@@ -275,3 +276,54 @@
                assert.Check(t, cmp.Nil(networkConfig))
        })
 }
+
+func TestCreateEndpointSettings(t *testing.T) {
+       eps := createEndpointSettings(
+               &composetypes.Project{
+                       Name: "projName",
+               },
+               composetypes.ServiceConfig{
+                       Name:          "serviceName",
+                       ContainerName: "containerName",
+                       Networks: map[string]*composetypes.ServiceNetworkConfig{
+                               "netName": {
+                                       Priority:     100,
+                                       Aliases:      []string{"alias1", 
"alias2"},
+                                       Ipv4Address:  "10.16.17.18",
+                                       Ipv6Address:  "fdb4:7a7f:373a:3f0c::42",
+                                       LinkLocalIPs: []string{"169.254.10.20"},
+                                       MacAddress:   "10:00:00:00:01",
+                                       DriverOpts: composetypes.Options{
+                                               "driverOpt1": "optval1",
+                                               "driverOpt2": "optval2",
+                                       },
+                               },
+                       },
+               },
+               0,                          // serviceIndex
+               "netName",                  // networkKey
+               []string{"link1", "link2"}, // links
+               true,                       // useNetworkAliases
+       )
+       assert.Check(t, cmp.DeepEqual(eps, &network.EndpointSettings{
+               IPAMConfig: &network.EndpointIPAMConfig{
+                       IPv4Address:  "10.16.17.18",
+                       IPv6Address:  "fdb4:7a7f:373a:3f0c::42",
+                       LinkLocalIPs: []string{"169.254.10.20"},
+               },
+               Links:      []string{"link1", "link2"},
+               Aliases:    []string{"containerName", "serviceName", "alias1", 
"alias2"},
+               MacAddress: "10:00:00:00:01",
+               DriverOpts: map[string]string{
+                       "driverOpt1": "optval1",
+                       "driverOpt2": "optval2",
+               },
+
+               // FIXME(robmry) - IPAddress and IPv6Gateway are "operational 
data" fields...
+               //  - The IPv6 address here is the container's address, not the 
gateway.
+               //  - Both fields will be cleared by the daemon, but they could 
be removed from
+               //    the request.
+               IPAddress:   "10.16.17.18",
+               IPv6Gateway: "fdb4:7a7f:373a:3f0c::42",
+       }))
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/compose/pull.go 
new/compose-2.27.1/pkg/compose/pull.go
--- old/compose-2.27.0/pkg/compose/pull.go      2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/compose/pull.go      2024-05-24 10:58:53.000000000 
+0200
@@ -264,7 +264,8 @@
                }
                inspect, err := apiClient.DistributionInspect(ctx, 
named.String(), auth)
                if err != nil {
-                       return "", err
+                       return "",
+                               fmt.Errorf("failed ot resolve digest for %s: 
%w", named.String(), err)
                }
                return inspect.Descriptor.Digest, nil
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/compose/up.go 
new/compose-2.27.1/pkg/compose/up.go
--- old/compose-2.27.0/pkg/compose/up.go        2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/compose/up.go        2024-05-24 10:58:53.000000000 
+0200
@@ -97,9 +97,10 @@
                        } else {
                                isWatchConfigured := s.shouldWatch(project)
                                isDockerDesktopActive := 
s.isDesktopIntegrationActive()
-                               tracing.KeyboardMetrics(ctx, 
options.Start.NavigationMenu, isDockerDesktopActive, isWatchConfigured)
+                               isDockerDesktopComposeUI := 
s.isDesktopUIEnabled()
+                               tracing.KeyboardMetrics(ctx, 
options.Start.NavigationMenu, isDockerDesktopActive, isWatchConfigured, 
isDockerDesktopComposeUI)
 
-                               formatter.NewKeyboardManager(ctx, 
isDockerDesktopActive, isWatchConfigured, signalChan, s.Watch)
+                               formatter.NewKeyboardManager(ctx, 
isDockerDesktopActive, isWatchConfigured, isDockerDesktopComposeUI, signalChan, 
s.Watch)
                                if options.Start.Watch {
                                        
formatter.KeyboardManager.StartWatch(ctx, project, options)
                                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/e2e/compose_environment_test.go 
new/compose-2.27.1/pkg/e2e/compose_environment_test.go
--- old/compose-2.27.0/pkg/e2e/compose_environment_test.go      2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/e2e/compose_environment_test.go      2024-05-24 
10:58:53.000000000 +0200
@@ -117,7 +117,8 @@
                        "run", "--rm", "-e", "WHEREAMI", "env-compose-priority")
                cmd.Env = append(cmd.Env, 
"COMPOSE_ENV_FILES=./fixtures/environment/env-priority/.env.override.with.default")
                res := icmd.RunCmd(cmd)
-               assert.Equal(t, strings.TrimSpace(res.Stdout()), 
"EnvFileDefaultValue")
+               stdout := res.Stdout()
+               assert.Equal(t, strings.TrimSpace(stdout), 
"EnvFileDefaultValue")
        })
 
        // No Compose file and env variable pass to the run command
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/e2e/compose_test.go 
new/compose-2.27.1/pkg/e2e/compose_test.go
--- old/compose-2.27.0/pkg/e2e/compose_test.go  2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/e2e/compose_test.go  2024-05-24 10:58:53.000000000 
+0200
@@ -329,3 +329,24 @@
                Out:      "image: backend:latest",
        })
 }
+
+func TestNestedDotEnv(t *testing.T) {
+       c := NewCLI(t)
+
+       cmd := c.NewDockerComposeCmd(t, "run", "echo")
+       cmd.Dir = filepath.Join(".", "fixtures", "nested")
+       res := icmd.RunCmd(cmd)
+       res.Assert(t, icmd.Expected{
+               ExitCode: 0,
+               Out:      "root win=root",
+       })
+
+       cmd = c.NewDockerComposeCmd(t, "run", "echo")
+       cmd.Dir = filepath.Join(".", "fixtures", "nested", "sub")
+       res = icmd.RunCmd(cmd)
+       res.Assert(t, icmd.Expected{
+               ExitCode: 0,
+               Out:      "root sub win=sub",
+       })
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/compose-2.27.0/pkg/e2e/fixtures/environment/env-priority/compose.yaml 
new/compose-2.27.1/pkg/e2e/fixtures/environment/env-priority/compose.yaml
--- old/compose-2.27.0/pkg/e2e/fixtures/environment/env-priority/compose.yaml   
2024-04-24 20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/e2e/fixtures/environment/env-priority/compose.yaml   
2024-05-24 10:58:53.000000000 +0200
@@ -1,3 +1,5 @@
 services:
   env-compose-priority:
     image: env-compose-priority
+    build:
+      context: .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/e2e/fixtures/nested/.env 
new/compose-2.27.1/pkg/e2e/fixtures/nested/.env
--- old/compose-2.27.0/pkg/e2e/fixtures/nested/.env     1970-01-01 
01:00:00.000000000 +0100
+++ new/compose-2.27.1/pkg/e2e/fixtures/nested/.env     2024-05-24 
10:58:53.000000000 +0200
@@ -0,0 +1,2 @@
+ROOT=root
+WIN=root
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/e2e/fixtures/nested/compose.yaml 
new/compose-2.27.1/pkg/e2e/fixtures/nested/compose.yaml
--- old/compose-2.27.0/pkg/e2e/fixtures/nested/compose.yaml     1970-01-01 
01:00:00.000000000 +0100
+++ new/compose-2.27.1/pkg/e2e/fixtures/nested/compose.yaml     2024-05-24 
10:58:53.000000000 +0200
@@ -0,0 +1,4 @@
+services:
+  echo:
+    image: alpine
+    command: echo $ROOT $SUB win=$WIN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/e2e/fixtures/nested/sub/.env 
new/compose-2.27.1/pkg/e2e/fixtures/nested/sub/.env
--- old/compose-2.27.0/pkg/e2e/fixtures/nested/sub/.env 1970-01-01 
01:00:00.000000000 +0100
+++ new/compose-2.27.1/pkg/e2e/fixtures/nested/sub/.env 2024-05-24 
10:58:53.000000000 +0200
@@ -0,0 +1,2 @@
+SUB=sub
+WIN=sub
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/mocks/mock_docker_api.go 
new/compose-2.27.1/pkg/mocks/mock_docker_api.go
--- old/compose-2.27.0/pkg/mocks/mock_docker_api.go     2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/mocks/mock_docker_api.go     2024-05-24 
10:58:53.000000000 +0200
@@ -5,6 +5,7 @@
 //
 //     mockgen -destination pkg/mocks/mock_docker_api.go -package mocks 
github.com/docker/docker/client APIClient
 //
+
 // Package mocks is a generated GoMock package.
 package mocks
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/mocks/mock_docker_cli.go 
new/compose-2.27.1/pkg/mocks/mock_docker_cli.go
--- old/compose-2.27.0/pkg/mocks/mock_docker_cli.go     2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/mocks/mock_docker_cli.go     2024-05-24 
10:58:53.000000000 +0200
@@ -5,11 +5,11 @@
 //
 //     mockgen -destination pkg/mocks/mock_docker_cli.go -package mocks 
github.com/docker/cli/cli/command Cli
 //
+
 // Package mocks is a generated GoMock package.
 package mocks
 
 import (
-       context "context"
        io "io"
        reflect "reflect"
 
@@ -23,9 +23,9 @@
        trust "github.com/docker/cli/cli/trust"
        client0 "github.com/docker/docker/client"
        client1 "github.com/theupdateframework/notary/client"
-       metric "go.opentelemetry.io/otel/sdk/metric"
+       metric "go.opentelemetry.io/otel/metric"
        resource "go.opentelemetry.io/otel/sdk/resource"
-       trace "go.opentelemetry.io/otel/sdk/trace"
+       trace "go.opentelemetry.io/otel/trace"
        gomock "go.uber.org/mock/gomock"
 )
 
@@ -240,22 +240,17 @@
 }
 
 // MeterProvider mocks base method.
-func (m *MockCli) MeterProvider(arg0 context.Context, arg1 ...metric.Option) 
command.MeterProvider {
+func (m *MockCli) MeterProvider() metric.MeterProvider {
        m.ctrl.T.Helper()
-       varargs := []any{arg0}
-       for _, a := range arg1 {
-               varargs = append(varargs, a)
-       }
-       ret := m.ctrl.Call(m, "MeterProvider", varargs...)
-       ret0, _ := ret[0].(command.MeterProvider)
+       ret := m.ctrl.Call(m, "MeterProvider")
+       ret0, _ := ret[0].(metric.MeterProvider)
        return ret0
 }
 
 // MeterProvider indicates an expected call of MeterProvider.
-func (mr *MockCliMockRecorder) MeterProvider(arg0 any, arg1 ...any) 
*gomock.Call {
+func (mr *MockCliMockRecorder) MeterProvider() *gomock.Call {
        mr.mock.ctrl.T.Helper()
-       varargs := append([]any{arg0}, arg1...)
-       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MeterProvider", 
reflect.TypeOf((*MockCli)(nil).MeterProvider), varargs...)
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MeterProvider", 
reflect.TypeOf((*MockCli)(nil).MeterProvider))
 }
 
 // NotaryClient mocks base method.
@@ -342,20 +337,15 @@
 }
 
 // TracerProvider mocks base method.
-func (m *MockCli) TracerProvider(arg0 context.Context, arg1 
...trace.TracerProviderOption) command.TracerProvider {
+func (m *MockCli) TracerProvider() trace.TracerProvider {
        m.ctrl.T.Helper()
-       varargs := []any{arg0}
-       for _, a := range arg1 {
-               varargs = append(varargs, a)
-       }
-       ret := m.ctrl.Call(m, "TracerProvider", varargs...)
-       ret0, _ := ret[0].(command.TracerProvider)
+       ret := m.ctrl.Call(m, "TracerProvider")
+       ret0, _ := ret[0].(trace.TracerProvider)
        return ret0
 }
 
 // TracerProvider indicates an expected call of TracerProvider.
-func (mr *MockCliMockRecorder) TracerProvider(arg0 any, arg1 ...any) 
*gomock.Call {
+func (mr *MockCliMockRecorder) TracerProvider() *gomock.Call {
        mr.mock.ctrl.T.Helper()
-       varargs := append([]any{arg0}, arg1...)
-       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TracerProvider", 
reflect.TypeOf((*MockCli)(nil).TracerProvider), varargs...)
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TracerProvider", 
reflect.TypeOf((*MockCli)(nil).TracerProvider))
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/mocks/mock_docker_compose_api.go 
new/compose-2.27.1/pkg/mocks/mock_docker_compose_api.go
--- old/compose-2.27.0/pkg/mocks/mock_docker_compose_api.go     2024-04-24 
20:59:42.000000000 +0200
+++ new/compose-2.27.1/pkg/mocks/mock_docker_compose_api.go     2024-05-24 
10:58:53.000000000 +0200
@@ -5,6 +5,7 @@
 //
 //     mockgen -destination pkg/mocks/mock_docker_compose_api.go -package 
mocks -source=./pkg/api/api.go Service
 //
+
 // Package mocks is a generated GoMock package.
 package mocks
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compose-2.27.0/pkg/remote/cache_unix.go 
new/compose-2.27.1/pkg/remote/cache_unix.go
--- old/compose-2.27.0/pkg/remote/cache_unix.go 2024-04-24 20:59:42.000000000 
+0200
+++ new/compose-2.27.1/pkg/remote/cache_unix.go 2024-05-24 10:58:53.000000000 
+0200
@@ -1,4 +1,4 @@
-//go:build linux
+//go:build linux || openbsd
 
 /*
    Copyright 2020 Docker Compose CLI authors

++++++ compose.obsinfo ++++++
--- /var/tmp/diff_new_pack.vMFmPa/_old  2024-05-27 12:02:34.304695640 +0200
+++ /var/tmp/diff_new_pack.vMFmPa/_new  2024-05-27 12:02:34.308695787 +0200
@@ -1,5 +1,5 @@
 name: compose
-version: 2.27.0
-mtime: 1713985182
-commit: 9c0b92259737c0baf886619517c3222626c2a247
+version: 2.27.1
+mtime: 1716541133
+commit: bf1dd0c267fa4fc63a43fecd62c0919de1cd5db3
 

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

Reply via email to