Skip to content

Tags: moby/moby

Tags

v2.0.0-beta.0

Toggle v2.0.0-beta.0's commit message

Verified

This tag was signed with the committer’s verified signature.
austinvazquez Austin Vazquez
moby 2.0.0-beta.0

Welcome to the v2.0.0-beta.0 release of moby!
*This is a pre-release of moby*

The first release of the Moby Go module and v2 release. This represents a major
change to the code organization, completing the rename to `github.com/moby/moby`.

While this completes the transition to Go modules for Moby, importers
who are using `github.com/docker/docker` should update to use the
`github.com/moby/moby/api` and `github.com/moby/moby/client` modules rather than
continuing to use the `github.com/docker/docker` import paths.

### Highlights

* Update Go runtime to 1.24.7 ([#50889](#50889))
* Add a new log option for fluentd log driver (`fluentd-read-timeout`), which enables specifying read timeouts for reading acks from fluentd connections. ([#50249](#50249))
* Update Go runtime to [1.24.6](https://go.dev/doc/devel/release#go1.24.6) ([#50653](#50653))
* Update containerd (static binaries only) to [v1.7.28](https://github.com/containerd/containerd/releases/tag/v1.7.28) ([#50645](#50645))
* Update `runc` to [v1.3.0](https://github.com/opencontainers/runc/releases/tag/v1.3.0) ([#50644](#50644))
* contrib: remove Dockerfile syntax highlighting files for `nano` and TextMate (`tmbundle`)  as they were unmaintained and outdated. ([#50606](#50606))
* Remove deprecated packages (`pkg/archive`, `pkg/chrootarchive`, `pkg/atomicwriter`, `pkg/reexec`, `pkg/platform`, `pkg/parsers`), `pkg/system.MkdirAll`. For replacements, see `github.com/moby/go-archive`, `github.com/moby/sys` and the standard library. ([#50208](#50208))
* Go SDK: registry: remove deprecated `HostCertsDir()` and `SetCertsDir()` functions. ([#50373](#50373))
* Go-SDK: Remove `buildkit.ClientOpts` ([#50318](#50318))
* Update Go runtime to 1.24.5 ([#50353](#50353))
* contrib: remove mkimage-xxx scripts as they were unmaintained and not tested. ([#50297](#50297))
* pkg/idtools: deprecate `IdentityMapping` and `Identity.Chown` ([#50209](#50209))
* Fix an issue where all new tasks in the Swarm could get stuck in the PENDING state forever after scaling up a service with placement preferences. ([#50202](#50202))
* Allow customizing containerd service name for OpenRC ([#50156](#50156))
* Update Go runtime to [1.24.4](https://go.dev/doc/devel/release#go1.24.4) ([#50153](#50153))

#### API

* Swagger definitions for `NetworkSummary` and `NetworkInspect` have been added to the Swagger spec describing the Engine API. ([#50855](#50855))
* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* api/types/build: move `CachePruneOptions` type to `client.BuildCachePruneOptions` ([#50772](#50772))
* Go SDK: api/types/container: move container options to client ([#50897](#50897))
* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* api: remove unused `DefaultVersion`, `MinSupportedAPIVersion` consts ([#50587](#50587))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Update deprecation message for `AuthConfig.Email` field ([#50792](#50792))
* Prefer explicit device driver name over GPU capabilities when selecting the device driver with `docker run --gpus` ([#50717](#50717))
* Go SDK: api/types/container: rename `Port` to `PortSummary`. ([#50711](#50711))
* Improve errors when failing to connect to the API to provide more context to the user. ([#50285](#50285))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))
* `GET /containers/json` now includes a `Health` field describing container healthcheck status. ([#50281](#50281))
* Go SDK: daemon/config: add `DefaultAPIVersion` const, which defines the default (and maximum) API version supported by the daemon. ([#50436](#50436))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))
* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))
* Update API version to 1.51 ([#50145](#50145))
* Fix `docker image inspect inspect` omitting empty fields. ([#50135](#50135))

#### Build

* Update BuildKit to [v0.24.0](https://github.com/moby/buildkit/releases/tag/v0.24.0) ([#50885](#50885))
* containerd image store: Fix `docker history` failing with `snapshot X does not exist` when calling on a non-native image that was built locally ([#50867](#50867))
* Add `device` entitlement to builder configuration ([#50386](#50386))
* Update BuildKit to v0.23.2 ([#50305](#50305))
* Update BuildKit to [v0.23.1](https://github.com/moby/buildkit/releases/tag/v0.23.1) ([#50238](#50238))
* Update BuildKit to [v0.23.0](https://github.com/moby/buildkit/releases/tag/v0.23.0) ([#50222](#50222))

#### Client

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* Improve errors when failing to connect to the API to provide more context to the user. ([#50285](#50285))

#### Core Engine

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* containerd image store: Fix `docker image prune` to emit correct `untag` and `delete` events and list only the deleted images root digests instead of every blob. ([#50725](#50725))
* daemon: improve validation of the `--dns` option and corresponding `"dns"` field in `daemon.json`. ([#50600](#50600))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))
* Go SDK: daemon/config: add `DefaultAPIVersion` const, which defines the default (and maximum) API version supported by the daemon. ([#50436](#50436))
* On daemon startup, restart containers that share their network stacks before containers that need those stacks. ([#50327](#50327))
* Go SDK: container: remove deprecated `StateStatus`, `WaitCondition`, and the related  `WaitConditionNotRunning`, `WaitConditionNextExit`, and `WaitConditionRemoved` consts.
Go SDK: container: remove deprecated `IsValidStateString`.
Go SDK: container: remove deprecated `IsValidHealthString`. ([#50378](#50378))
* Validate registry-mirrors configuration as part of `dockerd --validate` and improve error messages for invalid mirrors. ([#50233](#50233))
* Ensure that the state of the container in the daemon database (used by [/containers/json](https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerList) API) is up to date when the container is stopped using the [/containers/{id}/stop](https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerStop) API (before response of API). ([#50136](#50136))
* Add support for AMD GPUs in `docker run --gpus`. ([#49952](#49952))

#### Image Distribution

* containerd image store: Fix `docker history` failing with `snapshot X does not exist` when calling on a non-native image that was built locally ([#50867](#50867))
* Windows: Potentially fix an issue with "access denied" error when pulling images ([#50870](#50870))
* Fix `--mount type=image` failure when mounting the same image multiple times to a different destinations. ([#50268](#50268))
* Go SDK: registry: remove deprecated `APIEndpoint.TrimHostName`, `APIEndpoint.Official`, and `APIEndpoint.AllowNondistributableArtifacts` fields. ([#50376](#50376))
* Go SDK: registry: remove deprecated `Service.ResolveRepository()`. ([#50374](#50374))
* Remove support for loading legacy (pre Docker 1.10) images. ([#50324](#50324))
* Validate registry-mirrors configuration as part of `dockerd --validate` and improve error messages for invalid mirrors. ([#50233](#50233))
* containerd image store: Fix `docker push` not creating a tag on the remote repository. ([#50199](#50199))
* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))
* containerd image store: Improve handling of errors returned by the token server during `docker pull/push` ([#50176](#50176))

#### Networking

* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Environment variables set on a container using legacy links are deprecated and aren't added automatically anymore.
  - The daemon can be started with `DOCKER_KEEP_DEPRECATED_LEGACY_LINKS_ENV_VARS=1` to get them back.
  - Users are encouraged to stop relying on these as they're deprecated, and the escape hatch will be removed in a later version. ([#50719](#50719))
* [FIXME - add docs ref] nftables: Docker will not enable IP forwarding on the host. If forwarding is needed by a bridge network, but not enabled, daemon startup or network creation will fail with an error. You must either enable forwarding and ensure firewall rules are in place to prevent unwanted forwarding between non-Docker interfaces. Or, use daemon option `--ip-forward=false` to disable the check, but some bridge network functionality including port forwarding may not work. ([#50646](#50646))
* Fix a bug that could cause the Engine and another host process to bind the same UDP port ([#50669](#50669))
* Windows containers: when restoring networks on daemon restart, preserve their association with non-default IPAM drivers ([#50649](#50649))
* Fix a deadlock that could happen if a firewalld reload was processed while the bridge netdriver was starting up, or creating or deleting a network, or creating port-mappings ([#50620](#50620))
* Since 28.0.0, an `iptables` mangle rule for checksumming SCTP was only added if environment variable
`DOCKER_IPTABLES_SCTP_CHECKSUM=1` was set. The rule has now been removed, the environment variable now has no effect. ([#50539](#50539))
* Fix Swarm services becoming unreachable from published ports after a firewalld reload. ([#50443](#50443))
* Greatly improve the reliability of overlay networking and the Swarm routing mesh ([#50393](#50393))
* Add daemon option `--bridge-accept-fwmark`. Packets with this firewall mark will accepted by bridge networks, overriding Docker's iptables or nftables "drop" rules. ([#50476](#50476))
* Published ports are now always accessible in networks with gateway mode "routed". Previously, rules to open those ports were only added when the routed mode network was selected as the container's default gateway. ([#50140](#50140))
* Ensure that Windows NAT networks are recreated with their original labels when the Engine restarts ([#50447](#50447))
* On daemon startup, restart containers that share their network stacks before containers that need those stacks. ([#50327](#50327))
* Improve the reliability of the overlay network driver ([#50260](#50260))
* Fix a bug in NetworkDB which would sometimes cause entries to get stuck deleted on some of the nodes, leading to connectivity issues between containers on overlay networks. ([#50342](#50342))
* Improve the convergence rate of NetworkDB, part of the management plane for overlay networking, after bursts of updates. ([#50193](#50193))
* The iptables rules for bridge networks have been updated, including removal of the `DOCKER-ISOLATION-STAGE-1` and `DOCKER-ISOLATION-STAGE-2` chains. With these changes:
  - Containers can now access ports published to host addresses by containers in other networks when the userland-proxy is not running.
  - Containers can now access ports on container addresses in other networks that have gateway mode "nat-unprotected". ([#49981](#49981))
* Fix a potential resource leak when a node leaves a Swarm ([#50115](#50115))
* Windows: Improve daemon startup time in cases where the host has networks of type `"Mirrored"`. ([#50155](#50155))
* Windows: Make sure `docker system prune` and `docker network prune` only remove networks created by Docker. ([#50154](#50154))
* The `network inspect` response for an overlay network now reports that `EnableIPv4` is true. ([#50147](#50147))
* Fix an issue that could cause container startup to fail, or lead to failed UDP port mappings, when some container ports are mapped to `0.0.0.0` and others are mapped to specific host addresses. ([#50054](#50054))

#### Rootless Mode

* `dockerd-rootless-setuptool.sh`: Fix the script from silently returning with no error message when subuid/subgid system requirements are not satisfied. ([#50059](#50059))

#### Runtime

* `docker run --runtime <...>` is now supported on Windows ([#50546](#50546))

#### Volumes

* Fix `--mount type=image` failure when mounting the same image multiple times to a different destinations. ([#50268](#50268))

#### Deprecations

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Go-SDK: Deprecate field `NetworkSettingsBase.Bridge`, struct `NetworkSettingsBase`, all the fields of `DefaultNetworkSettings`, and struct `DefaultNetworkSettings`. ([#50848](#50848))
* contrib: remove contrib/httpserver, which was only used for our integration tests ([#50654](#50654))
* api/types/strslice: deprecate StrSlice in favor of using a regular `[]string`. ([#50292](#50292))
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* contrib: remove Dockerfile syntax highlighting files for `nano` and TextMate (`tmbundle`)  as they were unmaintained and outdated. ([#50606](#50606))
* contrib: remove `editorconfig` as it was unmaintained. ([#50607](#50607))
* Go SDK: api: remove `NoBaseImageSpecifier` ([#50574](#50574))
* GO SDK: api/types/filters: remove deprecated `ToParamWithVersion` ([#50561](#50561))
* Go SDK: remove `pkg/fileutils` ([#50558](#50558))
* Go-SDK: remove deprecated `types/plugins/logdriver` and `types/swarm/runtime` packages; plugin-runtime spec is now exposed as `types/swarm.RuntimeSpec` and `types/swarm.RuntimePrivilege` ([#50554](#50554))
* Go SDK: pkg/system was removed, and is now an internal package. ([#50559](#50559))
* Go SDK: deprecate pkg/stringid in favour of github.com/moby/moby/client/pkg/stringid ([#50504](#50504))
* Go SDK: registry: remove deprecated `RepositoryInfo.Official` and `RepositoryInfo.Class` field ([#50498](#50498))
* Go SDK: api/types/container: remove deprecated `Stats` type. ([#50492](#50492))
* Go SDK: client: remove deprecated `NewClient` and `NewEnvClient` functions.
Go SDK: client: remove deprecated `ErrorConnectionFailed` and `IsErrNotFound` functions.
Go SDK: client: remove the deprecated `Client.ImageInspectWithRaw` method.
Go SDK: client: remove `ImageAPIClient.ImageInspectWithRaw` from the `ImageAPIClient` interface.
Go SDK: client: remove `APIClient.ImageInspectWithRaw` from the `APIClient` interface.
Go SDK: client: remove `ImageAPIClientDeprecated.ImageInspectWithRaw` from the `ImageAPIClientDeprecated`.
Go SDK: client: remove the `ImageAPIClientDeprecated` interface.
Go SDK: client: remove the `CommonAPIClient` interface. ([#50485](#50485))
* Go SDK: deprecate profiles package which got migrated to github.com/moby/profiles ([#50481](#50481))
* Go-SDK: deprecate `pkg/stdcopy`, which was moved to `api/stdcopy`. ([#50462](#50462))
* Go SDK: oci: deprecate SetCapabilities, and some minor cleanups/fixes ([#50461](#50461))
* Go SDK: remove deprecated pkg/idtools package ([#50456](#50456))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* Remove deprecated packages (`pkg/archive`, `pkg/chrootarchive`, `pkg/atomicwriter`, `pkg/reexec`, `pkg/platform`, `pkg/parsers`), `pkg/system.MkdirAll`. For replacements, see `github.com/moby/go-archive`, `github.com/moby/sys` and the standard library. ([#50208](#50208))
* Go SDK: pkg/system: deprecate `EscapeArgs()` and `IsAbs`. These functions were only used internally and will be removed in the next release. ([#50399](#50399))
* Go SDK: registry: remove deprecated `HostCertsDir()` and `SetCertsDir()` functions. ([#50373](#50373))
* Go SDK: container: remove deprecated `StateStatus`, `WaitCondition`, and the related  `WaitConditionNotRunning`, `WaitConditionNextExit`, and `WaitConditionRemoved` consts.
Go SDK: container: remove deprecated `IsValidStateString`.
Go SDK: container: remove deprecated `IsValidHealthString`. ([#50378](#50378))
* daemon/graphdriver: remove deprecated `GetDriver()` ([#50377](#50377))
* Go SDK: registry: remove deprecated `APIEndpoint.TrimHostName`, `APIEndpoint.Official`, and `APIEndpoint.AllowNondistributableArtifacts` fields. ([#50376](#50376))
* Go SDK: registry: remove deprecated `Service.ResolveRepository()`. ([#50374](#50374))
* Go-SDK: Remove `buildkit.ClientOpts` ([#50318](#50318))
* Remove support for loading legacy (pre Docker 1.10) images. ([#50324](#50324))
* contrib: remove mkimage-xxx scripts as they were unmaintained and not tested. ([#50297](#50297))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))
* pkg/idtools: deprecate `IdentityMapping` and `Identity.Chown` ([#50209](#50209))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Derek McGowan
* Paweł Gronowski
* Rob Murray
* Austin Vazquez
* Albin Kerouanton
* Cory Snider
* Akihiro Suda
* Matthieu MOREL
* Andrey Epifanov
* Kevin Alvarez
* Abubacarr Ceesay
* Cesar Talledo
* Olli Janatuinen
* Tõnis Tiigi
* Anirudh Aithal
* Jonathan A. Sternberg
* Muhammad Daffa Dinaya
* Serhan Tutar
* Tianon Gravi
* 纯真
* Adrien Pompée
* Brian Goff
* Evan Lezar
* Hannes Ortmeier
* Marat Abrarov
* Marat Radchenko
* Maria Glushenok
* Niel Drummond
* Shang Mu
* Sudheendra Gopinath
* Tiago Teixeira
* Viacheslav Gagara
* carsontham

### Dependency Changes

* **cloud.google.com/go/compute/metadata**                                          v0.5.2 -> v0.6.0
* **cloud.google.com/go/longrunning**                                               v0.5.4 -> v0.5.5
* **code.cloudfoundry.org/clock**                                                   v1.1.0 -> v1.37.0
* **dario.cat/mergo**                                                               v1.0.1 -> v1.0.2
* **github.com/Microsoft/hcsshim**                                                  v0.12.9 -> v0.13.0
* **github.com/containerd/console**                                                 v1.0.4 -> v1.0.5
* **github.com/containerd/containerd/v2**                                           v2.0.5 -> v2.1.4
* **github.com/containerd/nydus-snapshotter**                                       v0.15.0 -> v0.15.2
* **github.com/containernetworking/cni**                                            v1.2.3 -> v1.3.0
* **github.com/containernetworking/plugins**                                        v1.6.2 -> v1.7.1
* **github.com/docker/go-connections**                                              v0.5.0 -> v0.6.0
* **github.com/docker/go-events**                                                   e31b211e4f1c -> 605354379745
* **github.com/fernet/fernet-go**                                                   9f70042a33ee -> 303da6aec611
* **github.com/fluent/fluent-logger-golang**                                        v1.9.0 -> v1.10.1
* **github.com/fsnotify/fsnotify**                                                  v1.7.0 -> v1.9.0
* **github.com/golang/gddo**                                                        72a348e765d2 -> 20d68f94ee1f
* **github.com/golang/groupcache**                                                  41bb18bfe9da -> 2c02b8208cf8
* **github.com/google/btree**                                                       v1.1.2 -> v1.1.3
* **github.com/grpc-ecosystem/grpc-gateway/v2**                                     v2.22.0 -> v2.26.1
* **github.com/in-toto/in-toto-golang**                                             v0.5.0 -> v0.9.0
* **github.com/ishidawataru/sctp**                                                  7ff4192f6ff2 -> 4b890084db30
* **github.com/miekg/dns**                                                          v1.1.61 -> v1.1.66
* **github.com/moby/buildkit**                                                      v0.22.0 -> v0.24.0
* **github.com/moby/moby/api**                                                      v1.52.0-beta.1 **_new_**
* **github.com/moby/moby/client**                                                   v0.1.0-beta.0 **_new_**
* **github.com/moby/profiles/apparmor**                                             v0.1.0 **_new_**
* **github.com/moby/profiles/seccomp**                                              v0.1.0 **_new_**
* **github.com/moby/swarmkit/v2**                                                   8c1959736554 -> v2.0.0
* **github.com/montanaflynn/stats**                                                 v0.7.1 **_new_**
* **github.com/opencontainers/cgroups**                                             v0.0.2 -> v0.0.4
* **github.com/pelletier/go-toml/v2**                                               v2.2.3 -> v2.2.4
* **github.com/philhofer/fwd**                                                      v1.1.2 -> v1.2.0
* **github.com/prometheus/client_golang**                                           v1.20.5 -> v1.22.0
* **github.com/prometheus/common**                                                  v0.55.0 -> v0.62.0
* **github.com/rootless-containers/rootlesskit/v2**                                 v2.3.4 -> v2.3.5
* **github.com/secure-systems-lab/go-securesystemslib**                             v0.4.0 -> v0.6.0
* **github.com/spdx/tools-golang**                                                  v0.5.3 -> v0.5.5
* **github.com/spf13/cobra**                                                        v1.9.1 -> v1.10.1
* **github.com/spf13/pflag**                                                        v1.0.6 -> v1.0.10
* **github.com/tinylib/msgp**                                                       v1.1.8 -> v1.3.0
* **github.com/tonistiigi/fsutil**                                                  3f76f8130144 -> 586307ad452f
* **github.com/tonistiigi/go-actions-cache**                                        3e9a6642607f -> 378c5ed1ddd9
* **github.com/tonistiigi/go-csvvalue**                                             ddb21b71c0b4 -> 030d3b2625d0
* **go.etcd.io/bbolt**                                                              v1.3.11 -> v1.4.3
* **go.opentelemetry.io/auto/sdk**                                                  v1.1.0 **_new_**
* **go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc**   v0.56.0 -> v0.60.0
* **go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace**  v0.56.0 -> v0.60.0
* **go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp**                 v0.56.0 -> v0.60.0
* **go.opentelemetry.io/otel**                                                      v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc**             v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp**             v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/exporters/otlp/otlptrace**                             v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc**               v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp**               v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/metric**                                               v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/sdk**                                                  v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/sdk/metric**                                           v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/trace**                                                v1.31.0 -> v1.35.0
* **go.opentelemetry.io/proto/otlp**                                                v1.3.1 -> v1.5.0
* **go.uber.org/multierr**                                                          v1.8.0 -> v1.11.0
* **go.uber.org/zap**                                                               v1.21.0 -> v1.27.0
* **golang.org/x/sync**                                                             v0.13.0 -> v0.16.0
* **golang.org/x/sys**                                                              v0.32.0 -> v0.33.0
* **golang.org/x/tools**                                                            v0.27.0 -> v0.32.0
* **google.golang.org/api**                                                         v0.155.0 -> v0.160.0
* **google.golang.org/genproto**                                                    ef4313101c80 -> 6ceb2ff114de
* **google.golang.org/genproto/googleapis/api**                                     324edc3d5d38 -> 56aae31c358a
* **google.golang.org/genproto/googleapis/rpc**                                     324edc3d5d38 -> 56aae31c358a
* **google.golang.org/grpc**                                                        v1.69.4 -> v1.72.2
* **google.golang.org/protobuf**                                                    v1.35.2 -> v1.36.6
* **pgregory.net/rapid**                                                            v1.2.0 **_new_**

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)

client/v0.1.0-beta.0

Toggle client/v0.1.0-beta.0's commit message

Verified

This tag was signed with the committer’s verified signature.
dmcgowan Derek McGowan
moby client/v0.1.0-beta.0

Welcome to the client/v0.1.0-beta.0 release of moby!
*This is a pre-release of moby*

The first dedicated release for the Moby Client. This is a 0.x release
since changes to the Go interface are still being considered.

### Highlights

* Go SDK: Fix data race in `ContainerExecStart`, `ContainerList`, and `Events`. ([#50448](#50448))
* Go SDK: client: add `DefaultAPIVersion` const, which defines the default (and maximum) API version supported by the client. ([#50433](#50433))
* Go-SDK: Remove `buildkit.ClientOpts` ([#50318](#50318))

#### API

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* api/types/build: move `CachePruneOptions` type to `client.BuildCachePruneOptions` ([#50772](#50772))
* Go SDK: api/types/container: move container options to client ([#50897](#50897))
* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* api: remove unused `DefaultVersion`, `MinSupportedAPIVersion` consts ([#50587](#50587))
* Improve errors when failing to connect to the API to provide more context to the user. ([#50285](#50285))

#### Client

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* Improve errors when failing to connect to the API to provide more context to the user. ([#50285](#50285))

#### Networking

* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))

#### Deprecations

* api/types/strslice: deprecate StrSlice in favor of using a regular `[]string`. ([#50292](#50292))
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* GO SDK: api/types/filters: remove deprecated `ToParamWithVersion` ([#50561](#50561))
* Go-SDK: remove deprecated `types/plugins/logdriver` and `types/swarm/runtime` packages; plugin-runtime spec is now exposed as `types/swarm.RuntimeSpec` and `types/swarm.RuntimePrivilege` ([#50554](#50554))
* Go SDK: deprecate pkg/stringid in favour of github.com/moby/moby/client/pkg/stringid ([#50504](#50504))
* Go SDK: client: remove deprecated `NewClient` and `NewEnvClient` functions.
Go SDK: client: remove deprecated `ErrorConnectionFailed` and `IsErrNotFound` functions.
Go SDK: client: remove the deprecated `Client.ImageInspectWithRaw` method.
Go SDK: client: remove `ImageAPIClient.ImageInspectWithRaw` from the `ImageAPIClient` interface.
Go SDK: client: remove `APIClient.ImageInspectWithRaw` from the `APIClient` interface.
Go SDK: client: remove `ImageAPIClientDeprecated.ImageInspectWithRaw` from the `ImageAPIClientDeprecated`.
Go SDK: client: remove the `ImageAPIClientDeprecated` interface.
Go SDK: client: remove the `CommonAPIClient` interface. ([#50485](#50485))
* Go-SDK: deprecate `pkg/stdcopy`, which was moved to `api/stdcopy`. ([#50462](#50462))
* Go-SDK: Remove `buildkit.ClientOpts` ([#50318](#50318))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Austin Vazquez
* Paweł Gronowski
* Derek McGowan
* Matthieu MOREL
* Cory Snider
* Akihiro Suda
* Alessio Perugini
* Brian Goff
* Medhy DOHOU

### Changes
<details><summary>204 commits</summary>
<p>

* Prepare release notes for client/v0.1.0-beta.0 ([#50913](#50913))
  * [`b5035def03`](b5035de) Prepare release notes for client/v0.1.0-beta.0
  * [`76964752d3`](7696475) Update client api version to v1.52.0-beta
* api/types/build: move build options to client and backend ([#50907](#50907))
  * [`2d1af4e4e4`](2d1af4e) api/types/build: move build options to client and backend
* api/types/image: move LoadResponse to client ([#50909](#50909))
  * [`8b8a3cb14c`](8b8a3cb) api/types/image: move LoadResponse to client
* api/types/checkpoint: move checkpoint options to client ([#50905](#50905))
  * [`a8afc2c6fb`](a8afc2c) api/types/checkpoint: move checkpoint options to client
* api/types/build: move build cache prune options from api to client ([#50772](#50772))
  * [`26e335b647`](26e335b) api/types/build: move `CachePruneOptions` to client mod
* api/types/container: move container options to client ([#50897](#50897))
  * [`57ce548341`](57ce548) client: move container options together with their users
  * [`4d20b6fe56`](4d20b6f) api/types/container: move container options to client
* api/types/network: separate Summary from Inspect ([#50878](#50878))
  * [`1a86389419`](1a86389) api/types/network: separate Summary from Inspect
* api: remove unused DefaultVersion, MinSupportedAPIVersion consts ([#50587](#50587))
  * [`e46a991dc5`](e46a991) api: remove unused DefaultVersion, MinSupportedAPIVersion consts
* api/types/system: move `SecurityOpt` and `DecodeSecurityOptions` to client mod ([#50825](#50825))
  * [`e2e9f36c5f`](e2e9f36) api/types/system: move `SecurityOpt` type and `DecodeSecurityOptions` to client
* fix: client vendor with config struct changes ([#50886](#50886))
  * [`ca97d071b7`](ca97d07) fix: client vendor with config struct changes
* client: Migrate tests to use functional opts and extract `clientConfig` ([#50847](#50847))
  * [`20b679b4a6`](20b679b) client: Extract clientConfig for opt applying
  * [`9ddf9d87e7`](9ddf9d8) client: Remove newMockClient
  * [`7cd089edd9`](7cd089e) client/volume_test: Use functional option to create mock client
  * [`72e11d78d7`](72e11d7) client/task_test: Use functional option to create mock client
  * [`a1e304f76c`](a1e304f) client/system_test: Use functional option to create mock client
  * [`407af72993`](407af72) client/swarm_test: Use functional option to create mock client
  * [`124bba478a`](124bba4) client/service_test: Use functional option to create mock client
  * [`98434a5ea4`](98434a5) client/secret_test: Use functional option to create mock client
  * [`c99f2eaf34`](c99f2ea) client/request_test: Use functional option to create mock client
  * [`8581a15c25`](8581a15) client/plugin_test: Use functional option to create mock client
  * [`0b577c703a`](0b577c7) client/ping_test: Use functional option to create mock client
  * [`d401228b43`](d401228) client/options_test: Use functional option to create mock client
  * [`643e94ebf5`](643e94e) client/node_test: Use functional option to create mock client
  * [`5a82c3397e`](5a82c33) client/network_test: Use functional option to create mock client
  * [`be76beee8f`](be76bee) client/image_test: Use functional option to create mock client
  * [`005a289703`](005a289) client/distribution_test: Use functional option to create mock client
  * [`bc1d436aa9`](bc1d436) client/container_test: Use functional option to create mock client
  * [`c70aac772e`](c70aac7) client/config_test: Use functional option to create mock client
  * [`6452807fb4`](6452807) client/client_test: Use functional option to create mock client
  * [`a3d073e160`](a3d073e) client/checkpoint_test: Use functional option to create mock client
  * [`17396e5d94`](17396e5) client: Add WithMockClient opt
* api/types/network: move network create/connect/disconnect options from api to client ([#50817](#50817))
  * [`1b4fcb8da7`](1b4fcb8) api/types/network: move `CreateOptions` type to client module
  * [`1e249cc309`](1e249cc) api/types/network: move connect/disconnect options types to client module
* api/types/container: merge InspectResponse and ContainerJSONBase ([#50809](#50809))
  * [`fae54e03af`](fae54e0) api/types/container: merge InspectResponse and ContainerJSONBase
* api/types/image: move image options from api to client ([#50776](#50776))
  * [`853aed171b`](853aed1) api/types/image: move image option types to client
* api/types/swarm: move `SecretListOptions` type to client ([#50816](#50816))
  * [`33066cddb1`](33066cd) api/types/swarm: move `SecretListOptions` type to client
* api/types/swarm: move swarm option types to client ([#50794](#50794))
  * [`94d0b10503`](94d0b10) api/types/swarm: move `ServiceInspectOptions` type to client
  * [`a2291e5eac`](a2291e5) api/types/swarm: move `ServiceListOptions` type to client
  * [`3b1e16594b`](3b1e165) api/types/swarm: move `ServiceUpdateOptions` type to client
  * [`bb4125e89f`](bb4125e) api/types/swarm: move `ServiceCreateOptions` type to client
  * [`4dcc7af116`](4dcc7af) api/types/swarm: move `UpdateFlags` type to client
  * [`ad0fa5a872`](ad0fa5a) api/types/swarm: move `TaskListOptions` type to client
  * [`2718f953f0`](2718f95) api/types/swarm: move `NodeRemoveOptions` to client
  * [`7d2b87e95f`](7d2b87e) api/types/swarm: move `NodeListOptions` to client mod
  * [`b1260cd493`](b1260cd) api/types/swarm: move `ConfigListOptions` to client
* client: check for Digested reference instead of Canonical ([#50798](#50798))
  * [`7f8ce05f6e`](7f8ce05) client: check for Digested reference instead of Canonical
* api/types/network: move network options from api to client ([#50786](#50786))
  * [`fe8516cf4b`](fe8516c) client: refactor `InspectOptions` to `NetworkInspectOptions`
  * [`5eaed0366c`](5eaed03) api/types/network: move `InspectOptions` to client mod
  * [`6084c6ae78`](6084c6a) client: refactor `ListOptions` to `NetworkListOptions`
  * [`d6aa6ae9bd`](d6aa6ae) api/types/network: move `ListOptions` to client
* api/types/registry: move registry search options to client ([#50787](#50787))
  * [`4665aa11ce`](4665aa1) client: refactor `SearchOptions` to `ImageSearchOptions`
  * [`40025bdf43`](40025bd) api/types/registry: move `SearchOptions` to client
* api/types/volume: move volume list options from api to client ([#50789](#50789))
  * [`ee22a62dd5`](ee22a62) client: refactor `ListOptions` to `VolumeListOptions`
  * [`c48585f104`](c48585f) api/types/volume: move `ListOptions` to client mod
* api/types/system: move `DiskUsageOptions` to client mod ([#50788](#50788))
  * [`56626a1222`](56626a1) api/types/system: move `DiskUsageOptions` to client mod
* api/types/events: move events list options from api to client ([#50774](#50774))
  * [`eb9774cbf9`](eb9774c) client: rename `ListOptions` type to `EventsListOptions`
  * [`d73dd4990c`](d73dd49) api/types/events: move `ListOptions` type to client
* api/types/container: move container resize options from api to client ([#50773](#50773))
  * [`f07d359043`](f07d359) client: rename `ResizeOptions` type to `ContainerResizeOptions`
  * [`882fd68b1b`](882fd68) api/types/container: move `ResizeOptions` type to client
* client/pkg/jsonmessage: remove unused fields ([#50759](#50759))
  * [`47bdbf5a4b`](47bdbf5) client/pkg/jsonmessage: remove unused fields
* Copy the api/types/time package to internal client/daemon packages ([#50722](#50722))
  * [`aa80ad2572`](aa80ad2) Copy the daemon/internal/timestamp package to internal client package
* client: Client.Ping: improve error handling and fallback, and assorted fixes/cleanups ([#50709](#50709))
  * [`1c34ff94bc`](1c34ff9) client: consistently use defer for ensureReaderClosed
  * [`f6b63e6013`](f6b63e6) client.sendRequest: clean-up logic for error-handling
  * [`2a4f70309d`](2a4f703) client.doRequest: improve GoDoc to clarify behavior
  * [`d69fde4c60`](d69fde4) client: Client.Ping: improve error handling and fallback
  * [`80294ddb60`](80294dd) client: make checkResponseErr a regular function
* chore: enable use-any rule from revive ([#50672](#50672))
  * [`96f8c6395e`](96f8c63) chore: enable use-any rule from revive
* Deprecate api/types/strslice.StrSlice and remove its use ([#50292](#50292))
  * [`98790830eb`](9879083) Deprecate api/types/strslice.StrSlice and remove its use
* README: update, add badges ([#50665](#50665))
  * [`1f323d5035`](1f323d5) client: README: add badges
* vendor: github.com/docker/go-connections v0.6.0 ([#50126](#50126))
  * [`677c2a19d9`](677c2a1) vendor: github.com/docker/go-connections v0.6.0
* add back replace and vendor, tidy ([#50648](#50648))
  * [`0ad765c67d`](0ad765c) add back replace and vendor, tidy
* Bump api version in client and main module to v1.52.0-alpha.1 ([#50641](#50641))
  * [`d82f50557e`](d82f505) Bump api version in client and main module to v1.52.0-alpha.1
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
  * [`c13266d2c0`](c13266d) api/types: move plugin types to api/types/plugin
* Prepare release notes for `client/v0.1.0-alpha.0` ([#50637](#50637))
  * [`a0a7d9a3d7`](a0a7d9a) Add release notes for client/v0.1.0-alpha.0
  * [`32ec26be6c`](32ec26b) Update client and main module api version to latest alpha tag
* api/types: move ErrorResponse to common/ErrorResponse ([#50632](#50632))
  * [`c17d43ae67`](c17d43a) api/types: move ErrorResponse to common/ErrorResponse
* client: use stdlib errors ([#50630](#50630))
  * [`bfce6556c4`](bfce655) client: use stdlib errors
* client: tidy go.mod ([#50629](#50629))
  * [`3fe93532e4`](3fe9353) client: tidy go.mod
* client: touch-up godoc ([#50611](#50611))
  * [`195a6bbb1e`](195a6bb) client: touch-up godoc
* pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail, remove DisplayJSONMessagesToStream and Stream interface ([#49264](#49264))
  * [`f3ba0b2dc2`](f3ba0b2) client/pkg/jsonmessage: remove Stream interface
  * [`19edf5c53c`](19edf5c) client/pkg/jsonmessage: remove DisplayJSONMessagesToStream
  * [`fdaccdb233`](fdaccdb) pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail
* Move jsonmessage, streamformatter, and progress ([#50565](#50565))
  * [`0d8ca8eefe`](0d8ca8e) Move pkg/jsonmessage to client/pkg/jsonmessage
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
  * [`6c7e2909c2`](6c7e290) api/types/filters: remove deprecated ToParamWithVersion
* Move logdriver interface ([#50554](#50554))
  * [`1dc53e8ec7`](1dc53e8) Update client go.mod
* api/types/container.StatsResponseReader: move to client ([#50521](#50521))
  * [`f73aba83dc`](f73aba8) client: TestContainerStats: fix minor linting issues
  * [`f67e6555bf`](f67e655) api/types/container.StatsResponseReader: move to client
* api: move "DiskUsage" related types to the right location ([#50518](#50518))
  * [`4dda328af8`](4dda328) client: rename files for system-commands to their canonical name
  * [`96a6884cb3`](96a6884) api/types: move DiskUsage types to api/types/system
* api/types: move client.go contents into moby/moby/client ([#50510](#50510))
  * [`24aa86991c`](24aa869) api/types: move PluginCreateOptions to client
  * [`b93ad81898`](b93ad81) api/types: move plugin client options into client
  * [`44ae4cd2b7`](44ae4cd) api/types: move HijackedResponse into client
* pkg/stringid: deprecate, move to daemon, and provide copy in client ([#50504](#50504))
  * [`ca1c5ee08f`](ca1c5ee) pkg/stringid: move to daemon, and provide copy in client
* client: remove deprecated types and functions ([#50485](#50485))
  * [`8d8bbefb90`](8d8bbef) client: remove deprecated CommonAPIClient interface
  * [`728f0769e1`](728f076) client: remove deprecated ImageInspectWithRaw
  * [`2f200f9e05`](2f200f9) client: remove deprecated IsErrNotFound helper
  * [`5ed9891eed`](5ed9891) client: remove deprecated ErrorConnectionFailed helper
  * [`a0fa5da2ab`](a0fa5da) client: remove deprecated NewClient and NewEnvClient functions
* client: fix example, and update refs to old modules ([#50484](#50484))
  * [`30322dd649`](30322dd) client: fix example, and update refs to old modules
* client: Client.doRequest: improve some connection errors ([#50285](#50285))
  * [`2303e6bff6`](2303e6b) client: Client.doRequest: add special handling for DNS resolution errors
  * [`67596f01e2`](67596f0) client: Client.doRequest: add special handling for "not found" errors
  * [`462d0ff5aa`](462d0ff) client: Client.doRequest: simplify permission check and unwrap error
  * [`7072acac79`](7072aca) client: Client.doRequest: preserve wrapped error
  * [`3b4fbaacd7`](3b4fbaa) client: Client.doRequest: use early return
* client: fix datarace when accessing cli.Version field ([#50448](#50448))
  * [`a88e13f4f9`](a88e13f) client: fix datarace when accessing cli.Version field
* client: cleanup encoding body and add test-coverage ([#50432](#50432))
  * [`c4f9616c4a`](c4f9616) client: cleanup encoding body and add test-coverage
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
  * [`20d594fb79`](20d594f) deprecate pkg/stdcopy, move to api/stdcopy
* Create github.com/moby/moby/api and github.com/moby/moby/client module ([#50280](#50280))
  * [`c47afd41c8`](c47afd4) Create github.com/moby/moby/client module
  * [`afd6487b2e`](afd6487) Create github.com/moby/moby/api module
* client: define default (and maximum) API version ([#50433](#50433))
  * [`41da5700a4`](41da570) client: define default (and maximum) API version
* client: always send (empty) body on push ([#50415](#50415))
  * [`b1ce0c89f0`](b1ce0c8) client: always send (empty) body on push
* client: ContainerExecAttach: update GoDoc links ([#50411](#50411))
  * [`14bd3451d8`](14bd345) client: ContainerExecAttach: update GoDoc links
* client: TestContainerInspectWithEmptyID test both inspect variants ([#50385](#50385))
  * [`16ed75572f`](16ed755) client: TestContainerInspectWithEmptyID test both inspect variants
* Remove client buildkit dep ([#50318](#50318))
  * [`aae26b80fe`](aae26b8) Remove client buildkit dep
* Replace use of env test util with standard library call ([#50317](#50317))
  * [`e93e15afb0`](e93e15a) Replace use of env test util with standard library call
* client: use go-winio.DialPipe directly ([#50125](#50125))
  * [`accbfde61e`](accbfde) client: use go-winio.DialPipe directly
* client: remove getDockerOS utility in favor of "Ostype" header ([#50276](#50276))
  * [`fcf3ff1b2f`](fcf3ff1) client: remove getDockerOS utility in favor of "Ostype" header
* client: omit empty auth headers and use registry.RequestAuthConfig ([#50256](#50256))
  * [`1c0d381f4e`](1c0d381) client: client.tryImagePush: accept registry.RequestAuthConfig
  * [`ca0afe91b9`](ca0afe9) client: client.tryImageCreate: accept registry.RequestAuthConfig
  * [`79b4e18883`](79b4e18) client: add staticAuth utility
  * [`871543a8c5`](871543a) client: Client.ServiceUpdate: don't manually construct header value
* Remove dependency on testutil from client ([#50271](#50271))
  * [`0964fa01ba`](0964fa0) Remove dependency on testutil from client
* Remove dependency on httputil for client hijack test ([#50270](#50270))
  * [`58404b0c28`](58404b0) Remove dependency on httputil for client hijack test
* fix: easiest revive rules ([#50262](#50262))
  * [`6b8afec95b`](6b8afec) fix redefines-builtin-id from revive
  * [`381d9d0723`](381d9d0) fix use-errors-new from revive
* client: Client.addHeaders: remove special handling for api < 1.25 ([#50246](#50246))
  * [`8c067c5223`](8c067c5) client: Client.addHeaders: remove special handling for api < 1.25
* docs(client/ContainerExecAttach): add a mention to stdcopy.StdCopy ([#50119](#50119))
  * [`4891396da6`](4891396) docs(client/ContainerExecAttach): add a mention to stdcopy.StdCopy
* fix errorlint linter ([#50158](#50158))
  * [`6d737371b8`](6d73737) fix comparison rule from errorlint
* fix go-critic linter ([#50082](#50082))
  * [`a62de57aa1`](a62de57) fix sprintfQuotedString from go-critic
  * [`bc9ec5fc02`](bc9ec5f) fix emptyStringTest from go-critic
  * [`469afa5f8f`](469afa5) fix httpNoBody from go-critic
* all: remove // import comments ([#50110](#50110))
  * [`4856e8ffad`](4856e8f) client: remove // import comments
</p>
</details>

### Dependency Changes

* **github.com/docker/go-connections**                               v0.5.0 -> v0.6.0
* **github.com/moby/moby/api**                                       v1.52.0-beta.1 **_new_**
* **go.opentelemetry.io/auto/sdk**                                   v1.1.0 **_new_**
* **go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp**  v0.56.0 -> v0.60.0
* **go.opentelemetry.io/otel**                                       v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/metric**                                v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/trace**                                 v1.31.0 -> v1.35.0
* **golang.org/x/sys**                                               v0.32.0 -> v0.33.0

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)

api/v1.52.0-beta.1

Toggle api/v1.52.0-beta.1's commit message

Verified

This tag was signed with the committer’s verified signature.
dmcgowan Derek McGowan
moby api/v1.52.0-beta.1

Welcome to the api/v1.52.0-beta.1 release of moby!
*This is a pre-release of moby*

The first dedicated release for the Moby API. This release continues the 1.x
line of API compatibility with the 52nd minor release of the 1.x API.

### Highlights

#### API

* Swagger definitions for `NetworkSummary` and `NetworkInspect` have been added to the Swagger spec describing the Engine API. ([#50855](#50855))
* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* api/types/build: move `CachePruneOptions` type to `client.BuildCachePruneOptions` ([#50772](#50772))
* Go SDK: api/types/container: move container options to client ([#50897](#50897))
* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* api: remove unused `DefaultVersion`, `MinSupportedAPIVersion` consts ([#50587](#50587))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Update deprecation message for `AuthConfig.Email` field ([#50792](#50792))
* Prefer explicit device driver name over GPU capabilities when selecting the device driver with `docker run --gpus` ([#50717](#50717))
* Go SDK: api/types/container: rename `Port` to `PortSummary`. ([#50711](#50711))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))
* `GET /containers/json` now includes a `Health` field describing container healthcheck status. ([#50281](#50281))
* Go SDK: api/types: remove deprecated aliases. ([#50452](#50452))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* Go SDK: `api/types/registry`: `EncodeAuthConfig`: use empty string for zero value ([#50426](#50426))
* Go SDK: api/types/container: remove deprecated `ContainerUpdateOKBody` alias.
- Go SDK: api/types/container: remove deprecated `ContainerTopOKBody` alias. ([#50400](#50400))
* Go SDK: api/types/registry: remove deprecated `ServiceConfig.AllowNondistributableArtifactsCIDRs` and `ServiceConfig.AllowNondistributableArtifactsHostnames` fields. ([#50375](#50375))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))
* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))
* Update API version to 1.51 ([#50145](#50145))
* Fix `docker image inspect inspect` omitting empty fields. ([#50135](#50135))

#### Client

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))

#### Core Engine

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))

#### Image Distribution

* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))

#### Networking

* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))

#### Deprecations

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Go-SDK: Deprecate field `NetworkSettingsBase.Bridge`, struct `NetworkSettingsBase`, all the fields of `DefaultNetworkSettings`, and struct `DefaultNetworkSettings`. ([#50848](#50848))
* api/types/strslice: deprecate StrSlice in favor of using a regular `[]string`. ([#50292](#50292))
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* Go SDK: api: remove `NoBaseImageSpecifier` ([#50574](#50574))
* GO SDK: api/types/filters: remove deprecated `ToParamWithVersion` ([#50561](#50561))
* Go-SDK: remove deprecated `types/plugins/logdriver` and `types/swarm/runtime` packages; plugin-runtime spec is now exposed as `types/swarm.RuntimeSpec` and `types/swarm.RuntimePrivilege` ([#50554](#50554))
* Go SDK: api/types/container: remove deprecated `Stats` type. ([#50492](#50492))
* Go-SDK: deprecate `pkg/stdcopy`, which was moved to `api/stdcopy`. ([#50462](#50462))
* Go SDK: api/types: remove deprecated aliases. ([#50452](#50452))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* Go SDK: api/types/container: remove deprecated `ContainerUpdateOKBody` alias.
- Go SDK: api/types/container: remove deprecated `ContainerTopOKBody` alias. ([#50400](#50400))
* Go SDK: api/types/registry: remove deprecated `ServiceConfig.AllowNondistributableArtifactsCIDRs` and `ServiceConfig.AllowNondistributableArtifactsHostnames` fields. ([#50375](#50375))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Austin Vazquez
* Derek McGowan
* Paweł Gronowski
* Cory Snider
* Akihiro Suda
* Matthieu MOREL
* Albin Kerouanton
* Hannes Ortmeier
* Rob Murray
* Cesar Talledo
* Evan Lezar
* Jiří Moravčík
* Muhammad Daffa Dinaya
* Nicolas De Loof
* Niel Drummond

### Changes
<details><summary>275 commits</summary>
<p>

* api/docs: remove temporary "full" example for image config ([#50910](#50910))
  * [`0fe1af95f3`](0fe1af9) api/docs: remove temporary "full" example for image config (v1.50, v1.51)
  * [`7bfbb6e8ca`](7bfbb6e) api/swagger: remove temporary "full" example for image config
* api/docs: sync v1.52 docs with latest ([#50911](#50911))
  * [`a1e3a109ee`](a1e3a10) api/docs: sync v1.52 docs with latest
* api/types/build: move build options to client and backend ([#50907](#50907))
  * [`2d1af4e4e4`](2d1af4e) api/types/build: move build options to client and backend
* api/types/network: generate network-inspect struct definitions from Swagger spec ([#50855](#50855))
  * [`e656f39952`](e656f39) api/t/network: generate more structs from Swagger
  * [`ea1c2530da`](ea1c253) api/t/network: generate Inspect, Summary structs
  * [`c208f90796`](c208f90) api/templates: vendor structfield template
* Prepare release notes for api/v1.52.0-beta.0 ([#50904](#50904))
  * [`d904f3b625`](d904f3b) Prepare api/1.52.0-beta releases
* api/types/image: move LoadResponse to client ([#50909](#50909))
  * [`8b8a3cb14c`](8b8a3cb) api/types/image: move LoadResponse to client
* api/types/checkpoint: move checkpoint options to client ([#50905](#50905))
  * [`a8afc2c6fb`](a8afc2c) api/types/checkpoint: move checkpoint options to client
* api/types/build: move build cache prune options from api to client ([#50772](#50772))
  * [`26e335b647`](26e335b) api/types/build: move `CachePruneOptions` to client mod
  * [`a4a90c2248`](a4a90c2) api: fix deprecation of "keep-storage" /build/prune query parameter
* api/types/container: move container options to client ([#50897](#50897))
  * [`4d20b6fe56`](4d20b6f) api/types/container: move container options to client
* api/docs: update v1.52 docs with current swagger ([#50899](#50899))
  * [`ccf1363680`](ccf1363) api/docs: update v1.52 docs with current swagger
* api/types/network: separate Summary from Inspect ([#50878](#50878))
  * [`1a86389419`](1a86389) api/types/network: separate Summary from Inspect
* api/types/image: make `InspectResponse.GraphDriver` optional ([#50893](#50893))
  * [`c441b2ef19`](c441b2e) api/types/image: make `InspectResponse.GraphDriver` optional
* daemon: filter networks before converting to API types ([#50860](#50860))
  * [`f8bd170b2a`](f8bd170) daemon: validate args in network.New*Filter
* api: remove unused DefaultVersion, MinSupportedAPIVersion consts ([#50587](#50587))
  * [`e46a991dc5`](e46a991) api: remove unused DefaultVersion, MinSupportedAPIVersion consts
* api/types/system: move `SecurityOpt` and `DecodeSecurityOptions` to client mod ([#50825](#50825))
  * [`e2e9f36c5f`](e2e9f36) api/types/system: move `SecurityOpt` type and `DecodeSecurityOptions` to client
* daemon: backfill empty PBs slices for backward compat ([#50874](#50874))
  * [`0ca7ac3258`](0ca7ac3) daemon: backfill empty PBs slices for backward compat
* api/types/registry: move `ServiceConfig` legacy field marshaling support into daemon backend ([#50826](#50826))
  * [`c9fdad2552`](c9fdad2) daemon: marshal legacy `registry.ServiceConfig` extra fields for compatability
* api/t/ctr: deprecate NetworkSettingsBase, DefaultNetworkSettings ([#50848](#50848))
  * [`b7c597ec35`](b7c597e) api/t/ctr: deprecate DefaultNetworkSettings
  * [`80bb864fd6`](80bb864) api/t/ctr: deprecate NetworkSettingsBase
  * [`16dc39136c`](16dc391) api/t/ctr: deprecate NetworkSettingsBase.Bridge
* api/types/network: move network create/connect/disconnect options from api to client ([#50817](#50817))
  * [`1b4fcb8da7`](1b4fcb8) api/types/network: move `CreateOptions` type to client module
  * [`1e249cc309`](1e249cc) api/types/network: move connect/disconnect options types to client module
* api/types/container: merge InspectResponse and ContainerJSONBase ([#50809](#50809))
  * [`fae54e03af`](fae54e0) api/types/container: merge InspectResponse and ContainerJSONBase
* api/types/image: move image options from api to client ([#50776](#50776))
  * [`853aed171b`](853aed1) api/types/image: move image option types to client
* api/types/swarm: move `SecretListOptions` type to client ([#50816](#50816))
  * [`33066cddb1`](33066cd) api/types/swarm: move `SecretListOptions` type to client
* api/types/swarm: move swarm option types to client ([#50794](#50794))
  * [`94d0b10503`](94d0b10) api/types/swarm: move `ServiceInspectOptions` type to client
  * [`a2291e5eac`](a2291e5) api/types/swarm: move `ServiceListOptions` type to client
  * [`3b1e16594b`](3b1e165) api/types/swarm: move `ServiceUpdateOptions` type to client
  * [`bb4125e89f`](bb4125e) api/types/swarm: move `ServiceCreateOptions` type to client
  * [`4dcc7af116`](4dcc7af) api/types/swarm: move `UpdateFlags` type to client
  * [`ad0fa5a872`](ad0fa5a) api/types/swarm: move `TaskListOptions` type to client
  * [`2718f953f0`](2718f95) api/types/swarm: move `NodeRemoveOptions` to client
  * [`7d2b87e95f`](7d2b87e) api/types/swarm: move `NodeListOptions` to client mod
  * [`b1260cd493`](b1260cd) api/types/swarm: move `ConfigListOptions` to client
* api/types/registry: move auth config functions to pkg ([#50785](#50785))
  * [`bdce1608c8`](bdce160) api: move authconfig package from types/registry to pkg
* api: docs: update v1.52 swagger with latest changes ([#50796](#50796))
  * [`eed354379c`](eed3543) api: docs: update v1.52 swagger with latest changes
* api/types/registry: update deprecation comment for AuthConfig.Email ([#50792](#50792))
  * [`d867f9f0f1`](d867f9f) api/docs: update description for AuthConfig.Email field
  * [`6cfff7e880`](6cfff7e) api/types/registry: update deprecation comment for AuthConfig.Email
* api/types/network: move network options from api to client ([#50786](#50786))
  * [`5eaed0366c`](5eaed03) api/types/network: move `InspectOptions` to client mod
  * [`d6aa6ae9bd`](d6aa6ae) api/types/network: move `ListOptions` to client
* api/types/registry: move registry search options to client ([#50787](#50787))
  * [`40025bdf43`](40025bd) api/types/registry: move `SearchOptions` to client
* api/types/volume: move volume list options from api to client ([#50789](#50789))
  * [`9fc6a1e437`](9fc6a1e) api/types/volume: refactor volume options to prune report
  * [`c48585f104`](c48585f) api/types/volume: move `ListOptions` to client mod
* api/types/system: move `DiskUsageOptions` to client mod ([#50788](#50788))
  * [`56626a1222`](56626a1) api/types/system: move `DiskUsageOptions` to client mod
* api/types/events: move events list options from api to client ([#50774](#50774))
  * [`d73dd4990c`](d73dd49) api/types/events: move `ListOptions` type to client
* api/types/container: move container resize options from api to client ([#50773](#50773))
  * [`882fd68b1b`](882fd68) api/types/container: move `ResizeOptions` type to client
* api/types: move disk usage structs to daemon backend ([#50764](#50764))
  * [`c4e82bab70`](c4e82ba) api/types/volume: move `DiskUsage` type internal to daemon backend
  * [`0d61b55add`](0d61b55) api/types/image: move `DiskUsage` type internal to daemon backend
  * [`566c44edfe`](566c44e) api/types/container: move `DiskUsage` type internal to daemon backend
  * [`d588092be2`](d588092) api/types/build: move internal to daemon backend
* api: bump github.com/google/go-cmp v0.7.0 ([#50723](#50723))
  * [`b13ea83488`](b13ea83) api: bump github.com/google/go-cmp v0.7.0
* Match device driver on name and ignore capabilities ([#50717](#50717))
  * [`48038347d7`](4803834) Match device driver on name and ignore capabilities
* Copy the api/types/time package to internal client/daemon packages ([#50722](#50722))
  * [`812aa46d81`](812aa46) Move the api/types/time package to internal daemon package
* api/types/container: rename Port to PortSummary ([#50711](#50711))
  * [`82ba7fef17`](82ba7fe) api/types/container: rename Port to PortMapping
* api: swagger: Tweak type of ForceUpdate to uint64 ([#50679](#50679))
  * [`185ae7ec2c`](185ae7e) docs: api: Tweak type of ForceUpdate to uin64
  * [`c8173c5c1f`](c8173c5) api: swagger: Tweak type of ForceUpdate to uint64
* api/types/network: modernize EndpointIPAMConfig.Copy, EndpointSettings.Copy ([#50690](#50690))
  * [`11094e27b0`](11094e2) api/types/network: modernize EndpointIPAMConfig.Copy, EndpointSettings.Copy
* Deprecate api/types/strslice.StrSlice and remove its use ([#50292](#50292))
  * [`98790830eb`](9879083) Deprecate api/types/strslice.StrSlice and remove its use
* README: update, add badges ([#50665](#50665))
  * [`662154a940`](662154a) api: README: add badges
* vendor: github.com/docker/go-connections v0.6.0 ([#50126](#50126))
  * [`677c2a19d9`](677c2a1) vendor: github.com/docker/go-connections v0.6.0
* api/docs: sync v1.52 swagger with current version ([#50643](#50643))
  * [`234349d173`](234349d) api/docs: sync v1.52 swagger with current version
* docs: api: improve the docs of the `outputs` parameter ([#50338](#50338))
  * [`833dc69ad9`](833dc69) docs: improve the description of the `outputs` parameter for `/build` endpoint
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
  * [`c13266d2c0`](c13266d) api/types: move plugin types to api/types/plugin
* Prepare release notes for v1.52.0-alpha.0 ([#50625](#50625))
  * [`59e8fe8479`](59e8fe8) Prepare release notes for v1.52.0
* api/types: move ErrorResponse to common/ErrorResponse ([#50632](#50632))
  * [`c17d43ae67`](c17d43a) api/types: move ErrorResponse to common/ErrorResponse
* api/docs: add v1.52 swagger ([#50626](#50626))
  * [`044234f847`](044234f) api/docs: add v1.52 swagger
* apk/pkg/stdcopy: remove use of `iota`, improve docs, and add example  ([#50612](#50612))
  * [`752a3b302c`](752a3b3) api/pkg/stdcopy: add example
  * [`26cf610e6e`](26cf610) api/pkg/stdcopy: improve docs
  * [`c010c84ade`](c010c84) api/pkg/stdcopy: don't use iota for consts
* api/types/strslice: use slices.Equal ([#50608](#50608))
  * [`51bbc37f64`](51bbc37) api/types/strslice: use slices.Equal
* api: update "interface{}" to "any" ([#50609](#50609))
  * [`908895b9c3`](908895b) api: update "interface{}" to "any"
* api/types: fix Plugin.Config.Interface.Types Swagger definition ([#50519](#50519))
  * [`ee560a3b23`](ee560a3) api/types: fix Plugin.Config.Interface.Types def'n
  * [`2783f80ecf`](2783f80) api/types: generate with latest go-swagger
* update github and pkg.go.dev links ([#50590](#50590))
  * [`49aa38e9e7`](49aa38e) update links to swarmkit v2 docs
  * [`c98e5cb60b`](c98e5cb) update github links to moby/moby
* Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value" ([#50583](#50583))
  * [`e55d294ea7`](e55d294) api/types/registry: add TODO/note about empty authConfigs
  * [`8b68b977b1`](8b68b97) Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value"
* pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail, remove DisplayJSONMessagesToStream and Stream interface ([#49264](#49264))
  * [`fdaccdb233`](fdaccdb) pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail
* api/types/container: add aliases for go-connections/nat types ([#50573](#50573))
  * [`494677f93f`](494677f) api/types/container: add aliases for go-connections/nat types
* Move jsonmessage, streamformatter, and progress ([#50565](#50565))
  * [`d00ecdc479`](d00ecdc) Move pkg/streamformatter to api/pkg/streamformatter
  * [`66862e14d1`](66862e1) Move pkg/progress to api/pkg/progress
  * [`1da417980c`](1da4179) Move api/stdcopy to api/pkg/stdcopy
  * [`f4127d76c5`](f4127d7) pkg/jsonmessage: move JSONProgress to api/types/jsonstream
  * [`0515e1c991`](0515e1c) pkg/jsonmessage: move JSONError to api/types/jsonstream
* api: remove deprecated NoBaseImageSpecifier ([#50574](#50574))
  * [`94ac102e4b`](94ac102) api: remove deprecated NoBaseImageSpecifier
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
  * [`6c7e2909c2`](6c7e290) api/types/filters: remove deprecated ToParamWithVersion
* Move logdriver interface ([#50554](#50554))
  * [`03d7f47f31`](03d7f47) Update api go.mod
  * [`d7cfe97984`](d7cfe97) Update logdriver to remove proto definitions
  * [`86190e7366`](86190e7) Move swarm runtime plugin spec to swarm types
* api/types/container: move StateStatus, NewStateStatus internal again ([#50495](#50495))
  * [`ec3e83a7b5`](ec3e83a) api/types/container: move StateStatus, NewStateStatus internal again
* api/types/container.StatsResponseReader: move to client ([#50521](#50521))
  * [`f67e6555bf`](f67e655) api/types/container.StatsResponseReader: move to client
* cli/ is not in moby repo (anymore) ([#50537](#50537))
  * [`e6298db297`](e6298db) cli/ is not in moby repo (anymore)
* api/types: move backend types to daemon/server ([#50534](#50534))
  * [`83510a26b3`](83510a2) api/types: move backend types to daemon/server
* api: move "DiskUsage" related types to the right location ([#50518](#50518))
  * [`96a6884cb3`](96a6884) api/types: move DiskUsage types to api/types/system
  * [`82c069c857`](82c069c) api/types/system: move DiskUsage, DiskUsageOptions to api/types/backend
* api/types: move client.go contents into moby/moby/client ([#50510](#50510))
  * [`24aa86991c`](24aa869) api/types: move PluginCreateOptions to client
  * [`b93ad81898`](b93ad81) api/types: move plugin client options into client
  * [`44ae4cd2b7`](44ae4cd) api/types: move HijackedResponse into client
* api: move docs to api module ([#50491](#50491))
  * [`4d5a7289a0`](4d5a728) api: move docs to api module
* api/types/container: remove deprecated Stats type ([#50492](#50492))
  * [`f1a97bda3d`](f1a97bd) api/types/container: remove deprecated Stats type
* api/types/container: add missing type for exec-inspect response. ([#50482](#50482))
  * [`2a342079c6`](2a34207) api/types/container: add missing type for exec-inspect response.
* Add support for multiple platforms in image export and load ([#50166](#50166))
  * [`fcc8209e12`](fcc8209) Add support for multiple platforms in image export and loading.
* api: remove references to old module name ([#50474](#50474))
  * [`cc9e6a13a2`](cc9e6a1) api/types/swarm/runtime: remove module path for generating proto
  * [`76c1afeb97`](76c1afe) api/types/plugins/logdriver: remove module path for generating proto
  * [`85ecf8c0f4`](85ecf8c) api: update references to old module name
  * [`a17a2e8f3d`](a17a2e8) api/stdcopy: touch-up godoc
  * [`5b8ef1aff2`](5b8ef1a) api: remove redundant //go:build lines
* Add HealthStatus attribute on the docker ps command ([#50281](#50281))
  * [`6e7a2c830d`](6e7a2c8) Add Health attribute on the docker ps command
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
  * [`20d594fb79`](20d594f) deprecate pkg/stdcopy, move to api/stdcopy
* Create github.com/moby/moby/api and github.com/moby/moby/client module ([#50280](#50280))
  * [`afd6487b2e`](afd6487) Create github.com/moby/moby/api module
* api/types: remove deprecated aliases ([#50452](#50452))
  * [`18e463a082`](18e463a) api/types: remove deprecated RequestPrivilegeFunc type
  * [`a3920ae6a0`](a3920ae) api/types: remove deprecated IDResponse type
  * [`3e5a06179e`](3e5a061) api/types: remove deprecated container-inspect types
  * [`8347b05435`](8347b05) api/types: remove deprecated Container type
  * [`f050df0329`](f050df0) api/types: remove deprecated ContainerState type
  * [`7abeb4d5a4`](7abeb4d) api/types: remove deprecated container-networksettings types
  * [`c5a2194b5d`](c5a2194) api/types: remove deprecated container Health types
  * [`76bf0e2929`](76bf0e2) api/types: remove deprecated MountPoint
  * [`207db8792e`](207db87) api/types: remove deprecated Port
  * [`fa8177ba7a`](fa8177b) api/types: remove deprecated GraphDriverData
  * [`836ec65d5f`](836ec65) api/types: remove deprecated ImageInspect, RootFS
  * [`7d3459e7fb`](7d3459e) api/types: remove deprecated SecretCreateResponse, SecretListOptions
  * [`68744c8b05`](68744c8) api/types: remove deprecated ConfigCreateResponse, ConfigListOptions
  * [`33f07ff3f4`](33f07ff) api/types: remove deprecated NodeListOptions, NodeRemoveOptions
  * [`f13796d2af`](f13796d) api/types: remove deprecated TaskListOptions
  * [`72b1e11264`](72b1e11) api/types: remove deprecated ServiceCreateOptions
  * [`3faead6fc1`](3faead6) api/types: remove deprecated ServiceUpdateOptions
  * [`55ad118eaf`](55ad118) api/types: remove deprecated ServiceListOptions, ServiceInspectOptions
  * [`91558ae3f3`](91558ae) api/types: remove deprecated SwarmUnlockKeyResponse
  * [`74fe646ac2`](74fe646) api/types: remove deprecated build-cache types
  * [`3eac6e7888`](3eac6e7) api/types: remove deprecated BuildResult
  * [`088cb2ffa6`](088cb2f) api/types: remove deprecated build-related types
* api: deprecate NoBaseImageSpecifier ([#50437](#50437))
  * [`7b9bd987bf`](7b9bd98) api: deprecate NoBaseImageSpecifier
* api/types/registry: EncodeAuthConfig: use empty string for zero value ([#50426](#50426))
  * [`3a447bc079`](3a447bc) api/types/registry: EncodeAuthConfig: use empty string for zero value
* api/types/registry: DecodeAuthConfig: add early returns and improve errors ([#50425](#50425))
  * [`472e09ac47`](472e09a) api/types/registry: DecodeAuthConfig: add early returns and improve errors
  * [`6865032baa`](6865032) api/types/registry: add BenchmarkDecodeAuthConfig
* api: bump to 1.52 ([#50418](#50418))
  * [`6a8654a808`](6a8654a) api: bump to 1.52
* api/types/registry: add some tests for encoding/decoding authconfig ([#50392](#50392))
  * [`d30e61bff4`](d30e61b) api/types/registry: add some tests for encoding/decoding authconfig
* api/types/container: remove deprecated ContainerUpdateOKBody, ContainerTopOKBody ([#50400](#50400))
  * [`4a8d77c958`](4a8d77c) api/types/container: remove deprecated ContainerTopOKBody alias
  * [`3d8d9c2bb3`](3d8d9c2) api/types/container: remove deprecated ContainerUpdateOKBody alias
* api/types/registry: remove deprecated fields for non-distributable artifacts ([#50375](#50375))
  * [`11a18d3b00`](11a18d3) api/types/registry: remove deprecated fields for non-distributable artifacts
* daemon/server: remove compatibility with API v1.4 auth-config on push ([#50371](#50371))
  * [`ea29dffaa5`](ea29dff) daemon/server: remove compatibility with API v1.4 auth-config on push
* api: swagger: Tweak type of GwPriority to integer ([#50333](#50333))
  * [`51d6687754`](51d6687) api: swagger: Tweak type of GwPriority to integer
* Add progress aux emitter to build backend ([#50278](#50278))
  * [`a824db247f`](a824db2) Add progress aux emitter to build backend
* Move api server packages to daemon ([#50004](#50004))
  * [`87238882e0`](8723888) Move api/server to daemon/server
  * [`3a6e3f85c6`](3a6e3f8) Move api/server/backend/build to daemon/build
  * [`79f802d46a`](79f802d) Move api/server/httputils to daemon/server/httputils
  * [`c7a87f0dee`](c7a87f0) Move api/server/httpstatus to daemon/server/httpstatus
  * [`d64bd2cceb`](d64bd2c) Move api/server/middleware to daemon/server/middleware
  * [`72a020fcd8`](72a020f) Move api/server/router to daemon/server/router
  * [`f293628f55`](f293628) Move api/server/router/volume to daemon/server/router/volume
  * [`15c8007064`](15c8007) Move api/server/router/system to daemon/server/router/system
  * [`45172bbf23`](45172bb) Move api/server/router/swarm to daemon/server/router/swarm
  * [`f6ba5a5241`](f6ba5a5) Move api/server/router/session to daemon/server/router/session
  * [`3eb5fe0277`](3eb5fe0) Move api/server/router/plugin to daemon/server/router/plugin
  * [`baa58ddc6a`](baa58dd) Move api/server/router/network to daemon/server/router/network
  * [`0cbb4ac8e6`](0cbb4ac) Move api/server/router/image to daemon/server/router/image
  * [`a063389af7`](a063389) Move api/server/router/grpc to daemon/server/router/grpc
  * [`9ff489863c`](9ff4898) Move api/server/router/distribution to daemon/server/router/distribution
  * [`ced7798ed8`](ced7798) Move api/server/router/debug to daemon/server/router/debug
  * [`3a9db5fbd6`](3a9db5f) Move api/server/router/container to daemon/server/router/container
  * [`d6136b660f`](d6136b6) Move api/server/router/checkpoint to daemon/server/router/checkpoint
  * [`31b6886eb1`](31b6886) Move api/server/router/build to daemon/server/router/build
* Replace multierror function in network api types ([#50273](#50273))
  * [`374fa24a53`](374fa24) Add multierror function to api network
* fix: easiest revive rules ([#50262](#50262))
  * [`381d9d0723`](381d9d0) fix use-errors-new from revive
* api/types/container: deprecate ExecOptions.Detach ([#50218](#50218))
  * [`0c182d4d57`](0c182d4) api/types/container: deprecate ExecOptions.Detach
* api/image/list: Return `Containers` count ([#50146](#50146))
  * [`cfcbfabb0f`](cfcbfab) api/image/list: Return `Containers` count
* fix errorlint linter ([#50158](#50158))
  * [`6d737371b8`](6d73737) fix comparison rule from errorlint
* api: bump to 1.51 ([#50145](#50145))
  * [`27f2e0ecc5`](27f2e0e) api: bump to 1.51
* api: image inspect: add back fields that did not omitempty ([#50135](#50135))
  * [`f85394dd5d`](f85394d) api: image inspect: add back fields that did not omitempty
* fix go-critic linter ([#50082](#50082))
  * [`5ad4e4edf7`](5ad4e4e) fix deprecatedComment from go-critic
  * [`bc9ec5fc02`](bc9ec5f) fix emptyStringTest from go-critic
  * [`469afa5f8f`](469afa5) fix httpNoBody from go-critic
* api/swagger: quote maxUint64 example value ([#50127](#50127))
  * [`affe1d6335`](affe1d6) api/swagger: quote maxUint64 example value
* all: remove // import comments ([#50110](#50110))
  * [`bf9d739561`](bf9d739) api: remove // import comments
</p>
</details>

### Dependency Changes

* **github.com/docker/go-connections**  v0.5.0 -> v0.6.0
* **pgregory.net/rapid**                v1.2.0 **_new_**

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)

api/v1.52.0-beta.0

Toggle api/v1.52.0-beta.0's commit message

Verified

This tag was signed with the committer’s verified signature.
austinvazquez Austin Vazquez
moby api/v1.52.0-beta.0

Welcome to the api/v1.52.0-beta.0 release of moby!
*This is a pre-release of moby*

The first dedicated release for the Moby API. This release continues the 1.x
line of API compatibility with the 52nd minor release of the 1.x API.

### Highlights

#### API

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))
* api/types/build: move `CachePruneOptions` type to `client.BuildCachePruneOptions` ([#50772](#50772))
* Go SDK: api/types/container: move container options to client ([#50897](#50897))
* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* api: remove unused `DefaultVersion`, `MinSupportedAPIVersion` consts ([#50587](#50587))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Update deprecation message for `AuthConfig.Email` field ([#50792](#50792))
* Prefer explicit device driver name over GPU capabilities when selecting the device driver with `docker run --gpus` ([#50717](#50717))
* Go SDK: api/types/container: rename `Port` to `PortSummary`. ([#50711](#50711))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))
* `GET /containers/json` now includes a `Health` field describing container healthcheck status. ([#50281](#50281))
* Go SDK: api/types: remove deprecated aliases. ([#50452](#50452))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* Go SDK: `api/types/registry`: `EncodeAuthConfig`: use empty string for zero value ([#50426](#50426))
* Go SDK: api/types/container: remove deprecated `ContainerUpdateOKBody` alias.
- Go SDK: api/types/container: remove deprecated `ContainerTopOKBody` alias. ([#50400](#50400))
* Go SDK: api/types/registry: remove deprecated `ServiceConfig.AllowNondistributableArtifactsCIDRs` and `ServiceConfig.AllowNondistributableArtifactsHostnames` fields. ([#50375](#50375))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))
* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))
* Update API version to 1.51 ([#50145](#50145))
* Fix `docker image inspect inspect` omitting empty fields. ([#50135](#50135))

#### Client

* Go SDK: api/types/checkpoint: move checkpoint options to client module ([#50905](#50905))

#### Core Engine

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* `GET /images/{name}/get` and `POST /images/load` now accept multiple `platform` query parameters, allowing export and load of images for multiple platforms. ([#50166](#50166))

#### Image Distribution

* `GET /images/json` now sets the value of the `Containers` field for all images to the count of containers using the image. ([#50146](#50146))

#### Networking

* Go-SDK: the types `"github.com/moby/moby/api/types/network".Summary` and `"github.com/moby/moby/api/types/network".Inspect` are no longer aliases, and most of their fields have been moved into an embedded struct. Engine API clients may require some source-level changes when migrating to the new github.com/moby/moby/api module. ([#50878](#50878))
* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))

#### Deprecations

* API: Deprecation: the Engine was automatically backfilling empty `PortBindings` lists with a PortBinding with an empty HostIP and HostPort when starting a container. This behavior is deprecated for API 1.52, and will be dropped in API 1.53. ([#50874](#50874))
* Go-SDK: Deprecate field `NetworkSettingsBase.Bridge`, struct `NetworkSettingsBase`, all the fields of `DefaultNetworkSettings`, and struct `DefaultNetworkSettings`. ([#50848](#50848))
* api/types/strslice: deprecate StrSlice in favor of using a regular `[]string`. ([#50292](#50292))
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* Go SDK: api: remove `NoBaseImageSpecifier` ([#50574](#50574))
* GO SDK: api/types/filters: remove deprecated `ToParamWithVersion` ([#50561](#50561))
* Go-SDK: remove deprecated `types/plugins/logdriver` and `types/swarm/runtime` packages; plugin-runtime spec is now exposed as `types/swarm.RuntimeSpec` and `types/swarm.RuntimePrivilege` ([#50554](#50554))
* Go SDK: api/types/container: remove deprecated `Stats` type. ([#50492](#50492))
* Go-SDK: deprecate `pkg/stdcopy`, which was moved to `api/stdcopy`. ([#50462](#50462))
* Go SDK: api/types: remove deprecated aliases. ([#50452](#50452))
* Go SDK: api: deprecate `NoBaseImageSpecifier` const. This const is no longer used and will be removed in the next release. ([#50437](#50437))
* Go SDK: api/types/container: remove deprecated `ContainerUpdateOKBody` alias.
- Go SDK: api/types/container: remove deprecated `ContainerTopOKBody` alias. ([#50400](#50400))
* Go SDK: api/types/registry: remove deprecated `ServiceConfig.AllowNondistributableArtifactsCIDRs` and `ServiceConfig.AllowNondistributableArtifactsHostnames` fields. ([#50375](#50375))
* api/types/container: deprecate `ExecOptions.Detach`. This field is not used, and will be removed in a future release. ([#50218](#50218))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Austin Vazquez
* Derek McGowan
* Paweł Gronowski
* Cory Snider
* Akihiro Suda
* Matthieu MOREL
* Albin Kerouanton
* Hannes Ortmeier
* Rob Murray
* Cesar Talledo
* Evan Lezar
* Jiří Moravčík
* Muhammad Daffa Dinaya
* Nicolas De Loof
* Niel Drummond

### Changes
<details><summary>264 commits</summary>
<p>

* Prepare release notes for api/v1.52.0-beta.0 ([#50904](#50904))
  * [`d904f3b625`](d904f3b) Prepare api/1.52.0-beta releases
* api/types/image: move LoadResponse to client ([#50909](#50909))
  * [`8b8a3cb14c`](8b8a3cb) api/types/image: move LoadResponse to client
* api/types/checkpoint: move checkpoint options to client ([#50905](#50905))
  * [`a8afc2c6fb`](a8afc2c) api/types/checkpoint: move checkpoint options to client
* api/types/build: move build cache prune options from api to client ([#50772](#50772))
  * [`26e335b647`](26e335b) api/types/build: move `CachePruneOptions` to client mod
  * [`a4a90c2248`](a4a90c2) api: fix deprecation of "keep-storage" /build/prune query parameter
* api/types/container: move container options to client ([#50897](#50897))
  * [`4d20b6fe56`](4d20b6f) api/types/container: move container options to client
* api/docs: update v1.52 docs with current swagger ([#50899](#50899))
  * [`ccf1363680`](ccf1363) api/docs: update v1.52 docs with current swagger
* api/types/network: separate Summary from Inspect ([#50878](#50878))
  * [`1a86389419`](1a86389) api/types/network: separate Summary from Inspect
* api/types/image: make `InspectResponse.GraphDriver` optional ([#50893](#50893))
  * [`c441b2ef19`](c441b2e) api/types/image: make `InspectResponse.GraphDriver` optional
* daemon: filter networks before converting to API types ([#50860](#50860))
  * [`f8bd170b2a`](f8bd170) daemon: validate args in network.New*Filter
* api: remove unused DefaultVersion, MinSupportedAPIVersion consts ([#50587](#50587))
  * [`e46a991dc5`](e46a991) api: remove unused DefaultVersion, MinSupportedAPIVersion consts
* api/types/system: move `SecurityOpt` and `DecodeSecurityOptions` to client mod ([#50825](#50825))
  * [`e2e9f36c5f`](e2e9f36) api/types/system: move `SecurityOpt` type and `DecodeSecurityOptions` to client
* daemon: backfill empty PBs slices for backward compat ([#50874](#50874))
  * [`0ca7ac3258`](0ca7ac3) daemon: backfill empty PBs slices for backward compat
* api/types/registry: move `ServiceConfig` legacy field marshaling support into daemon backend ([#50826](#50826))
  * [`c9fdad2552`](c9fdad2) daemon: marshal legacy `registry.ServiceConfig` extra fields for compatability
* api/t/ctr: deprecate NetworkSettingsBase, DefaultNetworkSettings ([#50848](#50848))
  * [`b7c597ec35`](b7c597e) api/t/ctr: deprecate DefaultNetworkSettings
  * [`80bb864fd6`](80bb864) api/t/ctr: deprecate NetworkSettingsBase
  * [`16dc39136c`](16dc391) api/t/ctr: deprecate NetworkSettingsBase.Bridge
* api/types/network: move network create/connect/disconnect options from api to client ([#50817](#50817))
  * [`1b4fcb8da7`](1b4fcb8) api/types/network: move `CreateOptions` type to client module
  * [`1e249cc309`](1e249cc) api/types/network: move connect/disconnect options types to client module
* api/types/container: merge InspectResponse and ContainerJSONBase ([#50809](#50809))
  * [`fae54e03af`](fae54e0) api/types/container: merge InspectResponse and ContainerJSONBase
* api/types/image: move image options from api to client ([#50776](#50776))
  * [`853aed171b`](853aed1) api/types/image: move image option types to client
* api/types/swarm: move `SecretListOptions` type to client ([#50816](#50816))
  * [`33066cddb1`](33066cd) api/types/swarm: move `SecretListOptions` type to client
* api/types/swarm: move swarm option types to client ([#50794](#50794))
  * [`94d0b10503`](94d0b10) api/types/swarm: move `ServiceInspectOptions` type to client
  * [`a2291e5eac`](a2291e5) api/types/swarm: move `ServiceListOptions` type to client
  * [`3b1e16594b`](3b1e165) api/types/swarm: move `ServiceUpdateOptions` type to client
  * [`bb4125e89f`](bb4125e) api/types/swarm: move `ServiceCreateOptions` type to client
  * [`4dcc7af116`](4dcc7af) api/types/swarm: move `UpdateFlags` type to client
  * [`ad0fa5a872`](ad0fa5a) api/types/swarm: move `TaskListOptions` type to client
  * [`2718f953f0`](2718f95) api/types/swarm: move `NodeRemoveOptions` to client
  * [`7d2b87e95f`](7d2b87e) api/types/swarm: move `NodeListOptions` to client mod
  * [`b1260cd493`](b1260cd) api/types/swarm: move `ConfigListOptions` to client
* api/types/registry: move auth config functions to pkg ([#50785](#50785))
  * [`bdce1608c8`](bdce160) api: move authconfig package from types/registry to pkg
* api: docs: update v1.52 swagger with latest changes ([#50796](#50796))
  * [`eed354379c`](eed3543) api: docs: update v1.52 swagger with latest changes
* api/types/registry: update deprecation comment for AuthConfig.Email ([#50792](#50792))
  * [`d867f9f0f1`](d867f9f) api/docs: update description for AuthConfig.Email field
  * [`6cfff7e880`](6cfff7e) api/types/registry: update deprecation comment for AuthConfig.Email
* api/types/network: move network options from api to client ([#50786](#50786))
  * [`5eaed0366c`](5eaed03) api/types/network: move `InspectOptions` to client mod
  * [`d6aa6ae9bd`](d6aa6ae) api/types/network: move `ListOptions` to client
* api/types/registry: move registry search options to client ([#50787](#50787))
  * [`40025bdf43`](40025bd) api/types/registry: move `SearchOptions` to client
* api/types/volume: move volume list options from api to client ([#50789](#50789))
  * [`9fc6a1e437`](9fc6a1e) api/types/volume: refactor volume options to prune report
  * [`c48585f104`](c48585f) api/types/volume: move `ListOptions` to client mod
* api/types/system: move `DiskUsageOptions` to client mod ([#50788](#50788))
  * [`56626a1222`](56626a1) api/types/system: move `DiskUsageOptions` to client mod
* api/types/events: move events list options from api to client ([#50774](#50774))
  * [`d73dd4990c`](d73dd49) api/types/events: move `ListOptions` type to client
* api/types/container: move container resize options from api to client ([#50773](#50773))
  * [`882fd68b1b`](882fd68) api/types/container: move `ResizeOptions` type to client
* api/types: move disk usage structs to daemon backend ([#50764](#50764))
  * [`c4e82bab70`](c4e82ba) api/types/volume: move `DiskUsage` type internal to daemon backend
  * [`0d61b55add`](0d61b55) api/types/image: move `DiskUsage` type internal to daemon backend
  * [`566c44edfe`](566c44e) api/types/container: move `DiskUsage` type internal to daemon backend
  * [`d588092be2`](d588092) api/types/build: move internal to daemon backend
* api: bump github.com/google/go-cmp v0.7.0 ([#50723](#50723))
  * [`b13ea83488`](b13ea83) api: bump github.com/google/go-cmp v0.7.0
* Match device driver on name and ignore capabilities ([#50717](#50717))
  * [`48038347d7`](4803834) Match device driver on name and ignore capabilities
* Copy the api/types/time package to internal client/daemon packages ([#50722](#50722))
  * [`812aa46d81`](812aa46) Move the api/types/time package to internal daemon package
* api/types/container: rename Port to PortSummary ([#50711](#50711))
  * [`82ba7fef17`](82ba7fe) api/types/container: rename Port to PortMapping
* api: swagger: Tweak type of ForceUpdate to uint64 ([#50679](#50679))
  * [`185ae7ec2c`](185ae7e) docs: api: Tweak type of ForceUpdate to uin64
  * [`c8173c5c1f`](c8173c5) api: swagger: Tweak type of ForceUpdate to uint64
* api/types/network: modernize EndpointIPAMConfig.Copy, EndpointSettings.Copy ([#50690](#50690))
  * [`11094e27b0`](11094e2) api/types/network: modernize EndpointIPAMConfig.Copy, EndpointSettings.Copy
* Deprecate api/types/strslice.StrSlice and remove its use ([#50292](#50292))
  * [`98790830eb`](9879083) Deprecate api/types/strslice.StrSlice and remove its use
* README: update, add badges ([#50665](#50665))
  * [`662154a940`](662154a) api: README: add badges
* vendor: github.com/docker/go-connections v0.6.0 ([#50126](#50126))
  * [`677c2a19d9`](677c2a1) vendor: github.com/docker/go-connections v0.6.0
* api/docs: sync v1.52 swagger with current version ([#50643](#50643))
  * [`234349d173`](234349d) api/docs: sync v1.52 swagger with current version
* docs: api: improve the docs of the `outputs` parameter ([#50338](#50338))
  * [`833dc69ad9`](833dc69) docs: improve the description of the `outputs` parameter for `/build` endpoint
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
  * [`c13266d2c0`](c13266d) api/types: move plugin types to api/types/plugin
* Prepare release notes for v1.52.0-alpha.0 ([#50625](#50625))
  * [`59e8fe8479`](59e8fe8) Prepare release notes for v1.52.0
* api/types: move ErrorResponse to common/ErrorResponse ([#50632](#50632))
  * [`c17d43ae67`](c17d43a) api/types: move ErrorResponse to common/ErrorResponse
* api/docs: add v1.52 swagger ([#50626](#50626))
  * [`044234f847`](044234f) api/docs: add v1.52 swagger
* apk/pkg/stdcopy: remove use of `iota`, improve docs, and add example  ([#50612](#50612))
  * [`752a3b302c`](752a3b3) api/pkg/stdcopy: add example
  * [`26cf610e6e`](26cf610) api/pkg/stdcopy: improve docs
  * [`c010c84ade`](c010c84) api/pkg/stdcopy: don't use iota for consts
* api/types/strslice: use slices.Equal ([#50608](#50608))
  * [`51bbc37f64`](51bbc37) api/types/strslice: use slices.Equal
* api: update "interface{}" to "any" ([#50609](#50609))
  * [`908895b9c3`](908895b) api: update "interface{}" to "any"
* api/types: fix Plugin.Config.Interface.Types Swagger definition ([#50519](#50519))
  * [`ee560a3b23`](ee560a3) api/types: fix Plugin.Config.Interface.Types def'n
  * [`2783f80ecf`](2783f80) api/types: generate with latest go-swagger
* update github and pkg.go.dev links ([#50590](#50590))
  * [`49aa38e9e7`](49aa38e) update links to swarmkit v2 docs
  * [`c98e5cb60b`](c98e5cb) update github links to moby/moby
* Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value" ([#50583](#50583))
  * [`e55d294ea7`](e55d294) api/types/registry: add TODO/note about empty authConfigs
  * [`8b68b977b1`](8b68b97) Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value"
* pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail, remove DisplayJSONMessagesToStream and Stream interface ([#49264](#49264))
  * [`fdaccdb233`](fdaccdb) pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail
* api/types/container: add aliases for go-connections/nat types ([#50573](#50573))
  * [`494677f93f`](494677f) api/types/container: add aliases for go-connections/nat types
* Move jsonmessage, streamformatter, and progress ([#50565](#50565))
  * [`d00ecdc479`](d00ecdc) Move pkg/streamformatter to api/pkg/streamformatter
  * [`66862e14d1`](66862e1) Move pkg/progress to api/pkg/progress
  * [`1da417980c`](1da4179) Move api/stdcopy to api/pkg/stdcopy
  * [`f4127d76c5`](f4127d7) pkg/jsonmessage: move JSONProgress to api/types/jsonstream
  * [`0515e1c991`](0515e1c) pkg/jsonmessage: move JSONError to api/types/jsonstream
* api: remove deprecated NoBaseImageSpecifier ([#50574](#50574))
  * [`94ac102e4b`](94ac102) api: remove deprecated NoBaseImageSpecifier
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
  * [`6c7e2909c2`](6c7e290) api/types/filters: remove deprecated ToParamWithVersion
* Move logdriver interface ([#50554](#50554))
  * [`03d7f47f31`](03d7f47) Update api go.mod
  * [`d7cfe97984`](d7cfe97) Update logdriver to remove proto definitions
  * [`86190e7366`](86190e7) Move swarm runtime plugin spec to swarm types
* api/types/container: move StateStatus, NewStateStatus internal again ([#50495](#50495))
  * [`ec3e83a7b5`](ec3e83a) api/types/container: move StateStatus, NewStateStatus internal again
* api/types/container.StatsResponseReader: move to client ([#50521](#50521))
  * [`f67e6555bf`](f67e655) api/types/container.StatsResponseReader: move to client
* cli/ is not in moby repo (anymore) ([#50537](#50537))
  * [`e6298db297`](e6298db) cli/ is not in moby repo (anymore)
* api/types: move backend types to daemon/server ([#50534](#50534))
  * [`83510a26b3`](83510a2) api/types: move backend types to daemon/server
* api: move "DiskUsage" related types to the right location ([#50518](#50518))
  * [`96a6884cb3`](96a6884) api/types: move DiskUsage types to api/types/system
  * [`82c069c857`](82c069c) api/types/system: move DiskUsage, DiskUsageOptions to api/types/backend
* api/types: move client.go contents into moby/moby/client ([#50510](#50510))
  * [`24aa86991c`](24aa869) api/types: move PluginCreateOptions to client
  * [`b93ad81898`](b93ad81) api/types: move plugin client options into client
  * [`44ae4cd2b7`](44ae4cd) api/types: move HijackedResponse into client
* api: move docs to api module ([#50491](#50491))
  * [`4d5a7289a0`](4d5a728) api: move docs to api module
* api/types/container: remove deprecated Stats type ([#50492](#50492))
  * [`f1a97bda3d`](f1a97bd) api/types/container: remove deprecated Stats type
* api/types/container: add missing type for exec-inspect response. ([#50482](#50482))
  * [`2a342079c6`](2a34207) api/types/container: add missing type for exec-inspect response.
* Add support for multiple platforms in image export and load ([#50166](#50166))
  * [`fcc8209e12`](fcc8209) Add support for multiple platforms in image export and loading.
* api: remove references to old module name ([#50474](#50474))
  * [`cc9e6a13a2`](cc9e6a1) api/types/swarm/runtime: remove module path for generating proto
  * [`76c1afeb97`](76c1afe) api/types/plugins/logdriver: remove module path for generating proto
  * [`85ecf8c0f4`](85ecf8c) api: update references to old module name
  * [`a17a2e8f3d`](a17a2e8) api/stdcopy: touch-up godoc
  * [`5b8ef1aff2`](5b8ef1a) api: remove redundant //go:build lines
* Add HealthStatus attribute on the docker ps command ([#50281](#50281))
  * [`6e7a2c830d`](6e7a2c8) Add Health attribute on the docker ps command
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
  * [`20d594fb79`](20d594f) deprecate pkg/stdcopy, move to api/stdcopy
* Create github.com/moby/moby/api and github.com/moby/moby/client module ([#50280](#50280))
  * [`afd6487b2e`](afd6487) Create github.com/moby/moby/api module
* api/types: remove deprecated aliases ([#50452](#50452))
  * [`18e463a082`](18e463a) api/types: remove deprecated RequestPrivilegeFunc type
  * [`a3920ae6a0`](a3920ae) api/types: remove deprecated IDResponse type
  * [`3e5a06179e`](3e5a061) api/types: remove deprecated container-inspect types
  * [`8347b05435`](8347b05) api/types: remove deprecated Container type
  * [`f050df0329`](f050df0) api/types: remove deprecated ContainerState type
  * [`7abeb4d5a4`](7abeb4d) api/types: remove deprecated container-networksettings types
  * [`c5a2194b5d`](c5a2194) api/types: remove deprecated container Health types
  * [`76bf0e2929`](76bf0e2) api/types: remove deprecated MountPoint
  * [`207db8792e`](207db87) api/types: remove deprecated Port
  * [`fa8177ba7a`](fa8177b) api/types: remove deprecated GraphDriverData
  * [`836ec65d5f`](836ec65) api/types: remove deprecated ImageInspect, RootFS
  * [`7d3459e7fb`](7d3459e) api/types: remove deprecated SecretCreateResponse, SecretListOptions
  * [`68744c8b05`](68744c8) api/types: remove deprecated ConfigCreateResponse, ConfigListOptions
  * [`33f07ff3f4`](33f07ff) api/types: remove deprecated NodeListOptions, NodeRemoveOptions
  * [`f13796d2af`](f13796d) api/types: remove deprecated TaskListOptions
  * [`72b1e11264`](72b1e11) api/types: remove deprecated ServiceCreateOptions
  * [`3faead6fc1`](3faead6) api/types: remove deprecated ServiceUpdateOptions
  * [`55ad118eaf`](55ad118) api/types: remove deprecated ServiceListOptions, ServiceInspectOptions
  * [`91558ae3f3`](91558ae) api/types: remove deprecated SwarmUnlockKeyResponse
  * [`74fe646ac2`](74fe646) api/types: remove deprecated build-cache types
  * [`3eac6e7888`](3eac6e7) api/types: remove deprecated BuildResult
  * [`088cb2ffa6`](088cb2f) api/types: remove deprecated build-related types
* api: deprecate NoBaseImageSpecifier ([#50437](#50437))
  * [`7b9bd987bf`](7b9bd98) api: deprecate NoBaseImageSpecifier
* api/types/registry: EncodeAuthConfig: use empty string for zero value ([#50426](#50426))
  * [`3a447bc079`](3a447bc) api/types/registry: EncodeAuthConfig: use empty string for zero value
* api/types/registry: DecodeAuthConfig: add early returns and improve errors ([#50425](#50425))
  * [`472e09ac47`](472e09a) api/types/registry: DecodeAuthConfig: add early returns and improve errors
  * [`6865032baa`](6865032) api/types/registry: add BenchmarkDecodeAuthConfig
* api: bump to 1.52 ([#50418](#50418))
  * [`6a8654a808`](6a8654a) api: bump to 1.52
* api/types/registry: add some tests for encoding/decoding authconfig ([#50392](#50392))
  * [`d30e61bff4`](d30e61b) api/types/registry: add some tests for encoding/decoding authconfig
* api/types/container: remove deprecated ContainerUpdateOKBody, ContainerTopOKBody ([#50400](#50400))
  * [`4a8d77c958`](4a8d77c) api/types/container: remove deprecated ContainerTopOKBody alias
  * [`3d8d9c2bb3`](3d8d9c2) api/types/container: remove deprecated ContainerUpdateOKBody alias
* api/types/registry: remove deprecated fields for non-distributable artifacts ([#50375](#50375))
  * [`11a18d3b00`](11a18d3) api/types/registry: remove deprecated fields for non-distributable artifacts
* daemon/server: remove compatibility with API v1.4 auth-config on push ([#50371](#50371))
  * [`ea29dffaa5`](ea29dff) daemon/server: remove compatibility with API v1.4 auth-config on push
* api: swagger: Tweak type of GwPriority to integer ([#50333](#50333))
  * [`51d6687754`](51d6687) api: swagger: Tweak type of GwPriority to integer
* Add progress aux emitter to build backend ([#50278](#50278))
  * [`a824db247f`](a824db2) Add progress aux emitter to build backend
* Move api server packages to daemon ([#50004](#50004))
  * [`87238882e0`](8723888) Move api/server to daemon/server
  * [`3a6e3f85c6`](3a6e3f8) Move api/server/backend/build to daemon/build
  * [`79f802d46a`](79f802d) Move api/server/httputils to daemon/server/httputils
  * [`c7a87f0dee`](c7a87f0) Move api/server/httpstatus to daemon/server/httpstatus
  * [`d64bd2cceb`](d64bd2c) Move api/server/middleware to daemon/server/middleware
  * [`72a020fcd8`](72a020f) Move api/server/router to daemon/server/router
  * [`f293628f55`](f293628) Move api/server/router/volume to daemon/server/router/volume
  * [`15c8007064`](15c8007) Move api/server/router/system to daemon/server/router/system
  * [`45172bbf23`](45172bb) Move api/server/router/swarm to daemon/server/router/swarm
  * [`f6ba5a5241`](f6ba5a5) Move api/server/router/session to daemon/server/router/session
  * [`3eb5fe0277`](3eb5fe0) Move api/server/router/plugin to daemon/server/router/plugin
  * [`baa58ddc6a`](baa58dd) Move api/server/router/network to daemon/server/router/network
  * [`0cbb4ac8e6`](0cbb4ac) Move api/server/router/image to daemon/server/router/image
  * [`a063389af7`](a063389) Move api/server/router/grpc to daemon/server/router/grpc
  * [`9ff489863c`](9ff4898) Move api/server/router/distribution to daemon/server/router/distribution
  * [`ced7798ed8`](ced7798) Move api/server/router/debug to daemon/server/router/debug
  * [`3a9db5fbd6`](3a9db5f) Move api/server/router/container to daemon/server/router/container
  * [`d6136b660f`](d6136b6) Move api/server/router/checkpoint to daemon/server/router/checkpoint
  * [`31b6886eb1`](31b6886) Move api/server/router/build to daemon/server/router/build
* Replace multierror function in network api types ([#50273](#50273))
  * [`374fa24a53`](374fa24) Add multierror function to api network
* fix: easiest revive rules ([#50262](#50262))
  * [`381d9d0723`](381d9d0) fix use-errors-new from revive
* api/types/container: deprecate ExecOptions.Detach ([#50218](#50218))
  * [`0c182d4d57`](0c182d4) api/types/container: deprecate ExecOptions.Detach
* api/image/list: Return `Containers` count ([#50146](#50146))
  * [`cfcbfabb0f`](cfcbfab) api/image/list: Return `Containers` count
* fix errorlint linter ([#50158](#50158))
  * [`6d737371b8`](6d73737) fix comparison rule from errorlint
* api: bump to 1.51 ([#50145](#50145))
  * [`27f2e0ecc5`](27f2e0e) api: bump to 1.51
* api: image inspect: add back fields that did not omitempty ([#50135](#50135))
  * [`f85394dd5d`](f85394d) api: image inspect: add back fields that did not omitempty
* fix go-critic linter ([#50082](#50082))
  * [`5ad4e4edf7`](5ad4e4e) fix deprecatedComment from go-critic
  * [`bc9ec5fc02`](bc9ec5f) fix emptyStringTest from go-critic
  * [`469afa5f8f`](469afa5) fix httpNoBody from go-critic
* api/swagger: quote maxUint64 example value ([#50127](#50127))
  * [`affe1d6335`](affe1d6) api/swagger: quote maxUint64 example value
* all: remove // import comments ([#50110](#50110))
  * [`bf9d739561`](bf9d739) api: remove // import comments
</p>
</details>

### Dependency Changes

* **github.com/docker/go-connections**  v0.5.0 -> v0.6.0
* **pgregory.net/rapid**                v1.2.0 **_new_**

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)

v25.0.13

Toggle v25.0.13's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #50551 from corhere/backport-25.0/libn/all-the-ove…

…rlay-fixes

[25.0] libnetwork/overlay: backport all the fixes

client/v0.1.0-alpha.0

Toggle client/v0.1.0-alpha.0's commit message

Verified

This tag was signed with the committer’s verified signature.
austinvazquez Austin Vazquez
moby client/v0.1.0-alpha.0

Welcome to the client/v0.1.0-alpha.0 release of moby!
*This is a pre-release of moby*

The first dedicated release for the Moby Client. This is a 0.x release
since changes to the Go interface are still being considered.

### Highlights

#### Changes affecting the Go SDK

* client: fix datarace when accessing cli.Version field ([#50448](#50448))
* client: define default (and maximum) API version ([#50433](#50433))
* Remove client buildkit dep ([#50318](#50318))

#### cli

* client: Client.doRequest: improve some connection errors ([#50285](#50285))

#### Deprecations

* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
* Move logdriver interface ([#50554](#50554))
* pkg/stringid: deprecate, move to daemon, and provide copy in client ([#50504](#50504))
* client: remove deprecated types and functions ([#50485](#50485))
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
* Remove client buildkit dep ([#50318](#50318))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Derek McGowan
* Matthieu MOREL
* Paweł Gronowski
* Akihiro Suda
* Cory Snider
* Austin Vazquez
* Alessio Perugini
* Austin Vazquez
* Brian Goff
* Medhy DOHOU

### Changes
<details><summary>100 commits</summary>
<p>

* Bump api version in client and main module to v1.52.0-alpha.1 ([#50641](#50641))
  * [`d82f50557e`](d82f505) Bump api version in client and main module to v1.52.0-alpha.1
* api/types: move plugin types to api/types/plugin ([#48114](#48114))
  * [`c13266d2c0`](c13266d) api/types: move plugin types to api/types/plugin
* Prepare release notes for `client/v0.1.0-alpha.0` ([#50637](#50637))
  * [`a0a7d9a3d7`](a0a7d9a) Add release notes for client/v0.1.0-alpha.0
  * [`32ec26be6c`](32ec26b) Update client and main module api version to latest alpha tag
* api/types: move ErrorResponse to common/ErrorResponse ([#50632](#50632))
  * [`c17d43ae67`](c17d43a) api/types: move ErrorResponse to common/ErrorResponse
* client: use stdlib errors ([#50630](#50630))
  * [`bfce6556c4`](bfce655) client: use stdlib errors
* client: tidy go.mod ([#50629](#50629))
  * [`3fe93532e4`](3fe9353) client: tidy go.mod
* client: touch-up godoc ([#50611](#50611))
  * [`195a6bbb1e`](195a6bb) client: touch-up godoc
* pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail, remove DisplayJSONMessagesToStream and Stream interface ([#49264](#49264))
  * [`f3ba0b2dc2`](f3ba0b2) client/pkg/jsonmessage: remove Stream interface
  * [`19edf5c53c`](19edf5c) client/pkg/jsonmessage: remove DisplayJSONMessagesToStream
  * [`fdaccdb233`](fdaccdb) pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail
* Move jsonmessage, streamformatter, and progress ([#50565](#50565))
  * [`0d8ca8eefe`](0d8ca8e) Move pkg/jsonmessage to client/pkg/jsonmessage
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
  * [`6c7e2909c2`](6c7e290) api/types/filters: remove deprecated ToParamWithVersion
* Move logdriver interface ([#50554](#50554))
  * [`1dc53e8ec7`](1dc53e8) Update client go.mod
* api/types/container.StatsResponseReader: move to client ([#50521](#50521))
  * [`f73aba83dc`](f73aba8) client: TestContainerStats: fix minor linting issues
  * [`f67e6555bf`](f67e655) api/types/container.StatsResponseReader: move to client
* api: move "DiskUsage" related types to the right location ([#50518](#50518))
  * [`4dda328af8`](4dda328) client: rename files for system-commands to their canonical name
  * [`96a6884cb3`](96a6884) api/types: move DiskUsage types to api/types/system
* api/types: move client.go contents into moby/moby/client ([#50510](#50510))
  * [`24aa86991c`](24aa869) api/types: move PluginCreateOptions to client
  * [`b93ad81898`](b93ad81) api/types: move plugin client options into client
  * [`44ae4cd2b7`](44ae4cd) api/types: move HijackedResponse into client
* pkg/stringid: deprecate, move to daemon, and provide copy in client ([#50504](#50504))
  * [`ca1c5ee08f`](ca1c5ee) pkg/stringid: move to daemon, and provide copy in client
* client: remove deprecated types and functions ([#50485](#50485))
  * [`8d8bbefb90`](8d8bbef) client: remove deprecated CommonAPIClient interface
  * [`728f0769e1`](728f076) client: remove deprecated ImageInspectWithRaw
  * [`2f200f9e05`](2f200f9) client: remove deprecated IsErrNotFound helper
  * [`5ed9891eed`](5ed9891) client: remove deprecated ErrorConnectionFailed helper
  * [`a0fa5da2ab`](a0fa5da) client: remove deprecated NewClient and NewEnvClient functions
* client: fix example, and update refs to old modules ([#50484](#50484))
  * [`30322dd649`](30322dd) client: fix example, and update refs to old modules
* client: Client.doRequest: improve some connection errors ([#50285](#50285))
  * [`2303e6bff6`](2303e6b) client: Client.doRequest: add special handling for DNS resolution errors
  * [`67596f01e2`](67596f0) client: Client.doRequest: add special handling for "not found" errors
  * [`462d0ff5aa`](462d0ff) client: Client.doRequest: simplify permission check and unwrap error
  * [`7072acac79`](7072aca) client: Client.doRequest: preserve wrapped error
  * [`3b4fbaacd7`](3b4fbaa) client: Client.doRequest: use early return
* client: fix datarace when accessing cli.Version field ([#50448](#50448))
  * [`a88e13f4f9`](a88e13f) client: fix datarace when accessing cli.Version field
* client: cleanup encoding body and add test-coverage ([#50432](#50432))
  * [`c4f9616c4a`](c4f9616) client: cleanup encoding body and add test-coverage
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
  * [`20d594fb79`](20d594f) deprecate pkg/stdcopy, move to api/stdcopy
* Create github.com/moby/moby/api and github.com/moby/moby/client module ([#50280](#50280))
  * [`c47afd41c8`](c47afd4) Create github.com/moby/moby/client module
  * [`afd6487b2e`](afd6487) Create github.com/moby/moby/api module
* client: define default (and maximum) API version ([#50433](#50433))
  * [`41da5700a4`](41da570) client: define default (and maximum) API version
* client: always send (empty) body on push ([#50415](#50415))
  * [`b1ce0c89f0`](b1ce0c8) client: always send (empty) body on push
* client: ContainerExecAttach: update GoDoc links ([#50411](#50411))
  * [`14bd3451d8`](14bd345) client: ContainerExecAttach: update GoDoc links
* client: TestContainerInspectWithEmptyID test both inspect variants ([#50385](#50385))
  * [`16ed75572f`](16ed755) client: TestContainerInspectWithEmptyID test both inspect variants
* Remove client buildkit dep ([#50318](#50318))
  * [`aae26b80fe`](aae26b8) Remove client buildkit dep
* Replace use of env test util with standard library call ([#50317](#50317))
  * [`e93e15afb0`](e93e15a) Replace use of env test util with standard library call
* client: use go-winio.DialPipe directly ([#50125](#50125))
  * [`accbfde61e`](accbfde) client: use go-winio.DialPipe directly
* client: remove getDockerOS utility in favor of "Ostype" header ([#50276](#50276))
  * [`fcf3ff1b2f`](fcf3ff1) client: remove getDockerOS utility in favor of "Ostype" header
* client: omit empty auth headers and use registry.RequestAuthConfig ([#50256](#50256))
  * [`1c0d381f4e`](1c0d381) client: client.tryImagePush: accept registry.RequestAuthConfig
  * [`ca0afe91b9`](ca0afe9) client: client.tryImageCreate: accept registry.RequestAuthConfig
  * [`79b4e18883`](79b4e18) client: add staticAuth utility
  * [`871543a8c5`](871543a) client: Client.ServiceUpdate: don't manually construct header value
* Remove dependency on testutil from client ([#50271](#50271))
  * [`0964fa01ba`](0964fa0) Remove dependency on testutil from client
* Remove dependency on httputil for client hijack test ([#50270](#50270))
  * [`58404b0c28`](58404b0) Remove dependency on httputil for client hijack test
* fix: easiest revive rules ([#50262](#50262))
  * [`6b8afec95b`](6b8afec) fix redefines-builtin-id from revive
  * [`381d9d0723`](381d9d0) fix use-errors-new from revive
* client: Client.addHeaders: remove special handling for api < 1.25 ([#50246](#50246))
  * [`8c067c5223`](8c067c5) client: Client.addHeaders: remove special handling for api < 1.25
* docs(client/ContainerExecAttach): add a mention to stdcopy.StdCopy ([#50119](#50119))
  * [`4891396da6`](4891396) docs(client/ContainerExecAttach): add a mention to stdcopy.StdCopy
* fix errorlint linter ([#50158](#50158))
  * [`6d737371b8`](6d73737) fix comparison rule from errorlint
* fix go-critic linter ([#50082](#50082))
  * [`a62de57aa1`](a62de57) fix sprintfQuotedString from go-critic
  * [`bc9ec5fc02`](bc9ec5f) fix emptyStringTest from go-critic
  * [`469afa5f8f`](469afa5) fix httpNoBody from go-critic
* all: remove // import comments ([#50110](#50110))
  * [`4856e8ffad`](4856e8f) client: remove // import comments
</p>
</details>

### Dependency Changes

* **github.com/moby/moby/api**                                       v1.52.0-alpha.1 **_new_**
* **go.opentelemetry.io/auto/sdk**                                   v1.1.0 **_new_**
* **go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp**  v0.56.0 -> v0.60.0
* **go.opentelemetry.io/otel**                                       v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/metric**                                v1.31.0 -> v1.35.0
* **go.opentelemetry.io/otel/trace**                                 v1.31.0 -> v1.35.0
* **golang.org/x/sys**                                               v0.32.0 -> v0.33.0

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)

api/v1.52.0-alpha.1

Toggle api/v1.52.0-alpha.1's commit message

Verified

This tag was signed with the committer’s verified signature.
austinvazquez Austin Vazquez
moby api/v1.52.0-alpha.1

Welcome to the api/v1.52.0-alpha.1 release of moby!
*This is a pre-release of moby*

The first dedicated release for the Moby API. This release continues the 1.x
line of API compatibility with the 52nd minor release of the 1.x API.

### Highlights

#### Changes affecting the Go SDK

* api/types: remove deprecated aliases ([#50452](#50452))
* api: deprecate NoBaseImageSpecifier ([#50437](#50437))
* api/types/registry: EncodeAuthConfig: use empty string for zero value ([#50426](#50426))
* api/types/container: remove deprecated ContainerUpdateOKBody, ContainerTopOKBody ([#50400](#50400))
* api/types/registry: remove deprecated fields for non-distributable artifacts ([#50375](#50375))
* api/types/container: deprecate ExecOptions.Detach ([#50218](#50218))

#### api

* Add HealthStatus attribute on the docker ps command ([#50281](#50281))
* api: bump to 1.51 ([#50145](#50145))
* api: image inspect: add back fields that did not omitempty ([#50135](#50135))

#### daemon

* Add support for multiple platforms in image export and load ([#50166](#50166))

#### images

* api/image/list: Return `Containers` count ([#50146](#50146))

#### Deprecations

* api/types: move plugin types to api/types/plugin ([#48114](#48114))
* api: remove deprecated NoBaseImageSpecifier ([#50574](#50574))
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
* Move logdriver interface ([#50554](#50554))
* api/types/container: remove deprecated Stats type ([#50492](#50492))
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
* api/types: remove deprecated aliases ([#50452](#50452))
* api: deprecate NoBaseImageSpecifier ([#50437](#50437))
* api/types/container: remove deprecated ContainerUpdateOKBody, ContainerTopOKBody ([#50400](#50400))
* api/types/registry: remove deprecated fields for non-distributable artifacts ([#50375](#50375))
* api/types/container: deprecate ExecOptions.Detach ([#50218](#50218))

Please try out the release binaries and report any issues at
https://github.com/moby/moby/issues.

### Contributors

* Sebastiaan van Stijn
* Derek McGowan
* Paweł Gronowski
* Akihiro Suda
* Cory Snider
* Matthieu MOREL
* Rob Murray
* Austin Vazquez
* Cesar Talledo
* Muhammad Daffa Dinaya
* Nicolas De Loof
* Niel Drummond

### Changes
<details><summary>165 commits</summary>
<p>

* api/types: move plugin types to api/types/plugin ([#48114](#48114))
  * [`c13266d2c0`](c13266d) api/types: move plugin types to api/types/plugin
* Prepare release notes for v1.52.0-alpha.0 ([#50625](#50625))
  * [`59e8fe8479`](59e8fe8) Prepare release notes for v1.52.0
* api/types: move ErrorResponse to common/ErrorResponse ([#50632](#50632))
  * [`c17d43ae67`](c17d43a) api/types: move ErrorResponse to common/ErrorResponse
* api/docs: add v1.52 swagger ([#50626](#50626))
  * [`044234f847`](044234f) api/docs: add v1.52 swagger
* apk/pkg/stdcopy: remove use of `iota`, improve docs, and add example  ([#50612](#50612))
  * [`752a3b302c`](752a3b3) api/pkg/stdcopy: add example
  * [`26cf610e6e`](26cf610) api/pkg/stdcopy: improve docs
  * [`c010c84ade`](c010c84) api/pkg/stdcopy: don't use iota for consts
* api/types/strslice: use slices.Equal ([#50608](#50608))
  * [`51bbc37f64`](51bbc37) api/types/strslice: use slices.Equal
* api: update "interface{}" to "any" ([#50609](#50609))
  * [`908895b9c3`](908895b) api: update "interface{}" to "any"
* api/types: fix Plugin.Config.Interface.Types Swagger definition ([#50519](#50519))
  * [`ee560a3b23`](ee560a3) api/types: fix Plugin.Config.Interface.Types def'n
  * [`2783f80ecf`](2783f80) api/types: generate with latest go-swagger
* update github and pkg.go.dev links ([#50590](#50590))
  * [`49aa38e9e7`](49aa38e) update links to swarmkit v2 docs
  * [`c98e5cb60b`](c98e5cb) update github links to moby/moby
* Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value" ([#50583](#50583))
  * [`e55d294ea7`](e55d294) api/types/registry: add TODO/note about empty authConfigs
  * [`8b68b977b1`](8b68b97) Revert "api/types/registry: EncodeAuthConfig: use empty string for zero value"
* pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail, remove DisplayJSONMessagesToStream and Stream interface ([#49264](#49264))
  * [`fdaccdb233`](fdaccdb) pkg/jsonmessage: stop printing deprecated progressDetail, errorDetail
* api/types/container: add aliases for go-connections/nat types ([#50573](#50573))
  * [`494677f93f`](494677f) api/types/container: add aliases for go-connections/nat types
* Move jsonmessage, streamformatter, and progress ([#50565](#50565))
  * [`d00ecdc479`](d00ecdc) Move pkg/streamformatter to api/pkg/streamformatter
  * [`66862e14d1`](66862e1) Move pkg/progress to api/pkg/progress
  * [`1da417980c`](1da4179) Move api/stdcopy to api/pkg/stdcopy
  * [`f4127d76c5`](f4127d7) pkg/jsonmessage: move JSONProgress to api/types/jsonstream
  * [`0515e1c991`](0515e1c) pkg/jsonmessage: move JSONError to api/types/jsonstream
* api: remove deprecated NoBaseImageSpecifier ([#50574](#50574))
  * [`94ac102e4b`](94ac102) api: remove deprecated NoBaseImageSpecifier
* api/types/filters: remove deprecated ToParamWithVersion ([#50561](#50561))
  * [`6c7e2909c2`](6c7e290) api/types/filters: remove deprecated ToParamWithVersion
* Move logdriver interface ([#50554](#50554))
  * [`03d7f47f31`](03d7f47) Update api go.mod
  * [`d7cfe97984`](d7cfe97) Update logdriver to remove proto definitions
  * [`86190e7366`](86190e7) Move swarm runtime plugin spec to swarm types
* api/types/container: move StateStatus, NewStateStatus internal again ([#50495](#50495))
  * [`ec3e83a7b5`](ec3e83a) api/types/container: move StateStatus, NewStateStatus internal again
* api/types/container.StatsResponseReader: move to client ([#50521](#50521))
  * [`f67e6555bf`](f67e655) api/types/container.StatsResponseReader: move to client
* cli/ is not in moby repo (anymore) ([#50537](#50537))
  * [`e6298db297`](e6298db) cli/ is not in moby repo (anymore)
* api/types: move backend types to daemon/server ([#50534](#50534))
  * [`83510a26b3`](83510a2) api/types: move backend types to daemon/server
* api: move "DiskUsage" related types to the right location ([#50518](#50518))
  * [`96a6884cb3`](96a6884) api/types: move DiskUsage types to api/types/system
  * [`82c069c857`](82c069c) api/types/system: move DiskUsage, DiskUsageOptions to api/types/backend
* api/types: move client.go contents into moby/moby/client ([#50510](#50510))
  * [`24aa86991c`](24aa869) api/types: move PluginCreateOptions to client
  * [`b93ad81898`](b93ad81) api/types: move plugin client options into client
  * [`44ae4cd2b7`](44ae4cd) api/types: move HijackedResponse into client
* api: move docs to api module ([#50491](#50491))
  * [`4d5a7289a0`](4d5a728) api: move docs to api module
* api/types/container: remove deprecated Stats type ([#50492](#50492))
  * [`f1a97bda3d`](f1a97bd) api/types/container: remove deprecated Stats type
* api/types/container: add missing type for exec-inspect response. ([#50482](#50482))
  * [`2a342079c6`](2a34207) api/types/container: add missing type for exec-inspect response.
* Add support for multiple platforms in image export and load ([#50166](#50166))
  * [`fcc8209e12`](fcc8209) Add support for multiple platforms in image export and loading.
* api: remove references to old module name ([#50474](#50474))
  * [`cc9e6a13a2`](cc9e6a1) api/types/swarm/runtime: remove module path for generating proto
  * [`76c1afeb97`](76c1afe) api/types/plugins/logdriver: remove module path for generating proto
  * [`85ecf8c0f4`](85ecf8c) api: update references to old module name
  * [`a17a2e8f3d`](a17a2e8) api/stdcopy: touch-up godoc
  * [`5b8ef1aff2`](5b8ef1a) api: remove redundant //go:build lines
* Add HealthStatus attribute on the docker ps command ([#50281](#50281))
  * [`6e7a2c830d`](6e7a2c8) Add Health attribute on the docker ps command
* deprecate pkg/stdcopy, move to api/stdcopy ([#50462](#50462))
  * [`20d594fb79`](20d594f) deprecate pkg/stdcopy, move to api/stdcopy
* Create github.com/moby/moby/api and github.com/moby/moby/client module ([#50280](#50280))
  * [`afd6487b2e`](afd6487) Create github.com/moby/moby/api module
* api/types: remove deprecated aliases ([#50452](#50452))
  * [`18e463a082`](18e463a) api/types: remove deprecated RequestPrivilegeFunc type
  * [`a3920ae6a0`](a3920ae) api/types: remove deprecated IDResponse type
  * [`3e5a06179e`](3e5a061) api/types: remove deprecated container-inspect types
  * [`8347b05435`](8347b05) api/types: remove deprecated Container type
  * [`f050df0329`](f050df0) api/types: remove deprecated ContainerState type
  * [`7abeb4d5a4`](7abeb4d) api/types: remove deprecated container-networksettings types
  * [`c5a2194b5d`](c5a2194) api/types: remove deprecated container Health types
  * [`76bf0e2929`](76bf0e2) api/types: remove deprecated MountPoint
  * [`207db8792e`](207db87) api/types: remove deprecated Port
  * [`fa8177ba7a`](fa8177b) api/types: remove deprecated GraphDriverData
  * [`836ec65d5f`](836ec65) api/types: remove deprecated ImageInspect, RootFS
  * [`7d3459e7fb`](7d3459e) api/types: remove deprecated SecretCreateResponse, SecretListOptions
  * [`68744c8b05`](68744c8) api/types: remove deprecated ConfigCreateResponse, ConfigListOptions
  * [`33f07ff3f4`](33f07ff) api/types: remove deprecated NodeListOptions, NodeRemoveOptions
  * [`f13796d2af`](f13796d) api/types: remove deprecated TaskListOptions
  * [`72b1e11264`](72b1e11) api/types: remove deprecated ServiceCreateOptions
  * [`3faead6fc1`](3faead6) api/types: remove deprecated ServiceUpdateOptions
  * [`55ad118eaf`](55ad118) api/types: remove deprecated ServiceListOptions, ServiceInspectOptions
  * [`91558ae3f3`](91558ae) api/types: remove deprecated SwarmUnlockKeyResponse
  * [`74fe646ac2`](74fe646) api/types: remove deprecated build-cache types
  * [`3eac6e7888`](3eac6e7) api/types: remove deprecated BuildResult
  * [`088cb2ffa6`](088cb2f) api/types: remove deprecated build-related types
* api: deprecate NoBaseImageSpecifier ([#50437](#50437))
  * [`7b9bd987bf`](7b9bd98) api: deprecate NoBaseImageSpecifier
* api/types/registry: EncodeAuthConfig: use empty string for zero value ([#50426](#50426))
  * [`3a447bc079`](3a447bc) api/types/registry: EncodeAuthConfig: use empty string for zero value
* api/types/registry: DecodeAuthConfig: add early returns and improve errors ([#50425](#50425))
  * [`472e09ac47`](472e09a) api/types/registry: DecodeAuthConfig: add early returns and improve errors
  * [`6865032baa`](6865032) api/types/registry: add BenchmarkDecodeAuthConfig
* api: bump to 1.52 ([#50418](#50418))
  * [`6a8654a808`](6a8654a) api: bump to 1.52
* api/types/registry: add some tests for encoding/decoding authconfig ([#50392](#50392))
  * [`d30e61bff4`](d30e61b) api/types/registry: add some tests for encoding/decoding authconfig
* api/types/container: remove deprecated ContainerUpdateOKBody, ContainerTopOKBody ([#50400](#50400))
  * [`4a8d77c958`](4a8d77c) api/types/container: remove deprecated ContainerTopOKBody alias
  * [`3d8d9c2bb3`](3d8d9c2) api/types/container: remove deprecated ContainerUpdateOKBody alias
* api/types/registry: remove deprecated fields for non-distributable artifacts ([#50375](#50375))
  * [`11a18d3b00`](11a18d3) api/types/registry: remove deprecated fields for non-distributable artifacts
* daemon/server: remove compatibility with API v1.4 auth-config on push ([#50371](#50371))
  * [`ea29dffaa5`](ea29dff) daemon/server: remove compatibility with API v1.4 auth-config on push
* api: swagger: Tweak type of GwPriority to integer ([#50333](#50333))
  * [`51d6687754`](51d6687) api: swagger: Tweak type of GwPriority to integer
* Add progress aux emitter to build backend ([#50278](#50278))
  * [`a824db247f`](a824db2) Add progress aux emitter to build backend
* Move api server packages to daemon ([#50004](#50004))
  * [`87238882e0`](8723888) Move api/server to daemon/server
  * [`3a6e3f85c6`](3a6e3f8) Move api/server/backend/build to daemon/build
  * [`79f802d46a`](79f802d) Move api/server/httputils to daemon/server/httputils
  * [`c7a87f0dee`](c7a87f0) Move api/server/httpstatus to daemon/server/httpstatus
  * [`d64bd2cceb`](d64bd2c) Move api/server/middleware to daemon/server/middleware
  * [`72a020fcd8`](72a020f) Move api/server/router to daemon/server/router
  * [`f293628f55`](f293628) Move api/server/router/volume to daemon/server/router/volume
  * [`15c8007064`](15c8007) Move api/server/router/system to daemon/server/router/system
  * [`45172bbf23`](45172bb) Move api/server/router/swarm to daemon/server/router/swarm
  * [`f6ba5a5241`](f6ba5a5) Move api/server/router/session to daemon/server/router/session
  * [`3eb5fe0277`](3eb5fe0) Move api/server/router/plugin to daemon/server/router/plugin
  * [`baa58ddc6a`](baa58dd) Move api/server/router/network to daemon/server/router/network
  * [`0cbb4ac8e6`](0cbb4ac) Move api/server/router/image to daemon/server/router/image
  * [`a063389af7`](a063389) Move api/server/router/grpc to daemon/server/router/grpc
  * [`9ff489863c`](9ff4898) Move api/server/router/distribution to daemon/server/router/distribution
  * [`ced7798ed8`](ced7798) Move api/server/router/debug to daemon/server/router/debug
  * [`3a9db5fbd6`](3a9db5f) Move api/server/router/container to daemon/server/router/container
  * [`d6136b660f`](d6136b6) Move api/server/router/checkpoint to daemon/server/router/checkpoint
  * [`31b6886eb1`](31b6886) Move api/server/router/build to daemon/server/router/build
* Replace multierror function in network api types ([#50273](#50273))
  * [`374fa24a53`](374fa24) Add multierror function to api network
* fix: easiest revive rules ([#50262](#50262))
  * [`381d9d0723`](381d9d0) fix use-errors-new from revive
* api/types/container: deprecate ExecOptions.Detach ([#50218](#50218))
  * [`0c182d4d57`](0c182d4) api/types/container: deprecate ExecOptions.Detach
* api/image/list: Return `Containers` count ([#50146](#50146))
  * [`cfcbfabb0f`](cfcbfab) api/image/list: Return `Containers` count
* fix errorlint linter ([#50158](#50158))
  * [`6d737371b8`](6d73737) fix comparison rule from errorlint
* api: bump to 1.51 ([#50145](#50145))
  * [`27f2e0ecc5`](27f2e0e) api: bump to 1.51
* api: image inspect: add back fields that did not omitempty ([#50135](#50135))
  * [`f85394dd5d`](f85394d) api: image inspect: add back fields that did not omitempty
* fix go-critic linter ([#50082](#50082))
  * [`5ad4e4edf7`](5ad4e4e) fix deprecatedComment from go-critic
  * [`bc9ec5fc02`](bc9ec5f) fix emptyStringTest from go-critic
  * [`469afa5f8f`](469afa5) fix httpNoBody from go-critic
* api/swagger: quote maxUint64 example value ([#50127](#50127))
  * [`affe1d6335`](affe1d6) api/swagger: quote maxUint64 example value
* all: remove // import comments ([#50110](#50110))
  * [`bf9d739561`](bf9d739) api: remove // import comments
</p>
</details>

### Dependency Changes

* **github.com/google/go-cmp**  v0.7.0 -> v0.5.9
* **pgregory.net/rapid**        v1.2.0 **_new_**

Previous release can be found at [v28.2.2](https://github.com/moby/moby/releases/tag/v28.2.2)