diff --git a/quest/m1/README.md b/quest/m1/README.md index 93cb6d3458..141e5cdedf 100644 --- a/quest/m1/README.md +++ b/quest/m1/README.md @@ -50,6 +50,7 @@ transport, benchmark tooling); worktrees isolate commits, not semantics. - [In-band auth](/quest/m1/auth/README.md) - a session tells its peer what it may publish and subscribe to, unions tokens presented in band, and fails loud on an out-of-scope publish - [Decoded frame ownership](/quest/m1/decoded-frames.md) - retain moq-video Frames across bindings, with native views or CPU conversion as needed - [C++ through moq-ffi](/quest/m1/cpp/README.md) - generated C++ over moq-ffi with futures and expected-style errors, shipped as a tarball, vcpkg, and Conan, and adopted by the OBS plugin +- [moq-c](/quest/m1/moq-c.md) - libmoq ships as `moq-c`, beside `moq-cpp`, with its C header and library unchanged - [OBS native codecs](/quest/m1/obs-moq-video/README.md) - remove FFmpeg decoding dependencies, deliver GPU frames, and use native audio/video encoders - [Audio codecs](/quest/m1/audio-codecs/README.md) - platform audio codecs, explicit unsupported cases, and channel layouts up to 7.1 - [Opus descriptions](/quest/m1/audio-opus-input.md) - validate headers and honor codec clock, pre-skip, and gain diff --git a/quest/m1/moq-c.md b/quest/m1/moq-c.md new file mode 100644 index 0000000000..608a5bfcb7 --- /dev/null +++ b/quest/m1/moq-c.md @@ -0,0 +1,33 @@ +# [M] libmoq becomes moq-c + +## Goal + +The C bindings ship as `moq-c`, matching `moq-cpp` and the other bindings: the +crate, its directory, release tags, CMake package, and pkg-config file all use +the name. C code and link lines do not change: the header stays `moq.h` and the +library file keeps its current name. The published `libmoq` crate gets one last +release that points users at `moq-c`. + +## Plan + +- Rename the crate `libmoq` to `moq-c` (`rs/libmoq` to `rs/moq-c`), its release + tags from `libmoq-v*` to `moq-c-v*`, and its workflow. The CMake package + becomes `find_package(moq-c)` and the pkg-config file `moq-c.pc`. The C++ + package is already `moq-cpp` (#4187), so the two install side by side. +- Keep the `[lib] name` so the library file and `moq.h` are unchanged. +- A published package rename is a break, so this lands on `dev`. Release + tooling (release-plz, alert and nightly workflows, cachix) must follow the + new name and tag; check every workflow that names libmoq. +- Update every consumer and reference: `cpp/obs` (`find_package`), interop + clients, `doc/lib/c`, `doc/bin/obs.md`, the root `CLAUDE.md` Cross-Package + Sync table, and quests that name libmoq. Grep the whole repository. +- Publish a final `libmoq` release whose README and description point at + `moq-c`, then stop publishing it. The maintainer cuts releases; the PR only + prepares it. + +Public API: the C ABI is unchanged; the crate, package, and tag names change. +Wire: none. + +## Related + +- [C++ through moq-ffi](/quest/m1/cpp/README.md) - the `moq-cpp` package this name mirrors