Repository navigation
Bump version to 0.10.0 across all relevant files and examples - #154
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #154 +/- ##
==========================================
+ Coverage 96.43% 96.44% +0.01%
==========================================
Files 36 36
Lines 29290 29290
==========================================
+ Hits 28246 28249 +3
+ Misses 1044 1041 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Summary
Release 0.10.0. This PR only bumps the version (
Cargo.toml, thepg-walstream-macrospin and the lockfiles) and renames the README's "Unreleased" section to "Upgrading from 0.9". Everything below is already onmainsince v0.9.0.Breaking changes (details in README → "Upgrading from 0.9")
ChangeEventhas a new public fieldxid: Option<u32>(Keep the subtransaction xid of streamed changes #149).ChangeEvent::encode/decode, deprecated since 0.9.0, are removed. Useserde_json(Remove the deprecatedChangeEventbinary codec #146).StreamingReplicationMessage::xidinside a streamed chunk is now the xid pgoutput wrote before the change, which is a subtransaction's xid after a savepoint (Keep the subtransaction xid of streamed changes #149).LogicalReplicationStream::newnow runsIDENTIFY_SYSTEM(one more round trip, and it can fail withPermanentConnection) (Expose startup metadata from the stream's own connection and make startup non-blocking #141).send_feedback()beforestart()returnsReplicationError::Protocol. Afterstart()and before the first message it sends an all-zero status update instead of returning early (Send a status update before the stream has received anything #147).start(),slot_confirmed_flush_lsn()ortimeline_history()now poisons the connection and later commands returnPermanentConnection(Expose startup metadata from the stream's own connection and make startup non-blocking #141, Stop connect_async's host walk where libpq stops it #153).EventStream::next_eventcarries a reconnect across a dropped future. While one is parked,inner(),inner_mut()andcurrent_lsn()panic until the nextnext_event()returns (Stop connect_async's host walk where libpq stops it #153).connection_timeout = Duration::ZEROnow means no budget and retries as usual, instead of failing after the first attempt (Stop connect_async's host walk where libpq stops it #153).libpqfeature now also buildssocket2.pg-walstream-macrosneeds syn 3.0.9 (chore: update dependencies to latest versions for improved stability #122, Update dependencies and improve async handling in libpq connection #124, Update dependencies: bump versions for tokio, smallvec, webpki-roots, and aws-lc-rs #151).New
with_existing_slot_required(true)turns a missing slot into a permanent error instead of creating it (Allow streams to require an existing replication slot #140, closes Option to refuse creating a missing replication slot #139).server_identity(),slot_confirmed_flush_lsn()andtimeline_history()are read on the stream's own connection. Both backends gain_asynccommands, sonew,start, reconnects andsnapshot()no longer block the executor. A cancelledsnapshot()drops the slot it created (Expose startup metadata from the stream's own connection and make startup non-blocking #141).AlignedSnapshot::capture/capture_aligned,EventType::commit_lsn()andnext_event_before(C)onLogicalReplicationStreamandEventStream(Align snapshots of tables added to a running stream and split the stream at them #142, closes Initial copy of a table added while the stream is already running #134).Fixes
send_feedback()(Send a status update before the stream has received anything #147).connect_asyncresolves a host name only when its turn comes, so a slow later name no longer delays the first host (fix libpq lazy host resolution issue. #150).connect_asyncstops its host walk where libpq does, so a bad password is tried once, not once per address (Stop connect_async's host walk where libpq stops it #153).timeoutshorter than a reconnect no longer starves it, and cancelling during a stuck reconnect returns immediately (Stop connect_async's host walk where libpq stops it #153).AlignedSnapshot::capturenow errors instead of returning an empty table when a requested table was truncated, rewritten or recreated after the snapshot, and refuses a side connection that landed on another cluster (Stop connect_async's host walk where libpq stops it #153).Performance
next_eventfuture slimmed by keeping reconnect state out of it, undoing a size regression from the startup work (Keep reconnect state out of the next_event future #152).CI / tooling
ClusterFuzzLite fuzzing (#120, #131), integration suites and the libpq backend counted in coverage (#144), Node 24 actions with the CodSpeed job pinned to ubuntu-24.04 (#132), lockfile bumps for
cargo auditadvisories (#135).Related issues
Closes #139, #134 (already closed by their PRs; listed for the release notes). Related PRs: #140, #141, #142, #146, #147, #149, #150, #152, #153.
Type of change
make before-git-pushpasses locally (check, build, format, audit, test, doc-check)cargo check --lockedresolves every lockfile, root, examples, fuzz and load-tests)0.10)