Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions quest/m1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
33 changes: 33 additions & 0 deletions quest/m1/moq-c.md
Original file line number Diff line number Diff line change
@@ -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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align the C++ package plan with the claimed name

The C++ package is not already moq-cpp in this tree: quest/m1/cpp/package.md still promises find_package(moq), moq.pc, and cpp-v* tags. Implementing both active plans as written therefore preserves the package-name collision that this quest is intended to eliminate. Update the C++ quest to the moq-cpp contract, or explicitly make this quest depend on a separate change that does so.

Useful? React with 馃憤聽/ 馃憥.

- 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.
Comment on lines +24 to +26

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep libmoq publishable until its final release

After the planned manifest and directory rename, the workspace contains no package named libmoq, so the existing release-plz flow cannot publish the promised final crates.io release. In the stated one-PR implementation, the maintainer would have nothing publishable under the old name. Retain a deprecation-only libmoq package until that release is cut, or make the old-name release a prerequisite that lands before the rename.

Useful? React with 馃憤聽/ 馃憥.


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
Loading