Skip to content

fix(changeset): drop the duplicate livekit-uniffi key blocking the livekit-protocol release - #1464

Merged
1egoman merged 1 commit into
mainfrom
ryan/fix-prost-changeset-duplicate-key
Sep 24, 2026
Merged

1egoman merged 1 commit into
mainfrom
ryan/fix-prost-changeset-duplicate-key

Conversation

@1egoman

@1egoman 1egoman commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Fixes #1461.

The bug

.changeset/upgrade_to_prost_0_14_across_the_whole_project.md lists livekit-uniffi: patch twice. The second one was appended by a65fe9d ("fix: upgrade livekit-uniffi prost 0.12 straggler") to a list that already had it.

Knope cannot parse front matter with a duplicate key — it fails the whole file:

Running step PrepareRelease(...)
Error: changesets::could_not_read_changeset
  × invalid front matter

The Knope Bot swallows that error and regenerates the release PR from the remaining changesets. There is no comment and no failing check — the release PR just quietly omits every package the file was supposed to bump. Verified by dry-running knope 0.23.0 against a worktree of main: moving this one file out reproduces the contents of #1455 exactly, which contains no livekit-protocol.

Why it shipped a broken crate

The prost changeset has had no effect since #1447 merged, so livekit-protocol stayed at 0.7.13 (prost ^0.12). But the prost 0.14 source was on main, and livekit-data-stream got a patch bump from an unrelated changeset (reliable-dc-replay) in release PR #1423. So 0.1.6 went to crates.io as:

crate published prost livekit-protocol
livekit-protocol 0.7.13 2026-09-08 ^0.12 —
livekit-data-stream 0.1.5 2026-09-09 ^0.12 ^0.7.13
livekit-data-stream 0.1.6 2026-09-23 ^0.14 ^0.7.13

Two prost versions in one graph, which is the E0599: no method named encoded_len in #1461.

The fix

Remove the duplicate line. knope release --dry-run then succeeds and produces:

webrtc-sys = 0.3.47, livekit-protocol = 0.8.0, livekit-api = 0.8.1,
livekit-token = 0.2.1, livekit-signaling = 0.1.4, libwebrtc = 0.3.50,
livekit = 0.9.3, livekit-ffi = 0.12.81, livekit-uniffi = 0.2.1,
livekit-datatrack = 0.2.1, livekit-common = 0.1.4, livekit-data-stream = 0.1.7,
livekit-rpc = 0.1.3, livekit-capture = 0.1.3

Once this lands the bot will regenerate #1455 with livekit-protocol 0.8.0 included, and merging that unblocks the reporter.

I checked the changeset's package list is complete for a breaking livekit-protocol bump: the only crates left out of that set — livekit-net, livekit-region, livekit-token-source, livekit-wakeword, device-info — reach neither livekit-protocol nor any other bumped crate.

Follow-up (not in this PR)

.github/workflows/changeset-check.yml already guards against knope's other silent-ignore case (quoted package names, #1411), but not duplicate keys — which is worse, since it discards the whole file rather than one line. Worth adding to changeset_detect.py.

🤖 Generated with Claude Code

…changeset

`livekit-uniffi: patch` is listed twice in the prost 0.14 changeset -- the
second one was appended by a65fe9d ("fix: upgrade livekit-uniffi prost 0.12
straggler") to a list that already had it.

Knope cannot parse front matter with a duplicate key. It fails the whole file
with `changesets::could_not_read_changeset: invalid front matter`, and the
Knope Bot swallows that error and regenerates the release PR from the
remaining changesets. There is no comment and no failing check: the release PR
just quietly omits every package the file was supposed to bump.

So the prost changeset has had no effect since #1447 merged, and
`livekit-protocol` has stayed at 0.7.13 / prost 0.12. Meanwhile
`livekit-data-stream` 0.1.6 was cut from a main that already had the prost 0.14
source, with its `livekit-protocol` pin still at `^0.7.13`. That puts prost
0.12 and 0.14 in one graph and is why the crate does not compile off crates.io
(#1461).

Removing the duplicate line makes `knope release --dry-run` succeed and
produce livekit-protocol 0.8.0 alongside the rest of the set.

Fixes #1461

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@1egoman
1egoman requested a review from ladvoc as a code owner September 24, 2026 16:37

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@1egoman
1egoman merged commit 0ea435c into main Sep 24, 2026
8 checks passed
@1egoman
1egoman deleted the ryan/fix-prost-changeset-duplicate-key branch September 24, 2026 16:40
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.

Release livekit-protocol 0.7.14 or 0.8

2 participants