Welcome to the v3.1.0 release of registry!
This is a stable release
Please try out the release binaries and report any issues at https://github.com/distribution/distribution/issues.
Notable Changes
- Fixes CVE-2026-35172
- Fixes CVE-2026-33540
- Adds support for tag pagination (#4360, [#4353])
- Fixes default credentials in Azure storage provider (#4619)
- Drops support for go1.23 and go1.24 and updates to go1.25
See the full changelog below for the full list of changes.
What's Changed
- docs: Update to refer to new image tag v3 by @schanzel in https://github.com/distribution/distribution/pull/4373
- Fix default_credentials in azure storage provider by @switchboardOp in https://github.com/distribution/distribution/pull/4619
- chore: make function comment match function name by @closeobserve in https://github.com/distribution/distribution/pull/4622
- build(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/distribution/distribution/pull/4625
- fix: implement JWK thumbprint for Ed25519 public keys by @zhangyoufu in https://github.com/distribution/distribution/pull/4626
- fix: Annotate code block from validation.indexes configuration docs by @anzoman in https://github.com/distribution/distribution/pull/4629
- feat: extract redis config to separate struct by @shanduur in https://github.com/distribution/distribution/pull/4620
- Fix: resolve issue [#4478] by using a temporary file for non-append writes by @onporat in https://github.com/distribution/distribution/pull/4624
- build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4645
- docs: Add note about
OTEL_TRACES_EXPORTERby @jcpunk in https://github.com/distribution/distribution/pull/4669 - fix: set OTEL traces to disabled by default by @jcpunk in https://github.com/distribution/distribution/pull/4671
- Fix markdown syntax for OTEL traces link in docs by @shantanoo-desai in https://github.com/distribution/distribution/pull/4676
- Switch UUIDs to UUIDv7 by @binaryfire in https://github.com/distribution/distribution/pull/4666
- refactor: replace map iteration with maps.Copy/Clone by @whosehang in https://github.com/distribution/distribution/pull/4632
- s3-aws: fix build for 386 by @ChenQi1989 in https://github.com/distribution/distribution/pull/4642
- docs: Add OpenTelemetry links to quickstart docs (#4270) by @dpw13 in https://github.com/distribution/distribution/pull/4640
- Fix S3 driver loglevel param by @milosgajdos in https://github.com/distribution/distribution/pull/4617
- Fixed data race in TestSchedule test by @horoshev in https://github.com/distribution/distribution/pull/4647
- Fixes [#4683] - uses X/Y instead of Gx/Gy for thumbprint of ecdsa keys by @gpgenaiz in https://github.com/distribution/distribution/pull/4684
- build(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4687
- Fix broken link to Docker Hub fair use policy by @Klikini in https://github.com/distribution/distribution/pull/4688
- fix(registry/handlers/app): redis CAs by @ChandonPierre in https://github.com/distribution/distribution/pull/4668
- build(deps): bump actions/labeler from 5 to 6 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4694
- build(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4693
- build(deps): bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4691
- build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4706
- build(deps): bump github/codeql-action from 3.26.5 to 4.30.7 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4710
- build(deps): bump github/codeql-action from 4.30.7 to 4.30.8 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4714
- chore: labeler: add area/client mapping for internal/client/** by @artem-tkachuk in https://github.com/distribution/distribution/pull/4716
- client: add Accept headers to Exists() HEAD by @artem-tkachuk in https://github.com/distribution/distribution/pull/4715
- feat(registry): Make graceful shutdown test robust by @Sumedhvats in https://github.com/distribution/distribution/pull/4720
- fix(registry): Correct log formatting for upstream challenge by @Sumedhvats in https://github.com/distribution/distribution/pull/4721
- build(deps): bump github/codeql-action from 4.30.8 to 4.30.9 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4722
- build(deps): bump github/codeql-action from 4.30.9 to 4.31.3 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4735
- refactor: remove redundant variable declarations in for loops by @efcking in https://github.com/distribution/distribution/pull/4741
- "should" -> "must" regarding redis eviction policy by @dpedu in https://github.com/distribution/distribution/pull/4742
- build(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4744
- Incorrect warning hint by @nkaaf in https://github.com/distribution/distribution/pull/4708
- Add return error when list object by @tranthang2404 in https://github.com/distribution/distribution/pull/4753
- build(deps): bump actions/checkout from 5.0.1 to 6.0.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4745
- build(deps): bump peter-evans/dockerhub-description from 4 to 5 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4707
- fix: Logging regression for manifest HEAD requests by @tcuthbert in https://github.com/distribution/distribution/pull/4756
- Add boolean parsing util by @1raghavmahajan in https://github.com/distribution/distribution/pull/4763
- Expose
useFIPSEndpointfor S3 by @1raghavmahajan in https://github.com/distribution/distribution/pull/4764 - Add Cloudfleet Container Registry to adopters by @cloudfleet-tech in https://github.com/distribution/distribution/pull/4765
- fix(ci): Fix broken Azure e2e storage tests by @milosgajdos in https://github.com/distribution/distribution/pull/4767
- BUG: Fix notification filtering to work with actions when mediatypes is empty by @acallejaszu in https://github.com/distribution/distribution/pull/4730
- build(deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4761
- build(deps): bump actions/upload-artifact from 4.6.2 to 6.0.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4760
- build(deps): bump github/codeql-action from 4.31.3 to 4.31.10 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4766
- build(deps): bump github/codeql-action from 4.31.10 to 4.32.2 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4778
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4768
- update golangci-lint to v2.9 and fix linting issues by @thaJeztah in https://github.com/distribution/distribution/pull/4780
- update to go1.25.7, alpine 3.23, xx v1.9.0 by @thaJeztah in https://github.com/distribution/distribution/pull/4781
- vendor: github.com/sirupsen/logrus v1.9.4 by @thaJeztah in https://github.com/distribution/distribution/pull/4783
- vendor: update golang.org/x/* dependencies by @thaJeztah in https://github.com/distribution/distribution/pull/4782
- vendor: github.com/docker/docker-credential-helpers v0.9.5 by @thaJeztah in https://github.com/distribution/distribution/pull/4785
- vendor: github.com/opencontainers/image-spec v1.1.1 by @thaJeztah in https://github.com/distribution/distribution/pull/4786
- vendor: github.com/klauspost/compress v1.18.4 by @thaJeztah in https://github.com/distribution/distribution/pull/4787
- fix: prefer otel variables over hard coded service name by @kub3let in https://github.com/distribution/distribution/pull/4771
- vendor: github.com/spf13/cobra v1.10.2 by @thaJeztah in https://github.com/distribution/distribution/pull/4789
- vendor: github.com/bshuster-repo/logrus-logstash-hook v1.1.0 by @thaJeztah in https://github.com/distribution/distribution/pull/4788
- fix: sync parent dir to ensure data is reliably stored by @ningmingxiao in https://github.com/distribution/distribution/pull/4774
- modernize code by @thaJeztah in https://github.com/distribution/distribution/pull/4784
- vendor: github.com/docker/go-events 605354379745 by @thaJeztah in https://github.com/distribution/distribution/pull/4791
- vendor: github.com/go-jose/go-jose/v4 v4.1.3 by @thaJeztah in https://github.com/distribution/distribution/pull/4790
- build(deps): bump github/codeql-action from 4.32.2 to 4.32.5 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4806
- build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4807
- build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4800
- build(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4811
- build(deps): bump docker/bake-action from 6 to 7 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4809
- build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4810
- fix: nil-check scheduler in
proxyingRegistry.Close()by @joonas in https://github.com/distribution/distribution/pull/4805 - fix: set MD5 on GCS writer before first
Writecall inputContentby @joonas in https://github.com/distribution/distribution/pull/4803 - docs: pull through cache will pull from remote multiple times by @yiyun-sj in https://github.com/distribution/distribution/pull/4664
- Update s3.md regionendpoint option by @Alexsandr-Random in https://github.com/distribution/distribution/pull/4534
- chore(deps): Bump Go to latest 1.25 in CI workflows and go.mod by @milosgajdos in https://github.com/distribution/distribution/pull/4819
- fix: correct Ed25519 JWK thumbprint
ktyfrom"OTP"to"OKP"by @joonas in https://github.com/distribution/distribution/pull/4801 - Update vacuum.go by @wutongjie23hao in https://github.com/distribution/distribution/pull/4610
- Opt: refector tag list pagination support (stage 1) by @njucjc in https://github.com/distribution/distribution/pull/4360
- Correctly match environment variables to YAML-inlined structs in configuration by @evanebb in https://github.com/distribution/distribution/pull/4639
- Enable Redis TLS without client certificates by @omartrigui in https://github.com/distribution/distribution/pull/4770
- build(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4826
- build(deps): bump github/codeql-action from 4.32.5 to 4.34.1 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4823
- fix(registry/proxy): use detached context when flushing write buffer by @ChandonPierre in https://github.com/distribution/distribution/pull/4793
- ci: pin actions and apply zizmor auto-fixes by @thaJeztah in https://github.com/distribution/distribution/pull/4831
- build(deps): bump actions/setup-go from 6.3.0 to 6.4.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4833
- build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/distribution/distribution/pull/4837
- chore(app): warn when partial TLS config is used in Redis by @milosgajdos in https://github.com/distribution/distribution/pull/4838
- feat(registry): enhance authentication checks in htpasswd implementation by @mnixry in https://github.com/distribution/distribution/pull/4758
- Opt: refactor tag list pagination support by @njucjc in https://github.com/distribution/distribution/pull/4353
- build(deps): bump codecov/codecov-action from 5.5.4 to 6.0.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4836
- build(deps): bump actions/configure-pages from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/distribution/distribution/pull/4834
- fix(vendor): fix broke vendor validation by @milosgajdos in https://github.com/distribution/distribution/pull/4839
- chore(ci): Prep for v3.1 release by @milosgajdos in https://github.com/distribution/distribution/pull/4841
New Contributors
- @switchboardOp made their first contribution in https://github.com/distribution/distribution/pull/4619
- @closeobserve made their first contribution in https://github.com/distribution/distribution/pull/4622
- @zhangyoufu made their first contribution in https://github.com/distribution/distribution/pull/4626
- @anzoman made their first contribution in https://github.com/distribution/distribution/pull/4629
- @onporat made their first contribution in https://github.com/distribution/distribution/pull/4624
- @jcpunk made their first contribution in https://github.com/distribution/distribution/pull/4669
- @shantanoo-desai made their first contribution in https://github.com/distribution/distribution/pull/4676
- @binaryfire made their first contribution in https://github.com/distribution/distribution/pull/4666
- @whosehang made their first contribution in https://github.com/distribution/distribution/pull/4632
- @ChenQi1989 made their first contribution in https://github.com/distribution/distribution/pull/4642
- @dpw13 made their first contribution in https://github.com/distribution/distribution/pull/4640
- @horoshev made their first contribution in https://github.com/distribution/distribution/pull/4647
- @gpgenaiz made their first contribution in https://github.com/distribution/distribution/pull/4684
- @Klikini made their first contribution in https://github.com/distribution/distribution/pull/4688
- @ChandonPierre made their first contribution in https://github.com/distribution/distribution/pull/4668
- @artem-tkachuk made their first contribution in https://github.com/distribution/distribution/pull/4716
- @Sumedhvats made their first contribution in https://github.com/distribution/distribution/pull/4720
- @efcking made their first contribution in https://github.com/distribution/distribution/pull/4741
- @dpedu made their first contribution in https://github.com/distribution/distribution/pull/4742
- @nkaaf made their first contribution in https://github.com/distribution/distribution/pull/4708
- @tranthang2404 made their first contribution in https://github.com/distribution/distribution/pull/4753
- @tcuthbert made their first contribution in https://github.com/distribution/distribution/pull/4756
- @1raghavmahajan made their first contribution in https://github.com/distribution/distribution/pull/4763
- @cloudfleet-tech made their first contribution in https://github.com/distribution/distribution/pull/4765
- @acallejaszu made their first contribution in https://github.com/distribution/distribution/pull/4730
- @kub3let made their first contribution in https://github.com/distribution/distribution/pull/4771
- @ningmingxiao made their first contribution in https://github.com/distribution/distribution/pull/4774
- @joonas made their first contribution in https://github.com/distribution/distribution/pull/4805
- @yiyun-sj made their first contribution in https://github.com/distribution/distribution/pull/4664
- @Alexsandr-Random made their first contribution in https://github.com/distribution/distribution/pull/4534
- @wutongjie23hao made their first contribution in https://github.com/distribution/distribution/pull/4610
- @njucjc made their first contribution in https://github.com/distribution/distribution/pull/4360
- @omartrigui made their first contribution in https://github.com/distribution/distribution/pull/4770
- @mnixry made their first contribution in https://github.com/distribution/distribution/pull/4758
Full Changelog: https://github.com/distribution/distribution/compare/v3.0.0...v3.1.0