Update dependency @bufbuild/protobuf to v2 - #1055
renovate[bot] wants to merge 1 commit into
Conversation
60062ba to
0341e75
Compare
0341e75 to
ac76339
Compare
8459f2e to
031b258
Compare
031b258 to
e419985
Compare
e419985 to
724f4ed
Compare
| }, | ||
| "dependencies": { | ||
| "@bufbuild/protobuf": "^1.10.1" | ||
| "@bufbuild/protobuf": "^2.0.0" |
There was a problem hiding this comment.
🔴 Protobuf runtime upgraded to v2 but generated code still uses incompatible v1 API, breaking all proto operations
The protobuf runtime dependency is upgraded to v2 ("@bufbuild/protobuf": "^2.0.0" at livekit-ffi-node-bindings/package.json:36) without regenerating the proto files, so all protobuf serialization and deserialization will fail at runtime.
Impact: The package is completely non-functional — any code that imports or uses protobuf messages will crash.
Generated proto files use v1 APIs that don't exist in v2
The proto files in proto/ were generated by protoc-gen-es v1.10.1 (visible in the header comment of each file, e.g. proto/audio_frame_pb.js:15). They import and use v1-specific APIs:
const { proto2 } = require("@bufbuild/protobuf")—proto/audio_frame_pb.js:23proto2.makeEnum(...)— used extensively across all proto JS filesproto2.makeMessageType(...)— used extensively across all proto JS filesimport { Message, proto2 } from "@bufbuild/protobuf"—proto/audio_frame_pb.d.ts:21import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"—proto/audio_frame_pb.d.ts:20
In @bufbuild/protobuf v2, the Message base class, proto2.makeEnum, proto2.makeMessageType, and the type exports like FieldList and PlainMessage were all removed or completely restructured. The v2 library uses a descriptor-based approach instead.
Additionally, devDependencies still pins @bufbuild/protoc-gen-es at ^1.10.1 which has a peer dependency on @bufbuild/protobuf@1.10.1, creating a version conflict (pnpm-lock.yaml shows it resolved with @bufbuild/protobuf@2.12.1 which is incompatible).
The index.d.ts:31 also re-exports PartialMessage from @bufbuild/protobuf, which has a different type signature in v2.
Prompt for agents
The @bufbuild/protobuf runtime was upgraded from v1 to v2, but the generated proto files in proto/ were generated with protoc-gen-es v1.10.1 and use the v1 API (Message class, proto2.makeEnum, proto2.makeMessageType, etc.) which does not exist in v2. There are two approaches to fix this:
1. Keep @bufbuild/protobuf at v1: Revert the dependency back to "^1.10.1" to match the generated code.
2. Fully migrate to v2: Upgrade @bufbuild/protoc-gen-es to v2 in devDependencies, then regenerate all proto files using the v2 plugin (which produces completely different output using the descriptor-based API). Also update index.d.ts since PartialMessage has moved in v2.
The devDependency @bufbuild/protoc-gen-es should always match the major version of the @bufbuild/protobuf runtime dependency.
Was this helpful? React with 👍 or 👎 to provide feedback.
| }, | ||
| "dependencies": { | ||
| "@bufbuild/protobuf": "^1.10.1" | ||
| "@bufbuild/protobuf": "^2.0.0" |
There was a problem hiding this comment.
🟡 Missing changeset file required by repository contribution rules
No changeset file was added for this PR (no new files in .changeset/ directory at livekit-ffi-node-bindings/package.json:36), so the change cannot be properly documented or versioned.
Impact: The dependency bump won't be tracked in the changelog and may not trigger the required version bump.
AGENTS.md requires a changeset for every PR
The AGENTS.md file states:
- "Every PR needs a changeset"
- "Changeset must list any crates which need to be bumped stemming from the change"
- "Document changes interactively from the CLI with
knope document-changeor create manually in/.changeset"
The git diff between the base and head commits shows no new files in .changeset/. Since this PR changes a runtime dependency version (which is a breaking change), it especially needs a changeset documenting the bump.
Prompt for agents
Add a changeset file in /.changeset/ documenting this dependency upgrade. You can create one interactively with `knope document-change` or manually create a markdown file in the .changeset directory that lists the @livekit/rtc-ffi-bindings package as needing a version bump due to the @bufbuild/protobuf upgrade.
Was this helpful? React with 👍 or 👎 to provide feedback.
33f4ad8 to
e357459
Compare
7cab60d to
b521e8c
Compare
b521e8c to
344bd0b
Compare
344bd0b to
d3f89bf
Compare
8e43392 to
ebccac7
Compare
b22b760 to
0462ec9
Compare
ca534c1 to
46b3d97
Compare
88edd16 to
3463c2b
Compare
Generated by renovateBot
3463c2b to
0e4de34
Compare
This PR contains the following updates:
^1.10.1→^2.0.0Release Notes
bufbuild/protobuf-es (@bufbuild/protobuf)
v2.14.1Compare Source
What's Changed
This release deprecates
configureTextEncoding()from@bufbuild/protobuf/wire. If you run@bufbuild/protobufin an environment that does not provide the Text Encoding API, please migrate to a polyfill that installsTextEncoder(with the methodsencodeand optionallyencodeInto) andTextDecoder(with thefatal: trueconstructor argument and thedecodemethod) onglobalThisinstead. Please see #1517 for the rationale.Full Changelog: bufbuild/protobuf-es@v2.14.0...v2.14.1
v2.14.0Compare Source
What's Changed
This is a performance release of protobuf-es. We've made substantial improvements to the runtime, while also reducing bundle size by 5%. Here are the results from our benchmarks (compared against v2.13.0):
Individual changes are below:
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.13.0...v2.14.0
v2.13.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.12.1...v2.13.0
v2.12.1Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.12.0...v2.12.1
v2.12.0Compare Source
What's Changed
exactOptionalPropertyTypesby @haines in #1371utf8_validationby @emcfarlane in #1386New Contributors
Full Changelog: bufbuild/protobuf-es@v2.11.0...v2.12.0
v2.11.0Compare Source
What's Changed
elide_plugin_version=trueby @timostamm in #1336Full Changelog: bufbuild/protobuf-es@v2.10.2...v2.11.0
v2.10.2Compare Source
What's Changed
google.protobuf.Value.null_valuein map values in ProtoJSON by @timostamm in #1314Full Changelog: bufbuild/protobuf-es@v2.10.1...v2.10.2
v2.10.1Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.10.0...v2.10.1
v2.10.0Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.9.0...v2.10.0
v2.9.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.8.0...v2.9.0
v2.8.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.7.0...v2.8.0
v2.7.0Compare Source
What's Changed
Uint8ArraytoUint8Array<ArrayBuffer>by @timostamm in #1200Full Changelog: bufbuild/protobuf-es@v2.6.3...v2.7.0
v2.6.3Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.6.2...v2.6.3
v2.6.2Compare Source
What's Changed
roundinstead ofceilwhen converting Timestamp to milliseconds by @srikrsna-buf in #1178Full Changelog: bufbuild/protobuf-es@v2.6.1...v2.6.2
v2.6.1Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.6.0...v2.6.1
v2.6.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.5.2...v2.6.0
v2.5.2Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.5.1...v2.5.2
v2.5.1Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.5.0...v2.5.1
v2.5.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.4.0...v2.5.0
v2.4.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.3.0...v2.3.1
v2.3.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.2.5...v2.3.0
v2.2.5Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.2.4...v2.2.5
v2.2.4Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.2.3...v2.2.4
v2.2.3Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.2.2...v2.2.3
v2.2.2Compare Source
What's Changed
New Contributors
Full Changelog: bufbuild/protobuf-es@v2.2.1...v2.2.2
v2.2.1Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.2.0...v2.2.1
v2.2.0Compare Source
What's Changed
DescMethodvariants by @srikrsna-buf in #985New Contributors
Full Changelog: bufbuild/protobuf-es@v2.1.0...v2.2.0
v2.1.0Compare Source
What's Changed
Full Changelog: bufbuild/protobuf-es@v2.0.0...v2.1.0
v2.0.0Compare Source
What's new in version 2
To support Protobuf editions, we have to make breaking changes that also affect users of proto2 and proto3. This prompted us to make more extensive changes that take feedback from version 1 into account:
We no longer use classes. Instead, we generate a schema object and a type for every message. To create a new instance, to serialize, and for other concerns, we provide functions. Here is a simple example:
If you use proto3, messages are now plain objects. Files with proto2 and editions use the prototype chain to track field presence.
This approach solves several outstanding issues, such as:
Contributors
Thanks to @srikrsna-buf for his contributions to v2!
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.