Repository navigation
Releases
v0.25.2
What's Changed
- [release-0.25] 🐛 Fix SubResourceCreateOptions.ApplyToSubResourceCreate by @k8s-infra-cherrypick-robot in #3600
- [release-0.25] ✨ Add metrics handler options by @k8s-infra-cherrypick-robot in #3603
- [release-0.25] 📖 Document that ReadYourWrite doesn't work correctly with > 1 Namespace by @k8s-infra-cherrypick-robot in #3610
- [release-0.25] ✨ Add a metric for the readyourwite consistency wait duration by @k8s-infra-cherrypick-robot in #3613
Full Changelog: v0.25.1...v0.25.2
v0.25.1
What's Changed
- 🐛 priorityqueue: fix data race on []*item in logState by @k8s-infra-cherrypick-robot in #3593
- 🐛 client: fix subresource create RV parse error under read-your-writes consistency by @k8s-infra-cherrypick-robot in #3596
Full Changelog: v0.25.0...v0.25.1
v0.25.0
Highlights
This version of controller-runtime introduces a new experimental ReadYourWritesConsistency feature,
which ensures that all writes are reflected in subsequent reads from the default cache-backed client.
Stale client reads are arguably the biggest source of friction and sometimes bugs for controller
authors, providing this functionality at the library level eliminates that class of problems entirely.
Try it out by setting Client.EnableReadYourWritesConsistency: new(true) in your manager
and leave any feedback you may have on the tracking issue.
⚠️ Breaking Changes
- Dependencies: Bump to k8s.io/* v1.37 (#3579 #3575 #3567 #3561 #3547 #3529 #3524)
- Events: Add new EventRecorder interface (#3509)
✨ New Features
- Client: Add a read-your-own-writes client (#3472)
- Fakeclient: Add WithGlobalResourceVersionCounter (#3581)
- Fakeclient: Add scale subresource support for Apply (#3569)
- Metrics: Allow opt-in for client-go REST client metrics (#3510)
- Metrics: Allow overriding client-go REST client metrics latency histogram buckets (#3573)
- Source: Add TypedInformer source (#3520)
- Webhooks: Allow to disable the webhook server by setting the port to -1 (#3481)
🐛 Bug Fixes
- Cache: Fix goroutine leaks in cache Start() methods (#3565)
- Client: Fix regression in Apply typed error handling (#3515)
- Controller: Unlock when Controller.Start() returns with error (#3545)
- Envtest: Fix envtest process stop on Windows (#3519)
- Fakeclient: Allow updating managedFields through Update (#3585)
- Fakeclient: Fix AddIndex panic when wrapped with an interceptor (#3583)
- Fakeclient: Fix PartialObjectMeta handling (#3571)
- Fakeclient: Support scale subresource get/update for unstructured objects (#3546)
- Fakeclient: Update object on subresource apply (#3570)
- PriorityQueue: Fix PriorityQueue deadlock on shutdown (#3540)
- Testing/Process: Fix process Stop timeout error handling (#3523)
🌱 Others
- LeaderElection: Pass Managers Logger to Leader Elector via Context (#3576)
🌱 CI & linters
- Add copyright header validation & fix findings (#3544)
- Bump to golangci-lint v2.12.1 (#3514)
- Bump to golangci-lint v2.12.2 (#3532)
- Bump to golangci-lint v2.13.1 (#3580)
- Declare contents: read permissions for pr-verify action (#3517)
- Revert "Migrate away from custom GitHub action approval workflow" (#3528)
📖 Additionally, there have been 7 contributions to our documentation and book. (#3513, #3521, #3531, #3551, #3562, #3563, #3566)
Dependencies
Added
- github.com/go-openapi/swag/cmdutils: v0.27.1
- github.com/go-openapi/swag/conv: v0.27.1
- github.com/go-openapi/swag/fileutils: v0.27.1
- github.com/go-openapi/swag/jsonutils/fixtures_test: v0.27.1
- github.com/go-openapi/swag/jsonutils: v0.27.1
- github.com/go-openapi/swag/loading: v0.27.1
- github.com/go-openapi/swag/mangling: v0.27.1
- github.com/go-openapi/swag/netutils: v0.27.1
- github.com/go-openapi/swag/pools: v0.27.1
- github.com/go-openapi/swag/stringutils: v0.27.1
- github.com/go-openapi/swag/typeutils: v0.27.1
- github.com/go-openapi/swag/yamlutils: v0.27.1
- github.com/go-openapi/testify/enable/yaml/v2: v2.6.0
- github.com/go-openapi/testify/v2: v2.6.0
Changed
- github.com/Azure/go-ansiterm: 306776e → faa5f7b
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.30.0 → v1.32.0
- github.com/antlr4-go/antlr/v4: v4.13.0 → v4.13.1
- github.com/cncf/xds/go: ee656c7 → dba9d58
- github.com/envoyproxy/go-control-plane/envoy: v1.36.0 → v1.37.0
- github.com/envoyproxy/protoc-gen-validate: v1.3.0 → v1.3.3
- github.com/fxamacker/cbor/v2: v2.9.0 → v2.9.1
- github.com/go-jose/go-jose/v4: v4.1.3 → v4.1.4
- github.com/go-openapi/jsonpointer: v0.21.0 → v1.0.0
- github.com/go-openapi/jsonreference: v0.20.2 → v1.0.0
- github.com/go-openapi/swag: v0.23.0 → v0.27.1
- github.com/golang-jwt/jwt/v5: v5.3.0 → v5.3.1
- github.com/google/cel-go: v0.26.0 → v0.29.2
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.27.7 → v2.29.0
- github.com/klauspost/compress: v1.18.0 → v1.19.0
- github.com/moby/term: v0.5.0 → v0.5.2
- github.com/prometheus/client_golang: v1.23.2 → v1.24.0
- github.com/prometheus/common: v0.67.5 → v0.70.0
- github.com/prometheus/procfs: v0.19.2 → v0.21.1
- github.com/sirupsen/logrus: v1.9.3 → v1.9.4
- github.com/spf13/pflag: v1.0.9 → v1.0.10
- github.com/stretchr/objx: v0.5.2 → v0.5.3
- go.etcd.io/bbolt: v1.4.3 → v1.5.0
- go.etcd.io/etcd/api/v3: v3.6.8 → v3.7.0
- go.etcd.io/etcd/client/pkg/v3: v3.6.8 → v3.7.0
- go.etcd.io/etcd/client/v3: v3.6.8 → v3.7.0
- go.etcd.io/etcd/pkg/v3: v3.6.8 → v3.7.0
- go.etcd.io/etcd/server/v3: v3.6.8 → v3.7.0
- go.etcd.io/raft/v3: v3.6.0 → v3.7.0
- go.opentelemetry.io/contrib/detectors/gcp: v1.39.0 → v1.43.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.65.0 → v0.68.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.65.0 → v0.69.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.40.0 → v1.44.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.40.0 → v1.44.0
- go.opentelemetry.io/otel/metric: v1.41.0 → v1.44.0
- go.opentelemetry.io/otel/sdk/metric: v1.40.0 → v1.44.0
- go.opentelemetry.io/otel/sdk: v1.40.0 → v1.44.0
- go.opentelemetry.io/otel/trace: v1.41.0 → v1.44.0
- go.opentelemetry.io/otel: v1.41.0 → v1.44.0
- go.opentelemetry.io/proto/otlp: v1.9.0 → v1.10.0
- go.yaml.in/yaml/v2: v2.4.3 → v2.4.4
- golang.org/x/crypto: v0.47.0 → v0.54.0
- golang.org/x/exp: 944ab1f → 746e56f
- golang.org/x/mod: v0.32.0 → v0.37.0
- golang.org/x/net: v0.49.0 → v0.57.0
- golang.org/x/oauth2: v0.34.0 → v0.36.0
- golang.org/x/sync: v0.19.0 → v0.22.0
- golang.org/x/sys: v0.40.0 → v0.47.0
- golang.org/x/telemetry: bd525da → 59b4966
- golang.org/x/term: v0.39.0 → v0.45.0
- golang.org/x/text: v0.33.0 → v0.40.0
- golang.org/x/time: v0.14.0 → v0.15.0
- golang.org/x/tools: v0.41.0 → v0.47.0
- gonum.org/v1/gonum: v0.16.0 → v0.17.0
- google.golang.org/genproto/googleapis/api: 8636f87 → 3dc84a4
- google.golang.org/genproto/googleapis/rpc: 8636f87 → 3dc84a4
- google.golang.org/grpc: v1.79.3 → v1.82.1
- k8s.io/api: v0.36.0 → v0.37.0
- k8s.io/apiextensions-apiserver: v0.36.0 → v0.37.0
- k8s.io/apimachinery: v0.36.0 → v0.37.0
- k8s.io/apiserver: v0.36.0 → v0.37.0
- k8s.io/client-go: v0.36.0 → v0.37.0
- k8s.io/code-generator: v0.36.0 → v0.37.0
- k8s.io/component-base: v0.36.0 → v0.37.0
- k8s.io/gengo/v2: ec3ebc5 → 25e2208
- k8s.io/kms: v0.36.0 → v0.37.0
- k8s.io/kube-openapi: 43fb72c → d427ff9
- k8s.io/streaming: v0.36.0 → v0.37.0
- k8s.io/utils: b8788ab → be93311
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.34.0 → v0.36.0
- sigs.k8s.io/structured-merge-diff/v6: v6.3.2 → v6.4.2
Removed
- github.com/creack/pty: v1.1.9
- github.com/gogo/protobuf: v1.3.2
- github.com/josharian/intern: v1.0.0
- github.com/kr/pty: v1.1.1
- github.com/mailru/easyjson: v0.7.7
- github.com/matttproud/golang_protobuf_extensions: v1.0.1
- github.com/stoewer/go-strcase: v1.3.0
_Thanks to all our...
v0.24.1
What's Changed
- [release-0.24] 🐛 Fix regression in Apply typed error handling by @k8s-infra-cherrypick-robot in #3516
Full Changelog: v0.24.0...v0.24.1
v0.24.0
⚠️ Breaking Changes
🐛 Bug Fixes
- Cache: Fix IndexField blocking until informer is synced (#3445)
- Cache: Wait for cache sync when ReaderFailOnMissingInformer is true (#3425)
- Client: Update typed ApplyConfigurations with server response (#3475)
- Fakeclient: Fix SSA status patch resource version check (#3443)
- Fakeclient: Fix panic when using CRs with embedded pointer structs (#3431)
- Fakeclient: Fix status apply if existing object has managedFields set (#3430)
- Fakeclient: Retry GenerateName on AlreadyExists collisions (#3498)
- HTTP servers: Wire up base context into http servers (#3452)
🌱 Others
- Builder/Webhooks: Remove deprecated custom path function (#3465)
- Cache: Test cache reader waits for cache sync (#3434)
- Certwatcher: Deflake certwatcher tests (#3457)
- Dependencies: Use forked version of btree (#3449)
- Envtest: Ensure envtest stops the whole process group (#3447)
- Logging: Add missing space in zap-log-level flag description (#3492)
- Misc: Adopt new(x) over ptr.To(x) and re-enable newexpr lint (#3489)
- Owners: Cleanup (#3453)
- Recorder: Add logger into context for structured logging (#3454)
- Recorder: Switch to
StartLoggingfor event debug logs (#3451) - Scheme: Deprecate the scheme builder (#3461)
- Source/Kind: Improve logging for dynamic type kind source (#3494)
- Webhooks: Reduce memory usage of default webhooks (#3463 #3468)
🌱 CI & linters
- Chore: Update golangci-lint version to v2.8.0 (#3448)
- Chore: Update golangci-lint version to v2.10.1 (#3470)
- Chore: Update golangci-lint version to v2.11.3 (#3482)
- Migrate away from custom GitHub action approval workflow (#3491)
- Release: Auto-create git tags for the
tools/setup-envtestsubmodule (#3476)
📖 Additionally, there has been 1 contribution to our documentation. (#3477)
Dependencies
Added
- github.com/cenkalti/backoff/v5: v5.0.3
- gonum.org/v1/gonum: v0.16.0
- k8s.io/streaming: v0.36.0
Changed
- cel.dev/expr: v0.24.0 → v0.25.1
- cloud.google.com/go/compute/metadata: v0.6.0 → v0.9.0
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.26.0 → v1.30.0
- github.com/alecthomas/units: b94a6e3 → 0f3dac3
- github.com/cncf/xds/go: 2f00578 → ee656c7
- github.com/coreos/go-oidc: v2.3.0+incompatible → v2.5.0+incompatible
- github.com/coreos/go-systemd/v22: v22.5.0 → v22.7.0
- github.com/davecgh/go-spew: v1.1.1 → d8f796a
- github.com/emicklei/go-restful/v3: v3.12.2 → v3.13.0
- github.com/envoyproxy/go-control-plane/envoy: v1.32.4 → v1.36.0
- github.com/envoyproxy/go-control-plane: v0.13.4 → v0.14.0
- github.com/envoyproxy/protoc-gen-validate: v1.2.1 → v1.3.0
- github.com/go-jose/go-jose/v4: v4.0.4 → v4.1.3
- github.com/golang-jwt/jwt/v5: v5.2.2 → v5.3.0
- github.com/golang/glog: v1.2.4 → v1.2.5
- github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: v1.0.1 → v1.1.0
- github.com/grpc-ecosystem/go-grpc-middleware/v2: v2.3.0 → v2.3.3
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.26.3 → v2.27.7
- github.com/moby/spdystream: v0.5.0 → v0.5.1
- github.com/onsi/ginkgo/v2: v2.27.2 → v2.27.4
- github.com/onsi/gomega: v1.38.2 → v1.39.0
- github.com/pmezard/go-difflib: v1.0.0 → 5d4384e
- github.com/prometheus/common: v0.66.1 → v0.67.5
- github.com/prometheus/procfs: v0.16.1 → v0.19.2
- github.com/spf13/cobra: v1.10.0 → v1.10.2
- github.com/spiffe/go-spiffe/v2: v2.5.0 → v2.6.0
- go.etcd.io/etcd/api/v3: v3.6.5 → v3.6.8
- go.etcd.io/etcd/client/pkg/v3: v3.6.5 → v3.6.8
- go.etcd.io/etcd/client/v3: v3.6.5 → v3.6.8
- go.etcd.io/etcd/pkg/v3: v3.6.5 → v3.6.8
- go.etcd.io/etcd/server/v3: v3.6.5 → v3.6.8
- go.opentelemetry.io/auto/sdk: v1.1.0 → v1.2.1
- go.opentelemetry.io/contrib/detectors/gcp: v1.34.0 → v1.39.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.60.0 → v0.65.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.61.0 → v0.65.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.34.0 → v1.40.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.34.0 → v1.40.0
- go.opentelemetry.io/otel/metric: v1.36.0 → v1.41.0
- go.opentelemetry.io/otel/sdk/metric: v1.36.0 → v1.40.0
- go.opentelemetry.io/otel/sdk: v1.36.0 → v1.40.0
- go.opentelemetry.io/otel/trace: v1.36.0 → v1.41.0
- go.opentelemetry.io/otel: v1.36.0 → v1.41.0
- go.opentelemetry.io/proto/otlp: v1.5.0 → v1.9.0
- go.uber.org/zap: v1.27.0 → v1.27.1
- golang.org/x/crypto: v0.45.0 → v0.47.0
- golang.org/x/exp: 8a7402a → 944ab1f
- golang.org/x/mod: v0.29.0 → v0.32.0
- golang.org/x/net: v0.47.0 → v0.49.0
- golang.org/x/oauth2: v0.30.0 → v0.34.0
- golang.org/x/sync: v0.18.0 → v0.19.0
- golang.org/x/sys: v0.38.0 → v0.40.0
- golang.org/x/telemetry: 078029d → bd525da
- golang.org/x/term: v0.37.0 → v0.39.0
- golang.org/x/text: v0.31.0 → v0.33.0
- golang.org/x/time: v0.9.0 → v0.14.0
- golang.org/x/tools/go/expect: v0.1.0-deprecated → v0.1.1-deprecated
- golang.org/x/tools: v0.38.0 → v0.41.0
- google.golang.org/genproto/googleapis/api: a0af3ef → 8636f87
- google.golang.org/genproto/googleapis/rpc: 200df99 → 8636f87
- google.golang.org/grpc: v1.72.2 → v1.79.3
- google.golang.org/protobuf: v1.36.8 → f2248ac
- k8s.io/api: v0.35.0 → v0.36.0
- k8s.io/apiextensions-apiserver: v0.35.0 → v0.36.0
- k8s.io/apimachinery: v0.35.0 → v0.36.0
- k8s.io/apiserver: v0.35.0 → v0.36.0
- k8s.io/client-go: v0.35.0 → v0.36.0
- k8s.io/code-generator: v0.35.0 → v0.36.0
- k8s.io/component-base: v0.35.0 → v0.36.0
- k8s.io/klog/v2: v2.130.1 → v2.140.0
- k8s.io/kms: v0.35.0 → v0.36.0
- k8s.io/kube-openapi: 589584f → 43fb72c
- k8s.io/utils: bc988d5 → b8788ab
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.31.2 → v0.34.0
- sigs.k8s.io/structured-merge-diff/v6: v6.3.0 → v6.3.2
Removed
- github.com/cenkalti/backoff/v4: v4.3.0
- github.com/gregjones/httpcache: 901d907
- github.com/grpc-ecosystem/go-grpc-prometheus: v1.2.0
- github.com/zeebo/errs: v1.4.0
- golang.org/x/xerrors: 9bdfabe
Thanks to all our contributors! 😊
v0.23.3
What's Changed
- 🐛 Ensure DefaulterRemoveUnknownOrOmitableFields is still working even if objects are equal by @k8s-infra-cherrypick-robot in #3469
Full Changelog: v0.23.2...v0.23.3
v0.23.2
What's Changed
- 🐛 Fix fake client's SSA status patch resource version check by @k8s-infra-cherrypick-robot in #3446
- ✨ Reduce memory usage of default webhooks by @k8s-infra-cherrypick-robot in #3467
Full Changelog: v0.23.1...v0.23.2
v0.23.1
What's Changed
- 🐛 Cache reader: Wait for cache sync when ReaderFailOnMissingInformer is true by @k8s-infra-cherrypick-robot in #3433
- 🐛 Fix panic when using CRs with embedded pointer structs by @k8s-infra-cherrypick-robot in #3436
- 🌱 Test cache reader waits for cache sync by @k8s-infra-cherrypick-robot in #3438
- 🐛 Fakeclient: Fix status apply if existing object has managedFields set by @k8s-infra-cherrypick-robot in #3437
Full Changelog: v0.23.0...v0.23.1
v0.23.0
🔆 Highlights
- Client: Add subresource Apply support by @alvaroaleman in #3321
- Conversion: Enable implementation of conversion outside of API packages by @sbueringer in #3335
- Priorityqueue: Various improvements, bug fixes and now enabled per default
- Webhooks: Generic Validator and Defaulter by @alvaroaleman in #3360
⚠️ Breaking changes
- Dependencies: Update to k8s.io/* v1.35 by @alvaroaleman @dongjiang1989 @kannon92 (#3316, #3349, #3386, #3391, #3401)
- Client: Add subresource Apply support by @alvaroaleman in #3321
- Events: Migration to the new events API by @clebs in #3262
- Using the new
GetEventRecorderForrequires updating your rbac for events to use theevents.k8s.ioapiGroup rather than the `` (core) apiGroup
- Using the new
- Fakeclient: Set ResourceVersion for SSA Create by @alvaroaleman in #3311
- Webhooks: Generic Validator and Defaulter by @alvaroaleman in #3360
- Existing code of the form
builder.WebhookManagedBy(mgr).For(&corev1.Deployment{})has to be changed tobuilder.WebhookManagedBy(mgr, &appsv1.Deployment{}) - Existing webhook implementations have to be changed to take the concrete object rather than
runtime.Object, for example fromValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)toValidateCreate(ctx context.Context, obj *appsv1.Deployment) (admission.Warnings, error)
- Existing code of the form
✨ Features
- Cache: Allow fine-granular SyncPeriod configuration by @sbueringer in #3376
- Client: Add FieldOwner option to client.Options by @aerfio in #3389
- Client: Add FieldValidation option to client.Options by @aerfio in #3393
- Conversion: Enable implementation of conversion outside of API packages by @sbueringer in #3335
- Metrics: Add controller_runtime_reconcile_timeouts_total metric to track ReconciliationTimeout timeouts by @godwinpang in #3382
- Priorityqueue: Add optional Priority field to reconcile.Result by @sbueringer in #3333
- Priorityqueue: Enable per default by @sbueringer in #3332
- Priorityqueue: Use a buffer to optimize priority queue AddWithOpts performance by @zach593 in #3415
- Source/Kind: Delay reconciliation until handlers sync by @GonzaloLuminary in #3406
- Webhooks: Add WithContextFunc to WebhookBuilder by @dmvolod in #3324
🐛 Bugfixes
- Client: Allow SSA after normal resource creation by @filipcirtog in #3346
- Client: Fix List in namespaced client to list objects that are cluster scoped by @troy0820 in #3351 #3353
- Envtest: Respect pre-configured binary paths in ControlPlane by @mzhaom in #3372
- Fakeclient: Fix a number of bugs when updating through apply by @alvaroaleman in #3319
- FakeClient: Fix Apply with Unstructured ApplyConfiguration and resourceVersion unset by @sbueringer in #3403
- Fakeclient: Fix SSA after List with non-list kind by @sbueringer in #3364
- Fakeclient: Panic when trying to build more than one instance of fake.ClientBuilder by @troy0820 in #3314
- Leaderelection: Copy all parent context values to leader elector's context by @msudheendra-cflt in #3327
- Metrics: Adding missing exponential buckets on webhook native histogram by @brito-rafa in #3411
- Priorityqueue: Do FIFO ordering within priorities and not across by @zach593 in #3408
- Priorityqueue: Don't block on Get when queue is shutdown (2nd try) by @sbueringer in #3337
- Priorityqueue: Ensure priority queue always returns high-priority items first by @moritzmoe in #3330
- Priorityqueue: Fix TestWhenAddingMultipleItemsWithRatelimitTrueTheyDontAffectEachOther by @zach593 in #3395
- Priorityqueue: Limit depthWithPriorityMetric cardinality to 25 by @alvaroaleman #3419
- Priorityqueue: Properly sync the
waitermanipulation by @fossedihelm in #3368 - setup-envtest: Select the newest Kubernetes by default by @cbandy in #3380
- testing/addr: Prevent possible leak by avoiding defer in loop by @s-z-z in #3367
🌱 Other
- Dependencies: Update controller-tools to 0.20.0 and fix lint by @dongjiang1989 in #3405
- Linter: Add depguard golangci-linter for forbid sort pkg by @dongjiang1989 in #3374
- Linter: Modernize finalizer utils by @tbavelier in #3329
- Linter: Update golangci-lint version and modernize lint by @dongjiang1989 in #3384
- Linter: Update golangci-lint version to v2.4.0 by @dongjiang1989 in #3318
- Linter: Update golangci-lint version to v2.5.0 by @dongjiang1989 in #3323
- Linter: Update golangci-lint version to v2.7.2 by @dongjiang1989 in #3399
- Manager: Deflake should execute the Warmup function test when Warmup group is started by @alvaroaleman in #3356
- Misc: Add CreateOrPatch function in alias.go by @tisonkun in #3375
- Misc: Change
sorttoslicespackage by @dongjiang1989 in #3370 - Misc: Fix typo in unit test name by @s-z-z in #3304
- Misc: Revert deprecation of client.Apply by @sbueringer in #3307
- Priorityqueue: Add and use newQueueWithTimeForwarder by @alvaroaleman in #3336
- Priorityqueue: Add some more tests to the priorityqueue by @alvaroaleman in #3387
- Priorityqueue: Use separate b-trees for ready and non-ready items by @alvaroaleman in #3416
- Priorityqueue: Use synctest by @alvaroaleman in #3350
📖 Documentation
- Add a design for supporting warm replicas by @godwinpang in #3121
- Remove latest from setupenvtest docs by @troy0820 in #3359
- pkg/client/config: Remove outdated doc comments by @haoqixu in #3306
- Update client.Apply example by @aerfio in #3390
- Update
README.md's compatibility matrix forv0.22.x. by @renormalize in #3392
Dependencies
Added
- github.com/Masterminds/semver/v3: v3.4.0
- github.com/gkampitakis/ciinfo: v0.3.2
- github.com/gkampitakis/go-diff: v1.3.2
- github.com/gkampitakis/go-snaps: v0.5.15
- github.com/goccy/go-yaml: v1.18.0
- github.com/joshdk/go-junit: v1.0.0
- github.com/maruel/natural: v1.1.1
- github.com/mfridman/tparse: v0.18.0
- github.com/tidwall/gjson: v1.18.0
- github.com/tidwall/match: v1.1.1
- github.com/tidwall/pretty: v1.2.1
- github.com/tidwall/sjson: v1.2.5
- go.uber.org/automaxprocs: v1.6.0
- golang.org/x/tools/go/expect: v0.1.0-deprecated
- golang.org/x/tools/go/pack...