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/m0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ repository.
- [Playout writes land on positioned bus channels](/quest/m0/playout-positioned.md) - broadcast, media, and replay sound at the bus position its pictures are timed for
- [moq-audio's positioned bus channel is pinned](/quest/m0/pin-bus-positioned.md) - `Bus::positioned`, which playout writes through
- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - `moq_mux::sync` in place of `moq_mux::timeline`, which every later pin crosses
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes past #8272 in one PR, so each later pin stays small

## Related

Expand Down
2 changes: 1 addition & 1 deletion quest/m0/pin-aac-encode.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ fixing whatever the new API breaks here.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
2 changes: 1 addition & 1 deletion quest/m0/pin-audio-filters.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ fixing whatever the new API breaks here.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
2 changes: 1 addition & 1 deletion quest/m0/pin-audio-tap.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ fixing whatever the new API breaks here.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
2 changes: 1 addition & 1 deletion quest/m0/pin-egress-dial.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ fixing whatever the new API breaks here.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
42 changes: 42 additions & 0 deletions quest/m0/pin-main.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# [L] The studio is caught up to moq's main

## Goal

The `moq` submodule is at moq's `main` as of the day this quest starts, and
`just ci` passes on it. Every breaking change between `644d48996` (where
[pin-sync](/quest/m0/pin-sync.md) leaves it) and that commit is fixed in one
PR, so each later wait-gated pin moves past only its own upstream change.

## Plan

Decided 2026-11-09 (maintainer, /quest-plan on the follow-up from
[moq-dev/studio#123](https://github.com/moq-dev/studio/pull/123)):

- ✅ Pin `main` on the day it starts, with `just upgrade-moq` and no commit
argument (rejected: a commit fixed at planning time; dropping the quest
and letting the first small pin absorb the catch-up). A commit chosen now
goes stale before anyone starts the quest.
- ✅ Every pin whose upstream work lands after pin-sync requires this quest
(rejected: leaving them on pin-sync). Each then stays XS.

On 2026-11-09, moq's `main` (`103052ed0`) was 117 first-parent commits past
`644d48996`, 27 of them breaking. The ones that reach studio code most:

- [moq-dev/moq#8220](https://github.com/moq-dev/moq/pull/8220): kio's
`Instant` has no `+` or `-` with a `Duration`. `rs/moq-scene/src/playout.rs`
and `source.rs` use them throughout.
- [moq-dev/moq#8270](https://github.com/moq-dev/moq/pull/8270): moq-audio
codecs return zero or more outputs and flush.
- [moq-dev/moq#8372](https://github.com/moq-dev/moq/pull/8372): moq-video
codecs split submission from receive.
- Renames and surface cuts in moq-net, moq-tokio, moq-mux, and moq-video
(#8247, #8265, #8266, #8298, #8305, #8369, #8370, #8371, #8375, #8392).
`just ci` finds the rest.

Each change's PR has an Impact section with the migration. If an upstream
change a pin waits for is already on `main` when this starts, this PR also
does that pin's work and deletes the pin quest.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - the playout rewrite onto `moq_mux::sync`, which this builds on
2 changes: 1 addition & 1 deletion quest/m0/pin-portal-token.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ fixing whatever the new API breaks here.

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
4 changes: 2 additions & 2 deletions quest/m0/pin-sync.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ Not crossed here: [moq-dev/moq#8270](https://github.com/moq-dev/moq/pull/8270)
(`147327e14`), and
[moq-dev/moq#8220](https://github.com/moq-dev/moq/pull/8220) (`16a673036`,
kio's `Instant` loses `+` and `-` with a `Duration`, which `playout.rs` and
`source.rs` use throughout) all merged after #8272. The first pin past them
fixes them.
`source.rs` use throughout) all merged after #8272.
[pin-main](/quest/m0/pin-main.md) fixes them.

## Waiting

Expand Down
2 changes: 1 addition & 1 deletion quest/m2/compose/hang-layers.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ quests (rejected: "both quests", unnamed, which left out `@moq/watch`).

- [moq-studio watch prototype](/quest/m2/compose/watch.md) - the format moq specifies
- [Viewer controls](/quest/m2/compose/controls.md) - toggles and priorities the spec carries
- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
2 changes: 1 addition & 1 deletion quest/m2/pin-browser-audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ Moved to m2 with the [web studio](/quest/m2/web.md) on 2026-11-09

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own
2 changes: 1 addition & 1 deletion quest/m2/pin-browser-video.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ Moved to m2 with the [web studio](/quest/m2/web.md) on 2026-11-09

## Required

- [moq-mux's decoupled playout clock is pinned](/quest/m0/pin-sync.md) - moq-dev/moq#8272, which no later pin can skip
- [The studio is caught up to moq's main](/quest/m0/pin-main.md) - moq's breaking changes since moq-dev/moq#8272, so this pin takes only its own