Skip to content

chore(python-sdk): bump protobuf-py to 0.6.0 and connectrpc to 0.12.1 - #2000

Merged
mishushakov merged 1 commit into
mainfrom
devin/1792497009-bump-protobuf-py
Oct 20, 2026
Merged

mishushakov merged 1 commit into
mainfrom
devin/1792497009-bump-protobuf-py

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Bumps the native protobuf-py-ext 0.1.1 → 0.6.0. protobuf-py pins protobuf-py-ext to its own version, and connectrpc/protoc-gen-connectrpc 0.11.1 pin protobuf-py==0.1.1, so the whole stack has to move together:

  • protobuf-py>=0.6.0,<0.7, connectrpc>=0.12.1,<0.13, codegen protoc-gen-py==0.6.0, protoc-gen-connectrpc==0.12.1 (pyproject + codegen.Dockerfile)
  • Relocked python-sdk, desktop-python, code-interpreter-python (only these packages change)
  • Regenerated envd stubs: WKT imports now use fully-qualified paths (protobuf.wkt.google.protobuf.timestamp_pb), which 0.7 will require. The Connect stubs pick up generator changes (positional-only server params, desc(), proto docstrings, server DEFAULT_READ_MAX_BYTES)

connectrpc 0.12 breaking changes don't affect the SDK: the new 4MB read limit only applies to servers (the client read_max_bytes default is still None), and the JSON unknown-fields change doesn't apply because envd uses our own _ProtoJSONCodec.

Note: the stream-deadline cancellation fix (connectrpc/connect-py#380) is still unreleased, so it isn't in 0.12.1.

Tests: ruff + ty check pass, 233 offline envd/RPC tests pass, and sync+async commands/filesystem integration tests against a real sandbox give 166 passed. The 2 symlink FileType failures also fail on main.

Link to Devin session: https://app.devin.ai/sessions/fe9081991121446e9142758681ebf049
Open in Devin Desktop: https://app.devin.ai/desktop/session/fe9081991121446e9142758681ebf049?variant=devin
Requested by: @mishushakov

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@changeset-bot

changeset-bot Bot commented Oct 20, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 67d6016

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@e2b/python-sdk Patch
@e2b/code-interpreter-python Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@cla-bot cla-bot Bot added the cla-signed label Oct 20, 2026

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

TASTE.md review: 0 violations — the PR only bumps dependency pins/lockfiles, regenerates internal envd protobuf/Connect stubs (no public SDK surface touched, so T-1/T-2 parity, T-3a, T-18 and T-56 are unaffected), and includes a changeset.

@github-actions

Copy link
Copy Markdown
Contributor

Package Artifacts

Built from e266add. Download artifacts from this workflow run.

JS SDK (e2b@2.56.1-devin-1792497009-bump-protobuf-py.0, with @e2b/dockerfile-utils@0.1.2-devin-1792497009-bump-protobuf-py.0):

npm install ./e2b-dockerfile-utils-0.1.2-devin-1792497009-bump-protobuf-py.0.tgz ./e2b-2.56.1-devin-1792497009-bump-protobuf-py.0.tgz

CLI (@e2b/cli@2.22.1-devin-1792497009-bump-protobuf-py.0):

npm install ./e2b-cli-2.22.1-devin-1792497009-bump-protobuf-py.0.tgz

Code Interpreter JS SDK (@e2b/code-interpreter@2.9.1-devin-1792497009-bump-protobuf-py.0):

npm install ./e2b-code-interpreter-2.9.1-devin-1792497009-bump-protobuf-py.0.tgz

Desktop JS SDK (@e2b/desktop@2.5.1-devin-1792497009-bump-protobuf-py.0):

npm install ./e2b-desktop-2.5.1-devin-1792497009-bump-protobuf-py.0.tgz

Python SDK (e2b==2.56.0+devin.1792497009.bump.protobuf.py, with e2b-dockerfile-utils==0.1.1+devin.1792497009.bump.protobuf.py):

pip install ./e2b_dockerfile_utils-0.1.1+devin.1792497009.bump.protobuf.py-py3-none-any.whl ./e2b-2.56.0+devin.1792497009.bump.protobuf.py-py3-none-any.whl

Code Interpreter Python SDK (e2b-code-interpreter==2.11.0+devin.1792497009.bump.protobuf.py):

pip install ./e2b_code_interpreter-2.11.0+devin.1792497009.bump.protobuf.py-py3-none-any.whl

Desktop Python SDK (e2b-desktop==2.7.0+devin.1792497009.bump.protobuf.py):

pip install ./e2b_desktop-2.7.0+devin.1792497009.bump.protobuf.py-py3-none-any.whl

@mishushakov
mishushakov marked this pull request as ready for review October 20, 2026 12:13
@mishushakov
mishushakov self-requested a review as a code owner October 20, 2026 12:14
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T12:16:37.428426Z 67d6016 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

⚠️ 1 issue in files not directly in the diff

⚠️ Large requests rejected by generated servers

When users omit read_max_bytes, generated ASGI and WSGI servers reject requests above the new 4 MB default. Previously, their None default accepted those requests.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I reviewed this PR and found no new bugs. It moves the SDK's runtime protobuf and Connect dependency ranges, and every path is covered by CODEOWNERS, so a human look is still worthwhile.

What was reviewed:

  • The codegen pins match between pyproject.toml and codegen.Dockerfile (protoc-gen-py==0.6.0, protoc-gen-connectrpc==0.12.1).
  • The regenerated stubs are generator output only: new WKT import paths, positional-only server Protocol params, docstrings, desc(). The client call paths are unchanged.
  • The new read_max_bytes=DEFAULT_READ_MAX_BYTES default only affects the generated ASGI/WSGI server classes. The SDK doesn't use them; it only uses the clients.
  • Some hand-written code still uses from protobuf.wkt import Timestamp (e2b/sandbox/filesystem/filesystem.py, tests/test_filesystem_models.py). By the PR description that path still works in 0.6 and is only dropped in 0.7, which the new <0.7 cap excludes.
Extended reasoning...

The change bumps protobuf-py from 0.1 to 0.6 and connectrpc from 0.11 to 0.12 for the Python SDK. It also relocks three uv.lock files and regenerates the envd filesystem/process stubs. No auth, crypto or data-exposure code is touched; the risk is runtime compatibility with the new native protobuf-py-ext. The repo's CODEOWNERS assigns all paths to a single owner, so approving automatically isn't appropriate.

@mishushakov
mishushakov enabled auto-merge (squash) October 20, 2026 13:48
@mishushakov
mishushakov disabled auto-merge October 20, 2026 13:51
@mishushakov
mishushakov merged commit f572bc7 into main Oct 20, 2026
33 of 35 checks passed
@mishushakov
mishushakov deleted the devin/1792497009-bump-protobuf-py branch October 20, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant