chore: bump package versions - #3879
Conversation
|
Warning Review limit reachedNext included review available in 1 minute. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (21)
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 |
|
No issues found. |
SummaryBumps published JS packages and non-Rust bindings (Python, Swift, Kotlin, Go) after the #3793 API break, with lockfiles and install-doc pins updated to match. Rust crates stay on release-plz. Classifications follow pre-1.0 convention (additive = patch, breaking = minor) from the exported surface rather than commit prefixes. Positive improvement?Yes. Without this, the next publish would ship breaking API under stale patch versions. The per-package table and the decision to leave purely additive packages ( Worth the complexity?Yes — the change itself is mechanical (versions + locks + README pins). The complexity is in the classification audit, which is already done in the PR description and is appropriate for a multi-package bump. Alternative approach?A single shared minor across the whole JS workspace was considered and correctly rejected. No better shape than shipping the bumps that match the breaks already on main. MERGE This is an automated review, not the maintainer's decision |
The dev merge (#3793) landed breaking API changes across the published JavaScript packages and every non-Rust binding since the last bumps (#3401, #3548). JavaScript: - @moq/net 0.3.5 -> 0.4.0: Connection namespace collapses into one class; announcements are prefix routes (Update {prefix, captures, kind, route}); Track.Info latencyMax/ordered -> maxAge; readFrame moves to the Ordered handle; writeDatagram -> insertDatagram. - @moq/pattern 0.1.0 -> 0.2.0: PatternError -> InvalidPattern. - @moq/hang 0.4.3 -> 0.5.0: catalog timeline -> archive; Container.Timeline moves to Hang.Timeline; Legacy.Producer takes a format. - @moq/json 0.3.3 -> 0.4.0 and @moq/binary 0.1.0 -> 0.2.0: producers and consumers take one options object; compression is a string. - @moq/watch 0.5.4 -> 0.6.0: latency splits into delay and buffer; Latency/Paced/Bound exports removed; reload -> announced. - @moq/publish 0.4.7 -> 0.5.0: BroadcastProps.connection -> origin, latencyMax -> maxAge; capture.out.frame -> out.frames. - @moq/auth 0.1.0 -> 0.2.0: free key functions fold into Key and KeySet; an oct JWK without kty is refused. - @moq/room 0.1.0 -> 0.2.0: Claims get/put -> subscribe/publish arrays; connection props take Moq.Connection. - @moq/msf 0.2.2 -> 0.3.0: fetch() takes Moq.Track.Ordered. - @moq/boy 0.3.1 -> 0.4.0: GameConfig requires origin; latency -> delay. - @moq/signals 0.2.3 -> 0.2.4: Derived and GetterValues added. - @moq/loc 0.2.2 -> 0.2.3: Format gains kind and end(). Bindings: - moq-rs (Python) 0.4.7 -> 0.5.0, Swift 0.4.6 -> 0.5.0, Kotlin 0.4.5 -> 0.5.0, Go wrapper 0.6 -> 0.7: Announcement -> AnnounceUpdate, publisher()/consumer() -> publish()/consume(), publish_media splits into audio/video/container, set_route/set_announce -> announce/unannounce, dynamic() takes a prefix and route. Rust crates are left to release-plz. @moq/flate has no shipped change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2882b21 to
14a9acf
Compare
|
Merge summary:
(Written by Claude Opus 5.5) |
Patch bumps for unreleased behavior since #3879. Rust stays with release-plz. Go stays at 0.7 because the wrapper additions are compatible and CI owns that patch. Co-Authored-By: Grok <noreply@x.ai>

Problem
The dev merge (#3793) landed on main with breaking API changes across the published JavaScript packages and every non-Rust binding, but no version has moved since #3401 / #3548. The next publish would ship those breaks under a patch range.
Approach
Each package was diffed from its last version-line commit to HEAD and classified from the exported surface, not commit prefixes. Pre-1.0: additive = patch, removed/renamed/changed = minor. Lockfiles (
bun.lock,uv.lock) and the documented install coordinates (kt/README.md,swift/README.md, the esm.sh pins injs/watch/README.mdandjs/publish/README.md) follow.Rust crates are release-plz's (
.release-plz.toml,release-rs.yml); everyCargo.tomlis untouched.Impact
Connection.Reload/Establishednamespace -> oneConnectionclass;Announce.Event {path, active}->Update {prefix, captures, kind, route},announced(Path.Pattern);Track.Info.latencyMax/ordered->maxAge;readFrame/nextGroupmove tosubscriber.ordered();writeDatagram->insertDatagram(sequence, timestamp, payload);RemoteError->Error.Stream/Error.SessionPatternError->InvalidPattern,ErrorCode->InvalidPattern.Codetimeline-> rootarchive(+clock);Container.Timeline->Hang.Timeline;Container.Legacy.Producer(track, format, props);trackInforequirespriority,latencyMax->maxAge(track, config?)->{ track, ... };compression: boolean->"none" | "deflate";ProducerConfig/ConsumerConfigrenamedCompressionchange as jsonlatency/latency-min/latency-max/jitter->delay/buffer(attrs and props, old setters throw);Latency,Paced,Bound,latencyBoundsremoved;reload->announced; decoder ctors take one props objectBroadcastProps.connection->origin: Origin.Table,latencyMax->maxAge; elementcapturefield private;Video.Capture.out.frame->out.frames; encoderbandwidthis aBandwidth.Handleload/loadPublic/sign/verify/generate->Key.*;loadSet/findKey/... ->KeySet.*; kty-lessoctJWK refused;PatternError->InvalidPatternClaims.get/put: string->subscribe/publish: string[];connectionprops takeMoq.Connection;Localcamera/screen fields removedfetch(track: Track.Subscriber)->Track.Ordered(additiveexttoo)GameConfigrequiresorigin,connection: Moq.Connection;Game.latency->delayDerived,GetterValuesadded;getter()accepts foreign readablesFormat(kind = "data"),Format.kind,Format.end()addedAnnouncement->AnnounceUpdate(path->prefix),Announced->AnnounceConsumer;publisher()/consumer()->publish()/consume();publish_media*->publish_audio/publish_video/publish_container;set_route/set_announce->announce/unannounce;dynamic(prefix, route)publisher/consumer->publish/consume;publishMedia*split;setRoute/setAnnounce->announce/unannounce;RouteWatch/routeUpdates()removed; TLS setters nowthrows;subscribeAudio->decodeAudioAnnounced/Announcement/OriginOptions->AnnounceConsumer/AnnounceUpdate/OriginConfig;announcements(prefix)->announcements(AnnounceConfig);routes()removed;publisher()/consumer()->publish()/consume()Announced(prefix)->Announced(AnnounceOptions),Announcement->AnnounceUpdate;RequestBroadcasttakesctx;Dynamic(prefix, route);SetRoute/SetAnnounce->Announce/Unannounce;EncodeAudio/EncodeVideotake*Bandwidth;Session.Publisher()->Publish()Wire: none in this PR (the format changes shipped in #3793).
Examined and left alone:
@moq/flate: only a@types/bundevDependency bump, nothing shipped changes.@moq/clock,@moq/wasm, demos, smoke clients: private, not released.Cargo.tomlversions: release-plz.py/moq-ffi,swift/ffi,kt/moq-ffi,go/ffi,go.modFFI placeholder: track themoq-fficrate.workspace:^(net -> signals isworkspace:*), so the publish step rewrites them from the bumped versions; no manual range edits needed.Alternatives
Bump the whole JS workspace to one shared minor. Rejected:
signalsandlocare purely additive and stay patch per the convention.Follow-ups
context.Contextand other breaks before this bump (feat(go)!: publish the wrapper as moq.dev/moq #2957 set 0.6 on 2026-08-20); this moves to 0.7 for everything since.(Written by Claude Opus 5)
🤖 Generated with Claude Code