buildkit 0.31.0-rc1
Welcome to the v0.31.0-rc1 release of buildkit!
This is a pre-release of buildkit
Note
This release is missing the version tag in the filenames and --version output. This issue will be fixed by the next test release.
Please try out the release binaries and report any issues at
https://github.com/moby/buildkit/issues.
Contributors
- Tõnis Tiigi
- CrazyMax
- Sebastiaan van Stijn
- Bjorn Neergaard
- Jonathan A. Sternberg
- Bryce Gibson
- Akihiro Suda
- Ava Barron
- Brian Goff
- Jiří Moravčík
- Kevin NZUGUEM
- Maya Chen
- Natnael Gebremariam
- Sai Kiran Maggidi
- ZRHann
Notable Changes
- Built-in Dockerfile frontend has been updated to v1.25.0-rc1 changelog
- The local exporter now supports a
mode=deleteattribute which will replace the destination directory with the contents of the build result instead of merging it. Similar to the--deleteflag in rsync. #6561 - LLB APIs now support per-step resource limits for CPU and memory. #6569
- LLB APIs support a new Passthrough operation that allows defining dependency build graph branches that are required to be built but do not add any outputs to the final result. The
state.Requires()client helper can be used to define such dependencies in the build graph. #6829 - All image results now default to using OCI media types. Previously, this was applied based on whether annotations or attestations were needed.
oci-mediatypes=falsecan be used for legacy Docker media types. This change raises the compatibility version of BuildKit v0.31.0 to 30. #6824 - Exec steps now support a network proxy feature where all container traffic will be routed through an HTTP proxy server. This allows capturing the network traffic for inspection in build progress and provenance attestation. Source policies can define the requests that build containers are allowed to make and the ones that should be blocked. Network proxy can be enabled for the whole BuildKit daemon or enabled on a per-build basis. There are some known issues with this feature in RC1, you might have better results testing with this dev build #6858 #6816 #6740
- Local cache exporter now supports the
resetoption to clear the unreferenced existing cache. #6612 - The local build result outputs now use a new implementation with better security guarantees in case the destination directory is mutated externally during the transfer. #6561
- New build metrics about build counts and durations have been added to the OTEL provider. #6736
- Parallel request limits for registry connections can now be set via configuration file. #6776
- In special modes where the client does not expose the session connection to transfer credentials, builds can now still fall back to anonymous registry auth instead of erroring. #6760
- Embedded binfmt emulators in the release image have been updated to QEMU v10.2.3. #6846
- Created attestations now use in-toto v1 statement format. #6823
- Due to the upgraded CLI library, the internal
buildctlcompletion scripts flag--generate-bash-completionis no longer supported and has been replaced with--generate-shell-completion. #6848 - Fix an issue in default GC policy rules where the first rule for prioritizing releasing cache mounts and local sources did not apply. #6856
- Fix an issue where parent directories could be created with incorrect permissions due to system umask when using BuildKit embedded in Dockerd. #6828
- Fix possible segfault from race condition when HTTP server returned 401 error. #6791
- Fix potential deadlock race conditions on stdin close. #6810 #6815
- Fix premature ref release possibly causing "snapshot does not exist" error. #6821
- Fix OTLP shutdown stalling buildctl and buildkitd when the trace collector is unreachable. #6757
- Fix possible reference counting issues. #6820
- Fix possible hang in local progress writer. #6811
- Fix possible early release in case of cache computation error. #6818
- Improve stability of how runc kills build container processes. #6779
Dependency Changes
- github.com/aws/aws-sdk-go-v2 v1.41.7 -> v1.42.0
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 -> v1.7.13
- github.com/aws/aws-sdk-go-v2/config v1.32.17 -> v1.32.24
- github.com/aws/aws-sdk-go-v2/credentials v1.19.16 -> v1.19.23
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 -> v1.18.29
- github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.2.9 new
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 -> v1.4.29
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 -> v2.7.29
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 -> v1.4.30
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 -> v1.13.12
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 -> v1.9.22
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 -> v1.13.29
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 -> v1.19.29
- github.com/aws/aws-sdk-go-v2/service/s3 v1.89.1 -> v1.103.3
- github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 -> v1.1.5
- github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 -> v1.31.3
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.21 -> v1.36.6
- github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 -> v1.43.3
- github.com/aws/smithy-go v1.25.1 -> v1.27.2
- github.com/containerd/containerd/v2 v2.2.3 -> v2.2.4
- github.com/containerd/continuity v0.4.5 -> v0.5.0
- github.com/containerd/nydus-snapshotter v0.15.13 -> v0.15.15
- github.com/containerd/platforms v1.0.0-rc.2 -> v1.0.0-rc.4
- github.com/containerd/typeurl/v2 v2.2.3 -> v2.3.0
- github.com/docker/cli v29.4.3 -> v29.5.3
- github.com/docker/docker-credential-helpers v0.9.5 -> v0.9.8
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 -> v2.29.0
- github.com/moby/sys/mount v0.3.4 -> fc52b7222d0b
- github.com/moby/sys/sequential v0.6.0 -> v0.7.0
- github.com/opencontainers/selinux v1.13.1 -> v1.15.1
- github.com/pelletier/go-toml/v2 v2.2.4 -> v2.3.1
- github.com/tonistiigi/fsutil a2aa163d723f -> 0257b3308df4
- github.com/urfave/cli/v3 v3.9.0 new
- github.com/vbatts/tar-split v0.12.2 -> v0.12.3
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 -> v0.69.0
- go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.68.0 -> v0.69.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 -> v0.69.0
- go.opentelemetry.io/otel v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/metric v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/sdk v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/sdk/metric v1.43.0 -> v1.44.0
- go.opentelemetry.io/otel/trace v1.43.0 -> v1.44.0
- go.yaml.in/yaml/v2 v2.4.3 -> v2.4.4
- golang.org/x/exp df9299821621 -> 055de637280b
- google.golang.org/genproto/googleapis/api 6f92a3bedf2d -> 3dc84a4a5aaa
- google.golang.org/genproto/googleapis/rpc 6f92a3bedf2d -> 3dc84a4a5aaa
- google.golang.org/grpc v1.80.0 -> v1.81.1
Previous release can be found at v0.30.0