chore(release): 0.2.0 — outage resilience#50
Merged
Conversation
Minor version bump (pre-1.0 breaking-change convention): PR #45 changed `Consumer::assign` to return `Result`, which is a breaking API change, so a patch (0.1.3) would silently break `^0.1` dependents. Release theme: outage resilience — the producer and consumer now recover from prolonged and total broker outages instead of wedging permanently (#47, #48). CHANGELOG promotes Unreleased to 0.2.0 with Added/Changed/Fixed sections; README install snippets moved to "0.2".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 0.2.0. Bumps all workspace crate versions
0.1.2 → 0.2.0, syncsCargo.lockand the inter-crate dependency versions, updates the README install snippets to"0.2", and promotes the CHANGELOGUnreleasedsection to0.2.0.Why a minor bump (0.2.0), not a patch (0.1.3)
PR #45 changed
Consumer::assignto returnResult— a breaking API change. Under Cargo's 0.x semver (^0.1treats0.1.2and0.1.3as compatible), shipping that in a patch would silently break downstreamkacrab = "0.1"dependents. So the minor position bumps:0.1.x → 0.2.0.What's in this release
Breaking
Consumer::assignnow returnsResult; subscription modes are mutually exclusive (JavaSubscriptionStateparity). (fix(consumer): Java-parity subscription-mode exclusivity; close_timeout(Duration) #45)Added
Consumer::close_timeout(Duration). (fix(consumer): Java-parity subscription-mode exclusivity; close_timeout(Duration) #45)Fixed — outage resilience
delivery.timeout.ms(the background sender loop parked on a transient metadata/wireTimeoutand never woke once appends dried up; now retries on the retry backoff). (fix: recover from total-cluster outages longer than delivery.timeout.ms #48)request.timeout.ms; broker reader task aborted on drop / consumer close so sockets don't linger. (fix: recover from broker outages instead of wedging the client #47)Gates
fmt-check·clippy -D warnings·cargo check --workspace --all-features·cargo deny— all green. All three publishable crates (kacrab,kacrab-protocol,kacrab-macros) at0.2.0inCargo.lock.Post-merge (manual)
Publish to crates.io in dependency order (
kacrab-protocol→kacrab-macros→kacrab) and tagv0.2.0.