chore(release): cut v0.24.1 - #419
Merged
Merged
Conversation
A patch: the two commits in the range are iOS React Native bridge fixes and no public surface moved. The `.udl`, `types.ts`, `config.rs` and `events.rs` diffs against v0.24.0 are empty once comments are stripped. Version files moved together: the workspace version and its ten internal dependency versions, the four more that the dual std/no_std crates declare locally, all three lockfiles (the tools' separate workspaces pin the SDK by path and CI builds both with `--locked`), `pyproject.toml`, the npm package and its lockfile, and the three `THIRD-PARTY-NOTICES.md`, which list our own crates by version and so go stale on any bump. `SECURITY.md` is untouched: a patch stays on the `0.24.x` line. The release header and `docs/UPGRADING.md` §18 both carry the warning the version number cannot, because nothing here breaks a build and three things change behaviour on iOS. The relay config block was discarded from `create()` since 0.22.0 while the engine kept `allow_relay: true`, so the ignored setting was the opt-out: a device told not to relay has had its forwarding gate open and closes it on this release. `wipePersistedState` was uncallable since 0.21.0. Presence updates meant to say `away` or `offline` all went out as `online`. 0.24.0 moves to docs/changelog/0.24.md, a new series file, with its relative links rewritten for the two-directory move and the move verified lossless against the tagged text.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
v0.24.1. Merging this does not publish; pushing thev0.24.1tag ontomainafterwards is what firesrelease.yml.Why a patch
Both commits in
v0.24.0..mainare iOS React Native bridge fixes (#416, #418). Public surface was checked mechanically rather than by intuition: the diffs foroffline_protocol.udl,types.ts,config.rsandevents.rsagainstv0.24.0are empty once comment lines are stripped.ForwardMessageParams.prioritystays optional in TypeScript; only the value crossing the bridge changed.Version files
Every entry in
CONTRIBUTING.md's table moved together:Cargo.toml:[workspace.package].versionplus the ten internal-dependency versionscrates/offline-protocol-sealed/Cargo.toml(1) andcrates/offline-protocol-leaf/Cargo.toml(3): the four internal-dependency versions the dualstd/no_stdcrates declare locallyCargo.lock,tools/embedded-footprint/Cargo.lock,tools/mls-interop/Cargo.lock(both tool workspaces pin the SDK by path and CI builds them--locked)bindings/python/pyproject.tomlbindings/react-native/package.json+package-lock.jsonTHIRD-PARTY-NOTICES.mdx3, regenerated with cargo-about 0.9.1 (they list our own crates by version, so a bump makes all three stale and the CI drift gate fails)SECURITY.mdis deliberately untouched: a patch stays on the0.24.xline.Prose
0.24.0moves to the newdocs/changelog/0.24.mdseries file, with its relative links rewritten for the two-directory move and the move verified byte-for-byte against the text as tagged. Both archive tables gained a row.docs/UPGRADING.mdgains §18 and an intro paragraph, because nothing here breaks a build and three things change behaviour on iOS, so the version number warns nobody on its own:create()since 0.22.0 while the engine keptRelayConfig::default(), which isallow_relay: truewith a 30% floor. The setting being ignored was therefore the opt-out: a device told not to relay has had its forwarding gate open and closes it on this release. A stricterminBatteryForRelaystarts being honoured, and the floor could not bite at all before, becausesetBatteryLevelclamped its garbled argument to 100 on every call.wipePersistedStatewas uncallable since 0.21.0, so every account signed out of since then left its MLS identity and sealed state on disk.awayorofflineall went out asonline, and every message went outmedium, because bothdefault:arms are the innocuous value.§18 also names the reason to take this promptly rather than batch it: twelve byte conversions aborted the process on any array element outside
0...255, reachable from a peer's frame rather than only from the app's own code.Verification
Ran locally on this branch, all green:
cargo clippy --workspace --locked -- -D warningscargo test --workspace --libcargo fmt --all -- --checkRUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-depsclippyonthumbv8m.main-none-eabihffor core, sealed, leafscripts/check-license-consistency.shnpx tsc --noEmit(react-native)npm run test:jsChangelog audit for the range: both commits touched
CHANGELOG.md, every added line landed inside[Unreleased], and there was exactly one### Changed-class heading between[Unreleased]and the previous release, so no entry was injected into the shipped0.24.0section. Every relative link and intra-document anchor in the four edited markdown files resolves.After merge
Push
v0.24.1onmain. Theversion-gatejob runs ahead of both publish jobs and refuses a tag whose number disagrees with[workspace.package].versionorpyproject.toml, so a mistake there fails before anything uploads. Do not force-move the tag once it has published.One consumer note that is not a blocker: an application whose
.npmrcsetsmin-release-age, as fernweh_v2 does at 7, cannotnpm installthis version until the cooldown passes and needs--min-release-age=0.