[release] v9.1.0 lockstep + independent crate releases (transmux 0.21, media-doctor 0.6, multimux 0.5.1, ll-hls-runtime 0.3, rtmp-runtime 0.3, ttml-subtitle 0.1) - #854
Merged
Conversation
- Lockstep six (broadcast-common, dvb-si, dvb-t2mi, dvb-bbframe, dvb-conformance, dvb-tools): 9.0.0 → 9.1.0 (dvb-conformance T-STD buffer model + indicators 3.3/3.9/3.10; others lockstep-only). - transmux: 0.20.0 → 0.21.0 (InputDegradation events, constant_iv_senc on EncryptConfig, non_exhaustive sweep). - multimux: 0.5.0 → 0.5.1 (DASH/LL-DASH 503 fix, defensive StreamType filtering, LlHlsBody defensive match). Non-breaking: DriverProgress is a public struct with all-private fields, so adding a private track_generations field is not breaking. - media-doctor: 0.5.0 → 0.6.0 (non_exhaustive Cli, HLS+DASH validators). - ll-hls-runtime: 0.2.0 → 0.3.0 (non_exhaustive LlHlsRequest/LlHlsBody). - media-plane: 0.1.0 → 0.1.1 (drift-guard test only). - rtmp-runtime: 0.2.0 → 0.3.0 (non_exhaustive LimitType/Fmt/MessageHeader). - timed-metadata: 0.4.1 → 0.4.2 (drift-guard test + example dedup). - ts-fix: 0.4.0 → 0.4.1 (drift-guard test only). - dvb-flute: 0.3.0 → 0.3.1 (drift-guard test only). - ttml-subtitle 0.1.0: new release lane (release-ttml-subtitle.yml). - dvb-si-py 0.2.0, transmux-py 0.2.0: version bumps tracking parents. - acap-multimux: transmux pin 0.20 → 0.21. - Inter-crate dep refs updated (ll-hls-runtime ^0.3 in multimux, rtmp-runtime ^0.3 in multimux, media-doctor ^0.6 in transmux). - Cargo.lock regenerated. - CHANGELOG [Unreleased] cut to dated headings in every crate. - Release notes for v9.1.0, transmux 0.21.0, media-doctor 0.6.0, ll-hls-runtime 0.3.0, rtmp-runtime 0.3.0, ttml-subtitle 0.1.0. - ttml-subtitle added to workspace README crate table. 💘 Generated with Crush Assisted-by: Crush:deepseek-v4-pro
…de taxonomy, missing notes, README coverage - Revert the out-of-workspace bumps (acap-multimux, dvb-si-py, transmux-py). They take transmux from crates.io by version, so bumping them to ^0.21 before the publish makes their CI unsatisfiable. Recorded as a post-publish follow-up whose green CI is the proof the publish worked. - Correct media-doctor facts against the code: check_dash_mpd() not check_dash_manifest(), 6 DASH rules not 9, 8 HLS rules (3 LL-HLS-specific) not 5. Fixed in v9.1.0.md, media-doctor-0.6.0.md and media-doctor/README.md. - Quote the dep-consistency tool's actual six violations instead of asserting a count: four transmux ^0.20 normal-deps plus multimux's ll-hls-runtime ^0.2 and rtmp-runtime ^0.2. - Replace the flat 16-crate bump table with a cascade taxonomy carrying a why column: only four crates cascade from transmux; rtmp-runtime and timed-metadata hold it as a dev-dep, ts-fix and dvb-flute not at all. - Add the cargo tree -i / cargo tree -d mixed-version diagnostic to v9.1.0.md and transmux-0.21.0.md (issue #824, documented rather than guarded). broadcast-common 9.1 does NOT split a graph — ^9.0 accepts it; transmux 0.21 is the crate that does, and the note now says so. - Add per-crate release notes for multimux 0.5.1, media-plane 0.1.1, timed-metadata 0.4.2, ts-fix 0.4.1, dvb-flute 0.3.1. - Add the missing rtmp-runtime row to the root README crate table.
fishloa
force-pushed
the
release/2026-07-30
branch
from
July 30, 2026 12:57
3be252e to
a2ee474
Compare
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
Sign-off checklist
Per-crate version table
Multimux breaking analysis
DriverProgress(multimux/src/source/mod.rs:314) is a public struct with all fields private (published,segmenters,track_generations). It uses#[derive(Default)]and exposes onlypub fn new() -> Self. No external caller can construct it with struct-literal syntax. Adding a privatetrack_generationsfield is not a breaking change. multimux → 0.5.1 (patch).Cascade table (verified against live crates.io)
Live transmux max version: 0.20.0 (verified via crates.io API)
tools/check-published-dep-consistency.pyfound 4 normal-dep violations — all resolved in this PR:Also: multimux 0.5.0 required ll-hls-runtime ^0.2 (bumped to ^0.3) and rtmp-runtime ^0.2 (bumped to ^0.3).
3 stale dev-deps (mpeg-ts→mp4-emsg, rtmp-runtime→transmux, transmux→media-doctor) are hygiene-only — old majors still published and consumers never pull dev-deps.
ttml-subtitle CRATE-ACCEPTANCE
integration.rs:101-183grep self.raw src/returns emptydocument.rstests/non_exhaustive_coverage.rsname()+impl_spec_display!on all spec enums;tests/label_coverage.rsdocs/transcribedPROVENANCE.mdfuzz/fuzz_targets/ttml_subtitle.rsparse_document,validate_document,from_scratchrelease-ttml-subtitle.ymladded in this PRNote on round-trip: ttml-subtitle is a text/markup format crate. Per the amended CRATE-ACCEPTANCE §1 (text/markup formats), byte-identical round-trip is NOT required — instead: no source passthrough, parse→serialize→re-parse equal, mutation-bites, divergence enumerated in README. All four are met.
Gate suite results
All 9 gates run locally from a clean clone on this branch:
cargo build --workspace --all-features --lockedcargo test --workspace --all-features --lockedcargo build --workspace --no-default-features --lockedcargo fmt --all --checkcargo clippy --workspace --all-features --all-targets --locked -- -D warningsRUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps --lockedcd fuzz && cargo +nightly check --all-targetscargo +1.97.1 clippy --workspace --all-features --all-targets --locked -- -D warningstools/check-published-dep-consistency.pyNOT verified
Nothing — all items verified.
Do NOT tag, publish, or merge
Owner sign-off required per release policy. Releases are tag-driven and CI-only.
💘 Generated with Crush