build(deps): bump the cargo group (with code fixes for rand/rubato/rcgen)#1603
Conversation
Bumps the cargo group with 8 updates: | Package | From | To | | --- | --- | --- | | [qmux](https://github.com/moq-dev/web-transport) | `0.0.7` | `0.0.8` | | [web-transport-noq](https://github.com/moq-dev/web-transport) | `0.0.3` | `0.1.1` | | [web-transport-quiche](https://github.com/moq-dev/web-transport) | `0.2.3` | `0.4.0` | | [rubato](https://github.com/HEnquist/rubato) | `0.16.2` | `3.0.0` | | [rand](https://github.com/rust-random/rand) | `0.9.4` | `0.10.1` | | [rcgen](https://github.com/rustls/rcgen) | `0.13.2` | `0.14.8` | | [toml](https://github.com/toml-rs/toml) | `0.9.12+spec-1.1.0` | `1.1.2+spec-1.1.0` | | [reqwest-middleware](https://github.com/TrueLayer/reqwest-middleware) | `0.4.2` | `0.5.2` | Updates `qmux` from 0.0.7 to 0.0.8 - [Release notes](https://github.com/moq-dev/web-transport/releases) - [Changelog](https://github.com/moq-dev/web-transport/blob/main/release-plz.toml) - [Commits](moq-dev/web-transport@qmux-v0.0.7...qmux-v0.0.8) Updates `web-transport-noq` from 0.0.3 to 0.1.1 - [Release notes](https://github.com/moq-dev/web-transport/releases) - [Changelog](https://github.com/moq-dev/web-transport/blob/main/release-plz.toml) - [Commits](moq-dev/web-transport@web-transport-noq-v0.0.3...web-transport-noq-v0.1.1) Updates `web-transport-quiche` from 0.2.3 to 0.4.0 - [Release notes](https://github.com/moq-dev/web-transport/releases) - [Changelog](https://github.com/moq-dev/web-transport/blob/main/release-plz.toml) - [Commits](moq-dev/web-transport@web-transport-quiche-v0.2.3...web-transport-quiche-v0.4.0) Updates `rubato` from 0.16.2 to 3.0.0 - [Release notes](https://github.com/HEnquist/rubato/releases) - [Commits](HEnquist/rubato@v0.16.2...v3.0.0) Updates `rand` from 0.9.4 to 0.10.1 - [Release notes](https://github.com/rust-random/rand/releases) - [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md) - [Commits](rust-random/rand@0.9.4...0.10.1) Updates `rcgen` from 0.13.2 to 0.14.8 - [Release notes](https://github.com/rustls/rcgen/releases) - [Commits](rustls/rcgen@v0.13.2...v0.14.8) Updates `toml` from 0.9.12+spec-1.1.0 to 1.1.2+spec-1.1.0 - [Commits](toml-rs/toml@toml-v0.9.12...toml-v1.1.2) Updates `reqwest-middleware` from 0.4.2 to 0.5.2 - [Release notes](https://github.com/TrueLayer/reqwest-middleware/releases) - [Commits](TrueLayer/reqwest-middleware@reqwest-middleware-v0.4.2...reqwest-middleware-v0.5.2) --- updated-dependencies: - dependency-name: qmux dependency-version: 0.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: cargo - dependency-name: web-transport-noq dependency-version: 0.1.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: web-transport-quiche dependency-version: 0.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: rubato dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: cargo - dependency-name: rand dependency-version: 0.10.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: rcgen dependency-version: 0.14.8 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo - dependency-name: toml dependency-version: 1.1.2+spec-1.1.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: cargo - dependency-name: reqwest-middleware dependency-version: 0.5.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cargo ... Signed-off-by: dependabot[bot] <support@github.com>
…a' into claude/github-pr-1600-SasJw
The dependabot group bump in #1600 required source changes for several major-version updates: - rand 0.9 -> 0.10: random_range and random_iter moved to the new RngExt trait. Updated the imports in moq-net and moq-native. - rubato 0.16 -> 3.0: SincFixedIn became Async + FixedAsync::Input, and process_into_buffer now takes audioadapter buffers instead of slices of Vecs. Rewrote the resampler wrapper to wrap the planar buffers in SequentialSliceOfVecs and size the output via output_frames_max. - rcgen 0.13 -> 0.14: signed_by now takes an Issuer that bundles the CA cert and key. Build an Issuer::from_params once and reuse it in the relay mTLS test fixtures. reqwest-middleware was kept at 0.4 rather than 0.5. The relay HTTP cache uses http-cache-reqwest, whose only stable release (0.16) still requires reqwest-middleware 0.4 and reqwest 0.12. Taking 0.5 would force http-cache-reqwest 1.0.0-alpha and reqwest 0.13, a larger pre-release cascade that is out of scope for this bump.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughThis PR upgrades dependencies across the moq workspace and adapts code to accommodate breaking changes in their APIs. The workspace-level transport dependencies ( 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
rs/moq-audio/Cargo.toml (1)
23-23: 💤 Low valueOptional: disable rubato’s default FFT feature to avoid pulling RustFFT
rubato3.0 enablesfft_resamplerby default, whileaudioadapter-buffersis used directly and isn’t gated behind another Cargo feature. Ifmoq-audioonly relies onAsync::new_sinc, disabling default features can trim unused FFT-related deps.♻️ Possible change
-rubato = "3.0" +rubato = { version = "3.0", default-features = false }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@rs/moq-audio/Cargo.toml` at line 23, Disable rubato’s default features to avoid pulling in RustFFT by changing the rubato dependency declaration to set default-features = false and explicitly enable only the feature(s) required for the sinc resampler used by Async::new_sinc (so rubato doesn't bring in the fft_resampler default); update the rubato entry (the dependency named "rubato") accordingly to only include the minimal feature set needed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@rs/moq-audio/Cargo.toml`:
- Line 23: Disable rubato’s default features to avoid pulling in RustFFT by
changing the rubato dependency declaration to set default-features = false and
explicitly enable only the feature(s) required for the sinc resampler used by
Async::new_sinc (so rubato doesn't bring in the fft_resampler default); update
the rubato entry (the dependency named "rubato") accordingly to only include the
minimal feature set needed.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 541b0878-f19c-4367-ac19-380a08126140
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (12)
Cargo.tomlrs/moq-audio/Cargo.tomlrs/moq-audio/src/resample.rsrs/moq-native/Cargo.tomlrs/moq-native/src/noq.rsrs/moq-native/src/quinn.rsrs/moq-net/Cargo.tomlrs/moq-net/src/model/origin.rsrs/moq-net/src/model/time.rsrs/moq-relay/Cargo.tomlrs/moq-relay/src/auth.rsrs/moq-relay/src/web.rs
These bumps broke the feature-gated noq and quiche backends, which only build under `cargo check --workspace --all-features` (the default-feature build doesn't include them, so the first commit missed them). - web-transport-quiche 0.2 -> 0.4: ClientBuilder::connect now returns a Connecting that must be awaited via established() to get a Connection. Establish before Connection::connect / Connection::raw / alpn(). - web-transport-noq 0.0.3 -> 0.1.1 (noq 1.0.0-rc): EndpointConfig:: cid_generator now takes an Arc<dyn Fn() -> Box<...> + Send + Sync>; wrap the factory closure in Arc. The established Connection no longer exposes remote_address (noq 1.0 supports multipath), so capture the peer address from the Connecting before awaiting. Also drop rubato's default fft_resampler feature in moq-audio. We only use the sinc resampler (Async::new_sinc), so this removes the unused realfft/RustFFT dependencies.
Supersedes #1600. Brings in the dependabot grouped cargo bump plus the source changes the major-version updates require so CI compiles. #1600 failed
Checkon amoq-netcompile error (rand 0.10API change), with further breakage inmoq-audio(rubato 3.0),moq-relaytests (rcgen 0.14), and the feature-gatedmoq-nativenoq/quichebackends.Dependency updates
Code changes
random_rangeandrandom_itermoved to the newRngExttrait. Swappeduse rand::Rngforuse rand::RngExtinmoq-net(model/origin.rs,model/time.rs) andmoq-native(quinn.rs,noq.rs).SincFixedInis nowAsync+FixedAsync::Input, andprocess_into_buffertakesaudioadapterbuffers instead of&[Vec<f32>]. Rewrote themoq-audioresampler wrapper to wrap the planar buffers inSequentialSliceOfVecsand allocate the output viaoutput_frames_max(). Also dropped rubato's defaultfft_resamplerfeature since we only use the sinc resampler, which removes the unusedrealfft/RustFFT deps. The existingupsample_44100_to_48000_preserves_energy_roughlyandopus_round_trip_44100_s16_resampledtests still pass, so behavior is preserved.CertificateParams::signed_bynow takes anIssuerthat bundles the CA cert and signing key. Build anIssuer::from_paramsonce and reuse it in themoq-relaymTLS test fixtures (auth.rs,web.rs).moq-native,quichefeature):ClientBuilder::connectnow returns aConnectingthat must be.established().awaited into aConnection. Establish beforeConnection::connect/Connection::raw/alpn().moq-native,noqfeature; pulls noq 1.0.0-rc):EndpointConfig::cid_generatornow takes anArc<dyn Fn() -> Box<...> + Send + Sync>, so wrap the factory closure inArc. The establishedConnectionno longer exposesremote_address(noq 1.0 supports multipath), so capture the peer address from theConnectingbefore awaiting.reqwest-middleware kept at 0.4
The original #1600 also bumped
reqwest-middleware0.4 → 0.5, but that breaks the relay HTTP cache:http-cache-reqwest's only stable release (0.16) still requiresreqwest-middleware 0.4+reqwest 0.12. The onlyhttp-cache-reqwestreleases onreqwest-middleware 0.5are1.0.0-alpha.xpre-releases (which also pullreqwest 0.13). Taking 0.5 would force a pre-release dependency and areqwest 0.12 → 0.13migration across the relay, which is out of scope for a routine bump. Pinned it back to0.4so the rest of the group can land.Test plan
cargo check -p moq-native --all-featuresclean (covers thenoq/quichebackends CI exercises)cargo clippyclean formoq-audio,moq-net,moq-native(incl.--all-features --all-targets),moq-relaycargo testpasses for those crates (themoq-nativealpnintegration tests fail only in this sandbox because it has no IPv6 to bind[::]:0; they exercise networking, not the bumped deps)realfftconfirmed dropped fromCargo.lock(Written by Claude)