Repository navigation
fix(migrate)!: align guides with released APIs - #6624
Conversation
Quest-Claim: c8b89b96e56dfc32
Co-Authored-By: GPT-6 <codex@openai.com>
…grate # Conflicts: # cpp/moq/MIGRATE.md # dart/moq/MIGRATE.md # dart/moq_ffi/MIGRATE.md # go/ffi/MIGRATE.md # go/wrapper/MIGRATE.md # js/clock/MIGRATE.md # kt/moq-ffi/MIGRATE.md # kt/moq/MIGRATE.md # py/moq-ffi/MIGRATE.md # py/moq-rs/MIGRATE.md # quest/m1/api-audit/migrate.md # rs/hang/MIGRATE.md # rs/moq-cli/MIGRATE.md # rs/moq-ffi/MIGRATE.md # rs/moq-hls/MIGRATE.md # rs/moq-net/MIGRATE.md # rs/moq-video/MIGRATE.md # swift/MIGRATE.md # swift/ffi/MIGRATE.md
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 15 minutes. View limit details
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 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Outcome: the quest is implemented and its file removed. This takes over the stale branch from moq-dev/moq#6443, merges 167 commits of Corrections beyond the stale branch:
Codex reviewed head 364473a with no findings (thumbs-up), and CI is green. CodeRabbit was rate limited. Locally, (Written by Claude Opus 5.5) |
…grate Keeps this PR's deletion of quest/m1/api-audit/migrate.md and main's deletion of quest/m1/ffi-shutdown-sync.md (finished by #6436). Main's #6436 made binding shutdown a synchronous drain request again, so the shutdown entries now describe the net change from release's cancel(0): shutdown() drains, closed() reports the result, cancel(0) closes at once. Also drops the js/publish linger entry #6522 made moot and names the abort error #6482 left behind. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged
(Written by Claude Opus 5.5) |
Takes over the stale
quest/m1/api-audit/migratebranch: its last push was 2026-10-22 and its PR moq-dev/moq#6443 was closed without comment. Builds on its commits (merge only, no rewrite). Implements and deletesquest/m1/api-audit/migrate.md.Problem
Migration guides mixed released APIs with intermediate
main-only shapes, omitted real breaks, and gave contradictory broadcast-finish advice, so a reader upgrading fromreleasecould not follow them.Approach
Every
## Unreleasedentry the quest named was checked againstorigin/release(and the published tag where it mattered), then rewritten as the direct upgrade from release.From the stale branch (570fb39b57), kept:
shutdowninrs/moq-ffiand the py, go, kt, and dart wrappers; inittrackmoving toMoqMediaTarget::Named; raw tracks now untimed by default, against release's microsecond default.go/ffi,py/moq-ffi,kt/moq-ffi,swift/ffi,dart/moq_ffi) point atrs/moq-ffi/MIGRATE.mdinstead of a partial copy.cpp/moq(never tagged) and@moq/clock(an unpublished example on release) get a first-release note.rs/moq-nettrack-end positions and transport-error mapping;rs/hangandjs/hangper-track timelines andContainer.Read;rs/moq-archiveversion 1 to 3 and theKey::Groupsremoval;rs/moq-hlstagged segments;rs/moq-videoframe import names; opt-in iroh inrs/moq-cli; dropped the main-onlyWriter,Info::epoch,Config::timebase, and JSEncoder.cut()stories.moq_transcode::Rung::sizetoshort_siderename and its entry.Added in this takeover:
main. The generated-binding pointers replace the per-language copies of entriesmainadded since (all present inrs/moq-ffi); the Dart-generator-only future cancellation entry stays indart/moq_ffi.finishentries no longer document the linger handle, per the quest's updated plan. Release'sfinish()was a deprecated alias forclose()(end()in Kotlin), so each entry says to call that instead. That advice stays correct once stateless broadcasts deletesfinish.rs/moq-cli"non-restartable exports refuse linger" entry: release, and the published moq-cli 0.14.8, already refused a nonzero--lingeroutsideexport ts. The quest's claim was wrong.rs/moq-videostories:encode::Controldid not exist on release, so "Control::cutis not rate limited" and "Control::cutreturns aResult" go, and the capture entry stops describingControl::new. Kept the capture refresh advertisement and thepublish_capturesignature change.rs/moq-archive's "Recording is driven by a broadcast producer":Produceris new since release, so nothing migrates.quest/m1/broadcast-lifecycle/stateless.md, which will reshape thefinishentries, now says its Impact bullet supersedes them, for the cut to collapse. This uses the same pattern docs: write MIGRATE.md at the breaking cut, not per PR #6610 used forcontainer-format.mainagain (fc6f5cded7). moq-dev/moq#6436 made bindingshutdown()a synchronous drain request and rewrote this quest's shutdown gap, so thers/moq-ffi,py/moq-rs,go/wrapper,kt/moq,dart/moq, andswiftshutdown entries now describe the net change from release'sshutdown()(an alias forcancel(0)):shutdown()returns at once and requests a drain,closed()reports its result, andcancel(0)keeps the old immediate close. The FFI, Python, Kotlin, and Swift entries map the release line's planned asyncdrain()ontoshutdown()plusclosed(). Also dropped thejs/publish"BroadcastInputhas alingerinput" entry, since moq-dev/moq#6522 removed that never-released input, and thers/moq-netrefactor(net)!: public ingest #6111 entry now names the abort error moq-dev/moq#6482 left (Error::Stream(StreamError::Session(SessionError::Cancel))).The convention in #6610 keeps the
## Unreleasedentries as the cut's starting draft, andquest/m0/migrate-at-cut.mdsaid this PR "lands as planned". The two don't conflict.Impact
moq_transcode::Rung::sizeisshort_side, andladder::Error::{Empty, Unordered}fields areshort_side/below_short_side. Thers/moq-transcodeentry describes release'sheightbecomingshort_side(the short side, the width for portrait output). Construction, validation, and output geometry are unchanged.Validation
quest check --base origin/main: passed.nix develop --command just check: passed. Rust 8,447 passed / 64 skipped, plus the js, py, kt, go, dart, cpp, OBS compile, markdown, and shell modules. Swift was skipped because this Linux host has no Swift toolchain.nix develop --command just checkpassed again.dart/moq_ffileak_test.dart("a non-null optional argument is released": RSS 50.9 MB against a 32.8 MB bound, on a busy host). It passed on the run before and the final one. This PR touches no Dart code.Follow-ups
release's branch head alone. Its Plan already says so.rs/moq-videoshowed more intermediate history (Control) than the list named, so other crates likely carry some too. That falls to the migration audit at the cut.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)