Skip to content

quest: libmoq becomes moq-c - #4191

Merged
kixelated merged 1 commit into
mainfrom
plan/moq-c-rename
Sep 25, 2026
Merged

kixelated merged 1 commit into
mainfrom
plan/moq-c-rename

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Problem

The C bindings are the odd one out: libmoq, installed as CMake moq and moq.pc, while C++ ships as moq-cpp (#4187) and the other bindings follow a moq-<lang> pattern.

Approach

Adds quest/m1/moq-c.md [M], ranked right after the C++ line. It renames the crate, directory, tags, CMake package and pkg-config file to moq-c, keeps moq.h and the library file name, lands on dev, and prepares a final libmoq release pointing at moq-c.

Impact

  • None (quest docs only).

Alternatives

  • Also renaming the header and library file: rejected, because it churns every C consumer for no gain.

Follow-ups

  • None.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-25T20:53:57.321474Z 673b577 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kixelated

Copy link
Copy Markdown
Collaborator Author

MERGE

Positive improvement? Yes. The C bindings are the naming outlier (libmoq / CMake moq / moq.pc) next to moq-cpp and the other moq-<lang> packages. Aligning crate, directory, tags, CMake package, and pkg-config under moq-c makes the binding surface discoverable and installable side by side without teaching two naming schemes.

Worth the complexity? Yes for a planning quest. This PR is docs-only and the plan is appropriately bounded: keep moq.h and the library file name so C #include / link lines stay stable, land the published rename on dev, and cut one final libmoq release that points at moq-c. That splits consumer ABI stability from package naming, which is the expensive part of a rename and is called out explicitly (workflows, release-plz, OBS find_package, docs, Cross-Package Sync). Medium effort on implementation is justified by removing lasting confusion; the quest itself is cheap.

Different approach? Keeping the header and .a/.so name is the right rejection of a full rename. Renaming those would churn every C consumer for no runtime gain. Alternatives like leaving libmoq forever, or only renaming crates.io while leaving CMake/moq.pc as moq, would leave the same split that #4187 already closed for C++. Ranking it next to the C++ quest in the m1 list matches that dependency.

Ship the quest as written; the implementation PR can own the grep sweep and workflow renames.

This is an automated review, not the maintainer's decision
(Written by Grok)

@coderabbitai

coderabbitai Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 21 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: fdf26df4-eb95-487f-911b-fc4d515e4b51

📥 Commits

Reviewing files that changed from the base of the PR and between 1a4f8e2 and 673b577.

📒 Files selected for processing (2)
  • quest/m1/README.md
  • quest/m1/moq-c.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 673b577be4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread quest/m1/moq-c.md
- 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 👍 / 👎.

Comment thread quest/m1/moq-c.md
Comment on lines +24 to +26
- 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.

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 👍 / 👎.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing the moq-c quest plan. The C bindings' crate, directory, tags, CMake package, and pkg-config move to moq-c, beside moq-cpp, while moq.h and the library file stay. Docs only; this PR does not rename the crate.

Codex's two notes stay with the implementation. #4187 already names the C++ package moq-cpp (find_package(moq-cpp), moq-cpp.pc); the older find_package(moq) wording in quest/m1/cpp/package.md is not what to ship. The last libmoq release has to be cut while that package still exists, then the rename lands.

(Written by Grok 4.7)

@kixelated
kixelated merged commit 7a2a2e4 into main Sep 25, 2026
3 checks passed
@kixelated
kixelated deleted the plan/moq-c-rename branch September 25, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant