Prepare shuttle 0.9.3 release - #324
Merged
Merged
Conversation
Bump `shuttle` to 0.9.3, and `shuttle-engine`, `shuttle-schedulers` and `shuttle-std` to 0.1.1. The internal crates have to move along with `shuttle`: the `BatchSemaphore` fix in #317 and the scheduling change in #318 both live in `shuttle-engine`, so a `shuttle` 0.9.3 that still required `shuttle-engine` 0.1.0 would be published against an engine without them. Bumping all three (rather than only the engine, which `^0.1.0` would have resolved to anyway) keeps the published requirements explicit and gets the doc comment fixes onto docs.rs. The wrapper crates depend on `shuttle` via `0.9`, `<0.10` or `*`, so they need no changes for a patch release.
The `shuttle` crate itself has not changed since 0.9.2 (only its tests have), and its published requirement on `shuttle-engine` is `^0.1.0`, which admits 0.1.1. So users pick up the `BatchSemaphore` fix, the scheduling change and the doc fixes with a `cargo update`, without a new `shuttle` version. `shuttle-engine`, `shuttle-schedulers` and `shuttle-std` all go to 0.1.1: the first for #317 and #318, the latter two so the READMEs and the doc comment path fixes actually reach crates.io and docs.rs. The `shuttle-engine` requirement in `shuttle/Cargo.toml` is still raised to 0.1.1. It has no effect until `shuttle` is next published, and it means that publish will require an engine that has these fixes: cargo prefers versions already in the lock file, so a user bumping `shuttle` under a `^0.1.0` requirement would otherwise keep engine 0.1.0 and get none of them.
Reverts the previous commit, restoring `shuttle` 0.9.3 with the internal crates at 0.1.1. Releasing only the internal crates would have worked mechanically, since `shuttle` 0.9.2 requires `shuttle-engine` `^0.1.0` and would have resolved 0.1.1 on `cargo update`. But then no `shuttle` version identifies the `BatchSemaphore` fix: users cannot express "I need it" in their manifest, and two builds of 0.9.2 behave differently, which makes a bug report naming a `shuttle` version ambiguous. A version number for the fix is worth the extra publish. The `shuttle-engine` requirement stays at 0.1.1, which is what makes the `shuttle` bump meaningful: cargo prefers versions already in the lock file, so under `^0.1.0` a user moving to 0.9.3 would keep engine 0.1.0 and get none of the fixes.
sarsko
enabled auto-merge (squash)
August 20, 2026 07:13
sarsko
disabled auto-merge
August 20, 2026 07:58
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.3 for the four commits that have landed on
mainsince 0.9.2: theBatchSemaphorefix (#317), the scheduling refactor (#318), the READMEs and publishableshuttle-async-stream-impl(#315), and the doc comment path fix.shuttlegoes 0.9.2 -> 0.9.3, andshuttle-engine,shuttle-schedulersandshuttle-stdgo 0.1.0 -> 0.1.1.The internal crates have to move along with
shuttle. Both #317 and #318 live inshuttle-engine, so ashuttle0.9.3 that still requiredshuttle-engine0.1.0 would be published against an engine without either change.shuttle-schedulersandshuttle-stdmove so the new READMEs and the doc comment path fixes reach crates.io and docs.rs.Raising the
shuttle-enginerequirement to 0.1.1 is what makes theshuttlebump meaningful: cargo prefers versions already in the lock file, so under a^0.1.0requirement a user moving to 0.9.3 would keepshuttle-engine0.1.0 and get a newshuttlecontaining none of the fixes.Patch rather than minor: #318 preserves ascending-task-id iteration order, so scheduling decisions are unchanged and existing serialized schedules still replay. The wrapper crates depend on
shuttlevia0.9,<0.10or*, so they need no changes.Publish order once merged:
shuttle-engine, thenshuttle-schedulersandshuttle-std, thenshuttle.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.