This is a tracking bug and roadmap note for upgrading docker.io to Docker 29.x
(Moby API v1.52).
Upstream Podman 6.1 and other contemporary container tooling have completed
their transition to Docker Engine 29.x / Moby API v1.52 (specifically importing
github.com/moby/moby/api v1.55+ and github.com/moby/moby/client).
Key points to address during the 29.x packaging update:
1. Module Import Path & Packaging:
- Modern reverse dependencies now import github.com/moby/moby/api and
github.com/moby/moby/client. Ensure the -dev package provides these module
paths cleanly alongside any legacy compatibility symlinks.
2. API v1.52 Structural Changes & Typing:
- GET /system/df: DiskUsage was restructured into subsystem-specific usage
structs (ImageUsage, ContainerUsage, VolumeUsage, BuildCacheUsage).
- GET /containers/{id}/json: InspectResponse flattened its fields directly
into the struct, dropping the *ContainerJSONBase pointer indirection.
- GET /containers/json: ContainerSummary introduced PortSummary and
HealthSummary, and IP/Port types migrated from raw strings / nat.Port to
netip.Addr / network.PortSet (e.g., .IsValid(), .AsSlice()).
3. Coordination with runtime-spec 1.3.0 (#1122216):
- This update should coordinate with the opencontainers/runtime-spec 1.3.0
transition currently tracked in #1122216. Upgrading docker.io to 29.x will
help unblock reverse dependencies like Podman 6.x and align Debian's core
container stack (runc, buildah, podman, containerd).
Plan:
- Prepare Docker 29.x in experimental first alongside runtime-spec 1.3.0.
- Verify reverse dependency builds (podman 6.x, docker-buildx, docker-compose,
containerd).
- Promote to unstable as part of the wider container stack transition.