Skip to content

Update dependency @bufbuild/protobuf to v2 - #1055

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/bufbuild-protobuf-2.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/bufbuild-protobuf-2.x

Conversation

@renovate

@renovate renovate Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@bufbuild/protobuf (source) ^1.10.1^2.0.0 age confidence

Release Notes

bufbuild/protobuf-es (@​bufbuild/protobuf)

v2.14.1

Compare Source

What's Changed

This release deprecates configureTextEncoding() from @bufbuild/protobuf/wire. If you run @bufbuild/protobuf in an environment that does not provide the Text Encoding API, please migrate to a polyfill that installs TextEncoder (with the methods encode and optionally encodeInto) and TextDecoder (with the fatal: true constructor argument and the decode method) on globalThis instead. Please see #​1517 for the rationale.

Full Changelog: bufbuild/protobuf-es@v2.14.0...v2.14.1

v2.14.0

Compare 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):

fixture toBinary fromBinary toJson fromJson
general 4.66x 1.46x 2.29x 1.67x
scalar 2.91x 1.96x 1.74x 1.64x
repeated-scalar 4.37x 1.53x 3.06x 1.65x
map-scalar 4.43x 1.44x 2.42x 2.28x
repeated-message 5.27x 1.89x 1.71x 1.63x
map-message 5.21x 1.95x 1.81x 1.66x
user-tiny 1.44x 1.99x 1.49x 1.50x
user-normal 5.24x 1.99x 2.33x 2.03x

Individual changes are below:

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.13.0...v2.14.0

v2.13.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.12.1...v2.13.0

v2.12.1

Compare Source

What's Changed

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.12.0...v2.12.1

v2.12.0

Compare Source

What's Changed
New Contributors

Full Changelog: bufbuild/protobuf-es@v2.11.0...v2.12.0

v2.11.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.10.2...v2.11.0

v2.10.2

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.10.1...v2.10.2

v2.10.1

Compare Source

What's Changed
New Contributors

Full Changelog: bufbuild/protobuf-es@v2.10.0...v2.10.1

v2.10.0

Compare Source

What's Changed
New Contributors

Full Changelog: bufbuild/protobuf-es@v2.9.0...v2.10.0

v2.9.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.8.0...v2.9.0

v2.8.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.7.0...v2.8.0

v2.7.0

Compare Source

What's Changed

[!IMPORTANT]

TypeScript 5.9 includes breaking changes to lib.d.ts, forcing us to change return types for some functions from Uint8Array to Uint8Array<ArrayBuffer>. See #​1200 for details.

Full Changelog: bufbuild/protobuf-es@v2.6.3...v2.7.0

v2.6.3

Compare Source

What's Changed

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.6.2...v2.6.3

v2.6.2

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.6.1...v2.6.2

v2.6.1

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.6.0...v2.6.1

v2.6.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.5.2...v2.6.0

v2.5.2

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.5.1...v2.5.2

v2.5.1

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.5.0...v2.5.1

v2.5.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.4.0...v2.5.0

v2.4.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.3.0...v2.3.1

v2.3.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.2.5...v2.3.0

v2.2.5

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.2.4...v2.2.5

v2.2.4

Compare Source

What's Changed

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.2.3...v2.2.4

v2.2.3

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.2.2...v2.2.3

v2.2.2

Compare Source

What's Changed

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.2.1...v2.2.2

v2.2.1

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.2.0...v2.2.1

v2.2.0

Compare Source

What's Changed

New Contributors

Full Changelog: bufbuild/protobuf-es@v2.1.0...v2.2.0

v2.1.0

Compare Source

What's Changed

Full Changelog: bufbuild/protobuf-es@v2.0.0...v2.1.0

v2.0.0

Compare 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:

import { create, toBinary } from "@bufbuild/protobuf";
import { UserSchema } from "./gen/example_pb";

let user = create(UserSchema, {
  firstName: "Homer",
  lastName: "Simpson",
  active: true,
});

const bytes = toBinary(UserSchema, user);

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:

  • #​397 Provide custom options at runtime
  • #​551 Generated types allow assigning wrong message type if it is a superset of the target type
  • #​414 Improvements for proto2 required
  • #​738 type-save full enum value names
  • #​928 Better interop with 3rd party frameworks requiring plain objects
  • #​508 JSON types

[!TIP]

Take a look at the upgrade guide to learn more.

[!NOTE]

Connect-ES does not support version 2 yet. We will update it shortly.

Contributors

Thanks to @​srikrsna-buf for his contributions to v2!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 9am on the first day of the month"
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from 60062ba to 0341e75 Compare May 12, 2026 14:47
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from 0341e75 to ac76339 Compare May 18, 2026 17:38
@renovate
renovate Bot requested review from 1egoman and lukasIO as code owners May 18, 2026 17:38
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from 8459f2e to 031b258 Compare June 1, 2026 19:40
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from 031b258 to e419985 Compare June 11, 2026 11:12
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from e419985 to 724f4ed Compare July 6, 2026 15:03

@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 found 3 potential issues.

Open in Devin Review

},
"dependencies": {
"@bufbuild/protobuf": "^1.10.1"
"@bufbuild/protobuf": "^2.0.0"

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.

🔴 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:23
  • proto2.makeEnum(...) — used extensively across all proto JS files
  • proto2.makeMessageType(...) — used extensively across all proto JS files
  • import { Message, proto2 } from "@bufbuild/protobuf"proto/audio_frame_pb.d.ts:21
  • import 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.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

},
"dependencies": {
"@bufbuild/protobuf": "^1.10.1"
"@bufbuild/protobuf": "^2.0.0"

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.

🟡 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-change or 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.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread livekit-ffi-node-bindings/package.json
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from 33f4ad8 to e357459 Compare July 16, 2026 16:07
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from 7cab60d to b521e8c Compare July 24, 2026 15:33
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from b521e8c to 344bd0b Compare July 30, 2026 18:11
@renovate
renovate Bot requested a review from ladvoc as a code owner July 30, 2026 18:11
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from 344bd0b to d3f89bf Compare August 4, 2026 13:26
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 3 times, most recently from 8e43392 to ebccac7 Compare August 14, 2026 12:34
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from b22b760 to 0462ec9 Compare August 27, 2026 12:42
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 4 times, most recently from ca534c1 to 46b3d97 Compare September 8, 2026 17:50
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch 2 times, most recently from 88edd16 to 3463c2b Compare September 10, 2026 19:00
@renovate
renovate Bot force-pushed the renovate/bufbuild-protobuf-2.x branch from 3463c2b to 0e4de34 Compare September 14, 2026 20:22
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.

0 participants