Skip to content

Prepare shuttle 0.9.3 release - #324

Merged
sarsko merged 3 commits into
mainfrom
prepare-0.9.3
Aug 20, 2026
Merged

Prepare shuttle 0.9.3 release#324
sarsko merged 3 commits into
mainfrom
prepare-0.9.3

Conversation

@sarsko

@sarsko sarsko commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Cuts 0.9.3 for the four commits that have landed on main since 0.9.2: the BatchSemaphore fix (#317), the scheduling refactor (#318), the READMEs and publishable shuttle-async-stream-impl (#315), and the doc comment path fix.

shuttle goes 0.9.2 -> 0.9.3, and shuttle-engine, shuttle-schedulers and shuttle-std go 0.1.0 -> 0.1.1.

The internal crates have to move along with shuttle. Both #317 and #318 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 either change. shuttle-schedulers and shuttle-std move so the new READMEs and the doc comment path fixes reach crates.io and docs.rs.

Raising the shuttle-engine requirement to 0.1.1 is what makes the shuttle bump meaningful: cargo prefers versions already in the lock file, so under a ^0.1.0 requirement a user moving to 0.9.3 would keep shuttle-engine 0.1.0 and get a new shuttle containing 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 shuttle via 0.9, <0.10 or *, so they need no changes.

Publish order once merged: shuttle-engine, then shuttle-schedulers and shuttle-std, then shuttle.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

sarsko added 2 commits August 19, 2026 23:31
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.
@sarsko sarsko changed the title Prepare shuttle 0.9.3 release Release shuttle-engine, shuttle-schedulers and shuttle-std 0.1.1 Aug 20, 2026
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 sarsko changed the title Release shuttle-engine, shuttle-schedulers and shuttle-std 0.1.1 Prepare shuttle 0.9.3 release Aug 20, 2026
@sarsko
sarsko enabled auto-merge (squash) August 20, 2026 07:13
@sarsko
sarsko disabled auto-merge August 20, 2026 07:58
@sarsko
sarsko merged commit 91e3cae into main Aug 20, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant