Skip to content

fix(deps): bump a2a-sdk to >=1.0.2,<1.1#586

Merged
bokelley merged 1 commit intomainfrom
bokelley/bump-a2a-sdk
May 5, 2026
Merged

fix(deps): bump a2a-sdk to >=1.0.2,<1.1#586
bokelley merged 1 commit intomainfrom
bokelley/bump-a2a-sdk

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented May 5, 2026

Summary

Lifts the a2a-sdk<1.0.2 ceiling. Upstream 1.0.2 reverted the proto_utils repeated-field check from field.is_repeated back to field.label == LABEL_REPEATED, which the upb C-extension FieldDescriptor exposes — the regression that forced the previous pin is fixed.

Adopters of adcp==4.4.0 (latest) were locked on the broken 1.0.1 line by this pin with no upstream patch to fall back on.

Test plan

  • pip install -e . resolves to a2a-sdk==1.0.2
  • pytest tests/ — 3722 passed, 17 skipped, 1 xfailed
  • pytest tests/conformance/ — 470 passed, 5 skipped (wire-level a2a coverage)
  • No code changes needed; the SDK API surface we depend on is stable across 1.0.1 → 1.0.2

🤖 Generated with Claude Code

a2a-sdk 1.0.2 reverted the proto_utils repeated-field check from
``field.is_repeated`` back to ``field.label == LABEL_REPEATED``, which
the upb C-extension FieldDescriptor exposes. The regression that forced
the previous ``<1.0.2`` ceiling is fixed upstream, so adopters were
locked on the broken 1.0.1 line via our pin.

Full test suite (3722 unit + 470 conformance) passes against 1.0.2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit 2fd640c into main May 5, 2026
11 of 15 checks passed
@bokelley bokelley deleted the bokelley/bump-a2a-sdk branch May 5, 2026 17:13
bokelley added a commit that referenced this pull request May 5, 2026
Reverts the bump from #586. CI Python 3.11 confirmed a2a-sdk 1.0.2
still triggers `'google._upb._message.FieldDescriptor' object has no
attribute 'label'` on every A2A wire test — the regression that forced
the original `<1.0.2` ceiling is NOT fixed in 1.0.2. Restoring the
ceiling so adopters of 4.4.x stay on the working 1.0.1 line.

PyPI 4.4.1 published the broken pin and should be yanked manually.
This revert ships as 4.4.2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bokelley added a commit that referenced this pull request May 5, 2026
#588)

* fix(deps): re-pin a2a-sdk<1.0.2 (revert #586)

Reverts the bump from #586. CI Python 3.11 confirmed a2a-sdk 1.0.2
still triggers `'google._upb._message.FieldDescriptor' object has no
attribute 'label'` on every A2A wire test — the regression that forced
the original `<1.0.2` ceiling is NOT fixed in 1.0.2. Restoring the
ceiling so adopters of 4.4.x stay on the working 1.0.1 line.

PyPI 4.4.1 published the broken pin and should be yanked manually.
This revert ships as 4.4.2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(deps): pin protobuf>=6 + canary test for a2a-sdk×protobuf matrix

The previous revert (a2a-sdk<1.0.2) unbroke our CI on protobuf 7.34.1
but did NOT fix the original upstream caller (salesagent), who runs
protobuf 5.29.5 — the upb FieldDescriptor on 5.x lacks ``is_repeated``,
which a2a-sdk 1.0.1's ``@validate_proto_required_fields`` reads on
every ``message/send``. Result: every JSON-RPC invocation 500s before
any handler runs.

Adding ``protobuf>=6,<8`` rules out the broken 5.x cell. Combined with
the existing ``a2a-sdk>=1.0.1,<1.0.2``, adopters land in a known-good
matrix cell on every supported wheel.

Adds tests/test_a2a_protobuf_compat.py — a fast canary that probes a
real ``FieldDescriptor`` instance and fails with a readable error when
a future dep bump moves us back into a broken cell.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant