diff --git a/Cargo.lock b/Cargo.lock index ab053a33f4..a2caa20af2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4171,7 +4171,7 @@ dependencies = [ [[package]] name = "moq-audio" -version = "0.0.27" +version = "0.1.0" dependencies = [ "block2 0.6.2", "bytes", @@ -4584,7 +4584,7 @@ dependencies = [ [[package]] name = "moq-nvenc" -version = "0.0.6" +version = "0.1.0" dependencies = [ "cudarc", "libloading 0.9.0", @@ -4701,7 +4701,7 @@ dependencies = [ [[package]] name = "moq-sock" -version = "0.0.1" +version = "0.1.0" dependencies = [ "core_affinity", "libc", @@ -4798,7 +4798,7 @@ dependencies = [ [[package]] name = "moq-transcode" -version = "0.0.21" +version = "0.1.0" dependencies = [ "anyhow", "bytes", @@ -4851,7 +4851,7 @@ dependencies = [ [[package]] name = "moq-v4l" -version = "0.0.1" +version = "0.1.0" dependencies = [ "bitflags 2.13.2", "libc", @@ -4874,7 +4874,7 @@ dependencies = [ [[package]] name = "moq-video" -version = "0.0.27" +version = "0.1.0" dependencies = [ "anyhow", "ash", diff --git a/Cargo.toml b/Cargo.toml index 5a529c9cd6..119a87204a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,7 +137,7 @@ loom = { version = "0.7.2", features = ["futures"] } # DNS-SD advertisement and browsing for LAN peer discovery (moq-tokio's `mdns` feature). # `async` awaits the event channel instead of blocking a thread on it. mdns-sd = { version = "0.21", features = ["async"] } -moq-audio = { version = "0.0.27", path = "rs/moq-audio", default-features = false } +moq-audio = { version = "0.1.0", path = "rs/moq-audio", default-features = false } moq-auth = { version = "0.1.0", path = "rs/moq-auth" } moq-binary = { version = "0.1.0", path = "rs/moq-binary" } moq-flate = { version = "0.1.3", path = "rs/moq-flate" } @@ -154,12 +154,12 @@ moq-noq-udp = "1.3" # NVENC bindings, forked from ViliamVadocz/nvidia-video-codec-sdk to dlopen the # driver at runtime. Compiles on any platform (macOS included) but only actually # used by moq-video on Linux. -moq-nvenc = { version = "0.0.6", path = "rs/moq-nvenc" } +moq-nvenc = { version = "0.1.0", path = "rs/moq-nvenc" } moq-pattern = { version = "0.1.0", path = "rs/moq-pattern" } moq-relay = { version = "0.15.1", path = "rs/moq-relay", default-features = false } moq-rtc = { version = "0.3.1", path = "rs/moq-rtc" } moq-rtmp = { version = "0.3.1", path = "rs/moq-rtmp" } -moq-sock = { version = "0.0.1", path = "rs/moq-sock" } +moq-sock = { version = "0.1.0", path = "rs/moq-sock" } moq-srt = { version = "0.3.1", path = "rs/moq-srt" } moq-stats = { version = "0.2.1", path = "rs/moq-stats" } moq-tokio = { version = "0.19.12", path = "rs/moq-tokio", default-features = false } @@ -168,7 +168,7 @@ moq-tokio = { version = "0.19.12", path = "rs/moq-tokio", default-features = fal # provide working native plus software defaults when depended on directly. # VAAPI is opt-in everywhere; its decoder is hardware-validated, while its # encoder is not yet. -moq-transcode = { version = "0.0.21", path = "rs/moq-transcode", default-features = false } +moq-transcode = { version = "0.1.0", path = "rs/moq-transcode", default-features = false } # default-features off (the noq backend) so the consumer picks which QUIC # stack the io_uring path compiles; cargo features are additive, so a default-on # backend could not be opted out of. @@ -176,7 +176,7 @@ moq-uring = { version = "0.0.2", path = "rs/moq-uring", default-features = false # In-tree fork of `v4l` with the videodev2.h bindings checked in, so moq-video's # `capture` and `v4l2` need no libclang or kernel headers. Linux only; an empty # stub elsewhere. -moq-v4l = { version = "0.0.1", path = "rs/moq-v4l" } +moq-v4l = { version = "0.1.0", path = "rs/moq-v4l" } # Standalone crate (moq-dev/vaapi); vendored from cros-libva + cros-codecs. # dlopen's libva at runtime (no libva-dev at build, no NEEDED libva in the binary). moq-vaapi = "0.0.4" @@ -185,7 +185,7 @@ moq-vaapi = "0.0.4" # `features = ["capture"]` to a consumer that ships in those bindings pulls the # whole device graph into every one of them. Codec features are independent of # that argument, so moq-ffi and libmoq opt NVIDIA, OpenH264, and VAAPI back in. -moq-video = { version = "0.0.27", path = "rs/moq-video", default-features = false } +moq-video = { version = "0.1.0", path = "rs/moq-video", default-features = false } nix = { version = "0.31.3", features = ["net", "socket", "uio"] } # Upstream noq-proto, only for iroh's controller factory types. noq-proto = { version = "1.2", default-features = false } diff --git a/quest/m0/README.md b/quest/m0/README.md index af59ce9033..eb67865d6d 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -15,11 +15,12 @@ dev landed on main as #3793 on 2026-09-20; [Release](/quest/m0/release.md) names what gates the release that follows. Published API or wire breaks still land on dev; the quest's Plan says so. -The archive, E2EE, socket, and uring crates are 0.0.1 on main after the dev -merge. Their six API quests gate the release and target main under the 0.0.x -exception. Inspect transitive public exposure before changing a shared symbol: -`moq-tokio` publicly re-exports `moq-sock`'s bind module. Keep that re-export -and its current names. +The archive, E2EE, and uring crates are 0.0.x; socket, audio, video, +transcode, and nvenc are 0.1.x so dependents can take compatible patches. Their +API quests gate the release; a published break to a 0.1.x crate targets dev. +Inspect transitive public exposure before changing a shared symbol: `moq-tokio` +publicly re-exports `moq-sock`'s bind module. Keep that re-export and its +current names. Keep the useful boundaries: archive owns storage and codecs, E2EE owns protection rather than catalogs, sock owns runtime-neutral sockets, and uring @@ -44,10 +45,9 @@ Their package boundaries are explicit: - Published `moq-tokio` keeps its worker signatures and `bind` re-export while adapting internal plumbing. Its root names do not move. -The media crates are also 0.0.x, so their changes target main. Adapt callers in -other packages without breaking their published APIs, C layouts, or wire -formats. Do not bump versions as part of these quests. The media review -found the four crates ready for a separately requested 0.1 release. +The media crates are 0.1.x too, so a published break to them targets dev. +Adapt callers in other packages without breaking their published APIs, C +layouts, or wire formats. Do not bump versions as part of these quests. Their package boundaries are explicit: diff --git a/quest/m1/2964-quic-workers-dropping-one-split-server-resizes-the.md b/quest/m1/2964-quic-workers-dropping-one-split-server-resizes-the.md index c70982699d..43f4a0afed 100644 --- a/quest/m1/2964-quic-workers-dropping-one-split-server-resizes-the.md +++ b/quest/m1/2964-quic-workers-dropping-one-split-server-resizes-the.md @@ -26,7 +26,7 @@ session while unused handles are dropped, and prove all serving stops when the group terminates. Wire the tests into normal or nightly CI. Public API: no further `moq-tokio` ownership change. The prerequisite may -change `moq-sock`'s 0.0.x API. Wire: no format change. Close #2964 only when +change `moq-sock`'s 0.1.x API. Wire: no format change. Close #2964 only when both the dev ownership proof and this integration are complete. ## Closes diff --git a/quest/m1/gpu-pool-reservation.md b/quest/m1/gpu-pool-reservation.md index 65d7091c27..d0fad928ec 100644 --- a/quest/m1/gpu-pool-reservation.md +++ b/quest/m1/gpu-pool-reservation.md @@ -25,8 +25,8 @@ then `None`, dropping an unconverted slot frees it, and a failed conversion does not leak the buffer. Update the `just rs vulkan-cuda` hardware test and `doc/lib/rs/moq-video.md` inline. -Public API: `moq-video` 0.0.x, breaking for `Converter::convert` callers. Wire: -none. +Public API: `moq-video` 0.1.x, breaking for `Converter::convert` callers, so +it targets dev. Wire: none. ## Related diff --git a/quest/m1/ladder/README.md b/quest/m1/ladder/README.md index 6d8986db12..20dae78a47 100644 --- a/quest/m1/ladder/README.md +++ b/quest/m1/ladder/README.md @@ -34,7 +34,7 @@ first, so the same number decides what to produce and what to send first; ranking means on the first mile versus a cluster session before the controller depends on it. -`moq-transcode` is 0.0.x, so this line lands on main. +`moq-transcode` is 0.1.x, so a published break in this line targets dev. ### Adaptive bands diff --git a/rs/moq-audio/Cargo.toml b/rs/moq-audio/Cargo.toml index bf287757ad..bcd477c666 100644 --- a/rs/moq-audio/Cargo.toml +++ b/rs/moq-audio/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Luke Curley "] repository = "https://github.com/moq-dev/moq" license = "MIT OR Apache-2.0" -version = "0.0.27" +version = "0.1.0" edition = "2024" rust-version.workspace = true diff --git a/rs/moq-nvenc/Cargo.toml b/rs/moq-nvenc/Cargo.toml index f2b7511a45..33ad146d72 100644 --- a/rs/moq-nvenc/Cargo.toml +++ b/rs/moq-nvenc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "moq-nvenc" -version = "0.0.6" +version = "0.1.0" edition = "2021" license = "MIT" rust-version.workspace = true diff --git a/rs/moq-sock/Cargo.toml b/rs/moq-sock/Cargo.toml index 1c994560cb..c86336f496 100644 --- a/rs/moq-sock/Cargo.toml +++ b/rs/moq-sock/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Luke Curley "] repository = "https://github.com/moq-dev/moq" license = "MIT OR Apache-2.0" -version = "0.0.1" +version = "0.1.0" edition = "2024" rust-version.workspace = true diff --git a/rs/moq-transcode/Cargo.toml b/rs/moq-transcode/Cargo.toml index 38106e1d44..eafbea39d4 100644 --- a/rs/moq-transcode/Cargo.toml +++ b/rs/moq-transcode/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Luke Curley "] repository = "https://github.com/moq-dev/moq" license = "MIT OR Apache-2.0" -version = "0.0.21" +version = "0.1.0" edition = "2024" rust-version.workspace = true diff --git a/rs/moq-v4l/Cargo.toml b/rs/moq-v4l/Cargo.toml index 3ac5ae7273..e6229eaa55 100644 --- a/rs/moq-v4l/Cargo.toml +++ b/rs/moq-v4l/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "moq-v4l" -version = "0.0.1" +version = "0.1.0" edition = "2021" license = "MIT" rust-version.workspace = true diff --git a/rs/moq-video/Cargo.toml b/rs/moq-video/Cargo.toml index 3e5e6508d8..701d657bb5 100644 --- a/rs/moq-video/Cargo.toml +++ b/rs/moq-video/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Luke Curley "] repository = "https://github.com/moq-dev/moq" license = "MIT OR Apache-2.0" -version = "0.0.27" +version = "0.1.0" edition = "2024" rust-version.workspace = true