Prepare shuttle 0.9.4 release - #356
Merged
Merged
Conversation
Release `shuttle` 0.9.4, `shuttle-engine` and `shuttle-std` 0.1.2, and `shuttle-parking_lot-impl` 0.1.2. Everything under Unreleased goes out, plus #346, which had no changelog entry. `shuttle-schedulers` has no changes since 0.1.1 and takes `shuttle-engine` as `^0.1.1`, so it stays as published. `shuttle-parking_lot` likewise stays at 0.12.5, keeping it a mirror of the `parking_lot` version it wraps; it takes the impl as `^0.1.0` and re-exports it with a glob, so it picks the `RwLock` fix up unchanged. The impl's own requirement on `shuttle` is raised to `>=0.9.4`, since its `RawRwLock` calls `BatchSemaphore::try_upgrade`, which does not exist before 0.9.4.
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.
Cuts 0.9.4 for everything that has landed on
mainsince 0.9.3: theparking_lotRwLockupgrade fix and theBatchSemaphore::upgradechange under it (#351), the portfolio panic-in-drop fix (#346), the two performance changes (#321, #322), the blocked-future backtraces (#215), and theannotationfeature fix (#334).shuttlegoes 0.9.3 -> 0.9.4,shuttle-engineandshuttle-stdgo 0.1.1 -> 0.1.2, andshuttle-parking_lot-implgoes 0.1.1 -> 0.1.2.#346 had no changelog entry, so this adds one; #321 and #322 were missing their PR references. #320 is test-only and gets no entry.
shuttle's own source is untouched this release — every fix is inshuttle-engine,shuttle-stdorshuttle-parking_lot-impl— so raising the requirements to 0.1.2 is the whole content of theshuttlebump. It is also what makes the bump meaningful: cargo prefers versions already in the lock file, so under a^0.1.1requirement a user moving to 0.9.4 withcargo update -p shuttlewould keepshuttle-engine0.1.1 and get a newshuttlecontaining none of the fixes. (A fullcargo updatewould pick 0.1.2 up either way; the requirement is what rules out the 0.9.4-without-the-fixes combination entirely.)Two crates deliberately stay where they are:
shuttle-schedulersat 0.1.1. It has no changes since 0.1.1 and takesshuttle-engineas^0.1.1, so what is already published builds against the new engine.shuttle-parking_lotat 0.12.5, so that it keeps mirroring theparking_lotversion it wraps. It takes the impl as^0.1.0and re-exports it with a glob, so theRwLockfix reaches its users without a republish, the same wayshuttle-tokiopicked upshuttle-tokio-impl-inner0.1.2.shuttle-parking_lot-impl's requirement onshuttleis raised from<0.10to>=0.9.4, <0.10: itsRawRwLocknow callsBatchSemaphore::try_upgrade, which does not exist before 0.9.4, so the old requirement admitted a combination that does not compile.Patch rather than minor: the only public API change since 0.9.3 is the addition of
BatchSemaphore::try_upgrade.BatchSemaphore::upgradekeeps its signature, and the remaining wrapper crates depend onshuttlevia0.9,<0.10or*, so they need no changes.cargo nextest run --release --workspace(673 passed),cargo test --release --doc --workspaceandcargo check --workspace --all-targetsare clean.Publish order once merged:
shuttle-engine, thenshuttle-std, thenshuttle, thenshuttle-parking_lot-impl.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.