Releases: IBM/sarama
Version 1.46.3 (2025-10-26)
What's Changed
๐ Fixes
- fix: wrap KError into error returned by IncrementalAlterConfig by @prestona in #3352
- fix: assign sequence when flushing retry buffers by @dnwe in #3362
๐ฆ Dependency updates
- chore(deps): update dependency dominikh/go-tools to v2025 by @renovate[bot] in #3351
- chore(deps): update dependency vearutop/teststat to v0.1.27 by @renovate[bot] in #3350
- fix(deps): update module github.com/klauspost/compress to v1.18.1 by @renovate[bot] in #3355
๐ง Maintenance
Full Changelog: v1.46.2...v1.46.3
Version 1.46.2 (2025-10-10)
What's Changed
A big focus on improving our support for newer protocol versions in this release, particularly supporting a wider range of flexible versions
๐ New Features / Improvements
- chore: support V5 ListOffsets by @dnwe in #3308
- feat: support DeleteGroups V2 protocol by @hindessm in #3320
- feat: support DeleteTopics V4 protocol by @hindessm in #3321
- feat: support CreateTopics V5 protocol by @hindessm in #3322
- feat: support IncrementalAlterConfigs V1 protocol by @hindessm in #3319
- feat: support DescribeGroups V5 protocol by @hindessm in #3331
- feat: support SyncGroup V4 protocol by @hindessm in #3332
- feat: support LeaveGroup V4 protocol by @hindessm in #3334
- feat: support Heartbeat V4 protocol by @hindessm in #3335
- feat: support JoinGroup V6 protocol by @hindessm in #3339
- feat: support DescribeClientQuotas V1 protocol by @dnwe in #3342
๐ Fixes
- fix: update map rather than create a new map by @hindessm in #3302
- fix: metadata_response valid version range by @hindessm in #3304
- fix: add V4 as valid CreateTopicsResponse by @dnwe in #3305
- fix: correct requiredVersion for DescribeLogDirsResponse by @dnwe in #3306
- fix: extend TestAllocateBodyProtocolVersions for more testing by @dnwe in #3307
- fix: non-flexible ElectLeadersRequest V0/V1 encode/decode by @hindessm in #3312
- fix: make alterPartitionReassignmentsBlock consistent by @hindessm in #3313
- fix: correct decodeRequest bytesRead return value by @hindessm in #3314
- fix: decoder issues by @hindessm in #3327
- fix: improve KIP-511 behaviour on older Kafka clusters by @dnwe in #3328
- fix: return correct error when encoding by @hindessm in #3333
- fix: correct ApiVersionsResponse handling of ErrUnsupportedVersion by @dnwe in #3337
๐ฆ Dependency updates
- chore(deps): update ossf/scorecard-action action to v2.4.3 by @renovate[bot] in #3318
- fix(deps): update module golang.org/x/net to v0.46.0 by @renovate[bot] in #3343
๐ง Maintenance
- chore: remove redundant insufficient data checks by @hindessm in #3300
- refactor: use struct rather than map with one entry by @hindessm in #3301
- chore(ci): adopt gotestsum and re-run flakes by @dnwe in #3311
- refactor: Flexible encoding/decoding refactoring by @hindessm in #3317
- chore(fvt): refactor docker-compose and support KRaft by @dnwe in #3323
- fix(fvt): simplify retry using testify's EventuallyWithT by @dnwe in #3324
- chore: add 3.9.1 and 4.1.0 version constants and FVT by @dnwe in #3325
- refactor: get/put for KError by @hindessm in #3326
- refactor: get/put for throttle time ms time.Duration by @hindessm in #3330
- chore(fvt): improve testFuncConsumerGroupMember by @dnwe in #3329
โ Other Changes
Full Changelog: v1.46.1...v1.46.2
Version 1.46.1 (2025-09-18)
Note
The go.mod directive has been bumped to 1.24.0 as the minimum version of Go required for the module. This was necessary to continue to receive updates from some of the third party dependencies that Sarama makes use of.
What's Changed
๐ New Features / Improvements
- feat: support more describe log dirs versions (V2-V4) by @hindessm in #3293
- feat: support V5 ListConsumerGroups protocol by @hindessm in #3292
- feat: add SASLv1 support for Kerberos by @dnwe in #3279
๐ Fixes
๐ฆ Dependency updates
- chore(deps): bump go directive to 1.24.0 and golang.org/x/{crypto,net,sync} by @dependabot[bot] in #3288
- chore(deps): bump the golang-x group across 6 directories with 1 update by @dependabot[bot] in #3291
- chore(deps): bump github.com/stretchr/testify from 1.11.0 to 1.11.1 by @dependabot[bot] in #3274
๐ง Maintenance
- chore: refactor to use modern atomic types by @Sahil-4555 in #3277
- chore: pre-commit autoupdate to latest by @dnwe in #3278
- chore: apply modernize fixes from gopls by @dnwe in #3297
- chore(config): update comments of sarama.Config.Metadata.SingleFlight by @gunli in #3296
- chore(client): update comments of client methods by @gunli in #3295
New Contributors
- @Sahil-4555 made their first contribution in #3277
- @bvalente made their first contribution in #3283
- @gunli made their first contribution in #3296
Full Changelog: v1.46.0...v1.46.1
Version 1.46.0 (2025-08-25)
Note
This release contains significant changes. Notably Sarama will now use the ApiVersionRequest response from each broker to aid in selecting the protocol version to use. The existing Version field in sarama.Config will continue to provide a "pinning" mechanism, but can safely be set to a maximum or higher value than the remote cluster and sarama will sensibly pick compatible versions. There is also a performance improvement relating to MetadataRequests whereby Sarama will avoid having more than a single request to each broker in-flight at any given time. These new (optimal) behaviour is on by default can be opt-ed out via the Metadata.SingleFlight field in Config.
What's Changed
๐ New Features / Improvements
- feat(protocol): negotiate API versions by @trapped in #3209
- feat: option to group metadata refreshes so only one is in-flight at a time by @cupcicm in #3225
- feat: use singleflight metadata by default by @dnwe in #3231
- feat(protocol): support CreateTopicRequest V4 by @dnwe in #3238
- feat: always send ApiVersionsRequest and fallback to v0 by @dnwe in #3234
๐ Fixes
- fix(consumer): stuck on the batch with zero records length by @sterligov in #3221
- fix: sync response header version to clamped request header by @trapped in #3223
- fix(decoder): handle null arrays correctly by @dnwe in #3144
- fix: hardcode lz4 writer blocksize to 64kb by @dnwe in #3258
๐ฆ Dependency updates
- chore(deps): bump the golang-x group across 1 directory with 2 updates by @dependabot[bot] in #3185
- chore(deps): bump the golang-x group across 7 directories with 2 updates by @dependabot[bot] in #3219
- fix(deps): update module golang.org/x/net to v0.43.0 by @renovate[bot] in #3244
- chore(deps): bump the golang-x group across 6 directories with 1 update by @dependabot[bot] in #3262
- chore(deps): update github/codeql-action action to v3.29.9 by @renovate[bot] in #3242
- fix(deps): update github.com/rcrowley/go-metrics digest to 65e299d by @renovate[bot] in #3164
- fix(deps): update module github.com/stretchr/testify to v1.11.0 by @renovate[bot] in #3268
- chore(deps): update docker/bake-action action to v6.9.0 by @renovate[bot] in #3264
๐ง Maintenance
- chore(lint): enable copyloopvar by @alexandear in #3214
- chore: fix inconsistent function name in comment by @stellrust in #3227
- chore(style): refactor compress.go for readability by @dnwe in #3260
- chore: replace unnecessary go-multierror dependency by @bestbug456 in #3243
New Contributors
- @ibm-mend-app[bot] made their first contribution in #3201
- @alexandear made their first contribution in #3214
- @trapped made their first contribution in #3209
- @cupcicm made their first contribution in #3225
- @sterligov made their first contribution in #3221
- @stellrust made their first contribution in #3227
- @bestbug456 made their first contribution in #3243
Full Changelog: v1.45.2...v1.46.0
Version 1.45.2 (2025-05-28)
What's Changed
๐ Fixes
- fix(decoder): use configurable limit for max number of records in a record batch by @rmb938 in #3120
- fix: ensure mock SyncProducer's SendMessage returns msg.Partition instead of 0 by @magiusdarrigo in #3122
- fix: send null instead of empty string when describing default client quotas by @petedannemann in #3128
- fix: improve getMetricName performance by @boekkooi-impossiblecloud in #3156
๐ฆ Dependency updates
- chore(deps): bump github.com/klauspost/compress from 1.17.11 to 1.18.0 by @dependabot in #3103
- chore(deps): bump the golang-x group across 6 directories with 1 update by @dependabot in #3114
- chore(deps): bump the golang-x group across 7 directories with 2 updates by @dependabot in #3121
- chore(deps): bump the go_modules group across 7 directories with 1 update by @dependabot in #3148
- chore(deps): bump the go_modules group across 7 directories with 1 update by @dependabot in #3157
- chore(deps): bump golang.org/x/sync from 0.12.0 to 0.14.0 in the golang-x group across 1 directory by @dependabot in #3161
โ Other Changes
- chore: bump minimum Go version to 1.23.0 by @dnwe in #3113
- fix(ci): bump golangci-lint to v2 by @dnwe in #3160
New Contributors
- @rmb938 made their first contribution in #3120
- @magiusdarrigo made their first contribution in #3122
- @petedannemann made their first contribution in #3128
- @renovate made their first contribution in #3155
- @boekkooi-impossiblecloud made their first contribution in #3156
Full Changelog: v1.45.1...v1.45.2
Version 1.45.1 (2025-03-02)
What's Changed
๐ New Features / Improvements
- feat(producer): add MaxBufferBytes to limit retry buffer size by @wanwenli in #3088
- feat(producer): add sync pool for channel reuse by @kasimtj in #3109
- feat: exponential backoff for clients (KIP-580) by @wanwenli in #3099
๐ Fixes
- fix(sasl): add nilguard around token to prevent panic by @hoo47 in #3076
- fix(test): consumer group fetch request messages by @stsmurf in #3081
- fix: remove redundant nil check by @knbr13 in #3089
- fix(consumer): add recovery from no leader partitions by @liutao365 in #3101
- produce: set MaxTimestamp by @rockwotj in #3108
๐ฆ Dependency updates
- chore(deps): bump go.opentelemetry.io/otel from 1.24.0 to 1.29.0 in /examples/interceptors by @dependabot in #3071
- chore(deps): bump the otel group across 1 directory with 2 updates by @dependabot in #3072
- chore(deps): bump the golang-x group across 1 directory with 2 updates by @dependabot in #3098
๐ง Maintenance
- chore(deps): prevent otel upgrades for now by @dnwe in #3069
- chore: add version constant for kafka 3.7.2 by @dnwe in #3073
- chore(ci): fetch kafka 4.0 via tar.gz rather than git by @dnwe in #3079
- fix(ci): tighten up github workflows by @dnwe in #3080
- chore(ci): analyse actions in codeql by @dnwe in #3085
- chore(ci): bump golangci-lint version to v1.63.4 by @dnwe in #3090
- feat(ci): add dedicated staticcheck run by @dnwe in #3091
New Contributors
- @hoo47 made their first contribution in #3076
- @stsmurf made their first contribution in #3081
- @knbr13 made their first contribution in #3089
- @liutao365 made their first contribution in #3101
- @rockwotj made their first contribution in #3108
- @kasimtj made their first contribution in #3109
Full Changelog: v1.45.0...v1.45.1
Version 1.45.0 (2025-01-07)
Note
The go.mod directive has been bumped to 1.21 as the minimum version of Go required for the module. This was necessary to continue to receive updates from some of the third party dependencies that Sarama makes use of for compression.
What's Changed
๐ Fixes
๐ฆ Dependency updates
- chore(deps): bump github.com/klauspost/compress from 1.17.9 to 1.17.11 by @dependabot in #2999
- chore(deps): bump golang.org/x/net from 0.33.0 to 0.34.0 in the golang-org-x group by @dependabot in #3054
๐ง Maintenance
- chore: bump minimum go to 1.21 by @dnwe in #3048
- chore(test): tag all unittests as !integration by @dnwe in #3047
- chore(test): include kafka 4.0.0 in FV testing by @dnwe in #3045
- fix(ci): restore the Kafka 4.0.0 FV by @dnwe in #3055
Full Changelog: v1.44.0...v1.45.0
Version 1.44.0 (2024-12-27)
Note
The go.mod directive has been bumped to 1.20 as the minimum version of Go required for the module. This was necessary to continue to receive updates from some of the third party dependencies that Sarama makes use of for compression.
What's Changed
๐ New Features / Improvements
- feat: update go directive to 1.20 by @mauri870 in #2933
- feat(producer): add retry buffer tuning option to prevent OOM by @wanwenli in #3026
- feat(admin): implement leader election api by @chengjoey in #3030
๐ Fixes
๐ฆ Dependency updates
- chore(deps): bump the golang-org-x group across 1 directory with 2 updates by @dependabot in #3010
- chore(deps): bump golang.org/x/crypto from 0.28.0 to 0.31.0 in the go_modules group by @dependabot in #3041
- chore(deps): bump the golang-org-x group across 1 directory with 2 updates by @dependabot in #3040
- chore(deps): bump github.com/pierrec/lz4/v4 from 4.1.21 to 4.1.22 by @dependabot in #3038
- chore(deps): bump the go_modules group across 2 directories with 1 update by @dependabot in #3035
- chore(deps): bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /examples/consumergroup in the go_modules group by @dependabot in #3033
- chore(deps): bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /examples/txn_producer in the go_modules group by @dependabot in #3034
- chore(deps): bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /examples/interceptors in the go_modules group by @dependabot in #3032
- chore(deps): bump golang.org/x/crypto from 0.22.0 to 0.31.0 in /examples/exactly_once in the go_modules group by @dependabot in #3031
- chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @dependabot in #3020
๐ง Maintenance
- chore: add newer kafka versions and bump Go in CI by @dnwe in #2969
- fix(lint): resolve IDENTICAL_BRANCHES issue in broker by @frzifus in #2992
- chore: add version consts for 3.8.1+3.9.0 by @dnwe in #3011
- fix(client): refactor duplicated replica+partition logic by @Trinoooo in #2925
- chore(deps): bump golang.org/x/net to v0.33.0 by @dnwe in #3044
New Contributors
- @mauri870 made their first contribution in #2933
- @frzifus made their first contribution in #2992
- @pierDipi made their first contribution in #2995
- @wanwenli made their first contribution in #3026
- @Trinoooo made their first contribution in #2925
- @chengjoey made their first contribution in #3030
Full Changelog: v1.43.3...v1.44.0
Version 1.43.3 (2024-08-12)
What's Changed
๐ Fixes
- fix: declare assignor variable for examples & clean up log format by @kumakichi in #2909
- fix(consumer): maintain ordering of offset commit requests by @prestona in #2947
- fix(producer): treat ErrKafkaStorageError as retriable by @richardartoul in #2939
๐ฆ Dependency updates
- chore(deps): bump the golang-org-x group across 1 directory with 2 updates by @dependabot in #2956
- chore(deps): bump github.com/eapache/go-resiliency from 1.6.0 to 1.7.0 by @dependabot in #2944
- chore(deps): bump github.com/klauspost/compress from 1.17.8 to 1.17.9 by @dependabot in #2926
๐ง Maintenance
๐ Documentation
- fix(doc): correct JVM's config name corresponding to MaxWaitTime by @abhipranay in #2893
New Contributors
- @abhipranay made their first contribution in #2893
- @kumakichi made their first contribution in #2909
- @richardartoul made their first contribution in #2939
Full Changelog: v1.43.2...v1.43.3
Version 1.43.2 (2024-04-25)
What's Changed
๐ Fixes
๐ฆ Dependency updates
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 by @dependabot in #2866
- chore(deps): bump the golang-org-x group with 2 updates by @dependabot in #2853
- chore(deps): bump github.com/klauspost/compress from 1.17.7 to 1.17.8 by @dependabot in #2857
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in /examples/txn_producer in the go_modules group by @dependabot in #2865
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in /examples/consumergroup in the go_modules group by @dependabot in #2867
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in /examples/exactly_once in the go_modules group by @dependabot in #2868
- chore(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 in /examples/interceptors in the go_modules group by @dependabot in #2869
Full Changelog: v1.43.1...v1.43.2