Skip to content

Commit 39159e8

Browse files
authored
Merge branch 'main' into dependabot/uv/requests-2.33.0
2 parents 29eea1a + 4a247ed commit 39159e8

15 files changed

Lines changed: 845 additions & 161 deletions

File tree

.github/actions/spelling/allow.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ lifecycles
8585
linting
8686
Llm
8787
lstrips
88+
mcp
8889
middleware
8990
mikeas
9091
mockurl
@@ -100,6 +101,8 @@ openapiv2
100101
opensource
101102
otherurl
102103
pb2
104+
podman
105+
Podman
103106
poolclass
104107
postgres
105108
POSTGRES
@@ -127,6 +130,8 @@ socio
127130
sse
128131
starlette
129132
Starlette
133+
subgids
134+
subuids
130135
sut
131136
SUT
132137
swagger
@@ -138,9 +143,6 @@ tiangolo
138143
TResponse
139144
typ
140145
typeerror
141-
vulnz
142-
Podman
143-
podman
144146
UIDs
145-
subuids
146-
subgids
147+
vulnz
148+
whl
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
name: Install Smoke Test
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
paths:
8+
- 'src/**'
9+
- 'pyproject.toml'
10+
- 'uv.lock'
11+
- 'scripts/test_install_smoke.py'
12+
- 'scripts/test_install_smoke.sh'
13+
# Self-callout: re-run when this workflow changes so YAML edits are validated in PRs.
14+
- '.github/workflows/install-smoke.yml'
15+
permissions:
16+
contents: read
17+
18+
jobs:
19+
install-smoke:
20+
name: Verify ${{ matrix.profile.name }} install
21+
runs-on: ubuntu-latest
22+
if: github.repository == 'a2aproject/a2a-python'
23+
strategy:
24+
matrix:
25+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
26+
profile:
27+
- name: base
28+
extras: ''
29+
- name: http-server
30+
extras: '[http-server]'
31+
- name: grpc
32+
extras: '[grpc]'
33+
- name: telemetry
34+
extras: '[telemetry]'
35+
- name: sql
36+
extras: '[sql]'
37+
steps:
38+
- name: Checkout code
39+
uses: actions/checkout@v6
40+
41+
- name: Install uv
42+
uses: astral-sh/setup-uv@v7
43+
with:
44+
python-version: ${{ matrix.python-version }}
45+
46+
- name: Build package
47+
run: uv build --wheel
48+
49+
- name: Install with ${{ matrix.profile.name }} dependencies only
50+
run: |
51+
uv venv .venv-smoke
52+
# Install only the built wheel + the profile's extras -- no
53+
# dev deps. This simulates what an end-user gets with
54+
# `pip install a2a-sdk${{ matrix.profile.extras }}`.
55+
WHEEL=$(ls dist/*.whl)
56+
VIRTUAL_ENV=.venv-smoke uv pip install "${WHEEL}${{ matrix.profile.extras }}"
57+
58+
- name: List installed packages
59+
run: VIRTUAL_ENV=.venv-smoke uv pip list
60+
61+
- name: Run import smoke test
62+
run: .venv-smoke/bin/python scripts/test_install_smoke.py ${{ matrix.profile.name }}

.github/workflows/itk.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ name: ITK
22

33
on:
44
push:
5-
branches: [main, 1.0-dev]
5+
branches: [main]
66
pull_request:
77
paths:
88
- 'src/**'
99
- 'itk/**'
1010
- 'pyproject.toml'
11+
- 'uv.lock'
12+
# Self-callout: re-run when this workflow changes so YAML edits are validated in PRs.
13+
- '.github/workflows/itk.yaml'
1114

1215
permissions:
1316
contents: read

.github/workflows/linter.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22
name: Lint Code Base
33
on:
44
pull_request:
5-
branches: [main, 1.0-dev]
5+
branches: [main]
6+
paths:
7+
- '**.py'
8+
- '**.pyi'
9+
- 'pyproject.toml'
10+
- 'uv.lock'
11+
- '.jscpd.json'
12+
# Self-callout: re-run when this workflow changes so YAML edits are validated in PRs.
13+
- '.github/workflows/linter.yaml'
614
permissions:
715
contents: read
816
jobs:

.github/workflows/minimal-install.yml

Lines changed: 0 additions & 41 deletions
This file was deleted.

.github/workflows/run-tck.yaml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ on:
55
branches: [ "main" ]
66
pull_request:
77
branches: [ "main" ]
8-
paths-ignore:
9-
- '**.md'
10-
- 'LICENSE'
11-
- '.github/CODEOWNERS'
8+
paths:
9+
- 'src/**'
10+
- 'tck/**'
11+
- 'pyproject.toml'
12+
- 'uv.lock'
13+
# Self-callout: re-run when this workflow changes so YAML edits are validated in PRs.
14+
- '.github/workflows/run-tck.yaml'
1215

1316
permissions:
1417
contents: read

.github/workflows/unit-tests.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@
22
name: Run Unit Tests
33
on:
44
push:
5-
branches: [main, 1.0-dev]
5+
branches: [main]
66
pull_request:
7+
paths:
8+
- 'src/**'
9+
- 'tests/**'
10+
- 'pyproject.toml'
11+
- 'uv.lock'
12+
- 'scripts/run_db_tests.sh'
13+
- 'scripts/docker-compose.test.yml'
14+
# Self-callout: re-run when this workflow changes so YAML edits are validated in PRs.
15+
- '.github/workflows/unit-tests.yml'
716
permissions:
817
contents: read
918

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## [1.0.1](https://github.com/a2aproject/a2a-python/compare/v1.0.0...v1.0.1) (2026-04-22)
4+
5+
6+
### Bug Fixes
7+
8+
* **compat:** avoid unconditional grpc import in v0.3 context builders ([#1006](https://github.com/a2aproject/a2a-python/issues/1006)) ([6b46ceb](https://github.com/a2aproject/a2a-python/commit/6b46ceb3e036290ea2b0764b1697f2901ad2df08))
9+
10+
## [1.0.0](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.3...v1.0.0) (2026-04-20)
11+
12+
See the [**v0.3 → v1.0 migration guide**](docs/migrations/v1_0/README.md) and changelog entries for alpha versions below.
13+
14+
### ⚠ BREAKING CHANGES
15+
16+
* remove Vertex AI Task Store integration ([#999](https://github.com/a2aproject/a2a-python/issues/999))
17+
18+
### Bug Fixes
19+
20+
* rely on agent executor implementation for stream termination ([#988](https://github.com/a2aproject/a2a-python/issues/988)) ([d77cd68](https://github.com/a2aproject/a2a-python/commit/d77cd68f5e69b0ffccaca5e3deab4c1a397cfe9c))
21+
22+
23+
### Documentation
24+
25+
* add comprehensive v0.3 to v1.0 migration guide ([#987](https://github.com/a2aproject/a2a-python/issues/987)) ([10dea8b](https://github.com/a2aproject/a2a-python/commit/10dea8b4448c5cb7d9e72d74677fd60880cc38df))
26+
27+
28+
### Miscellaneous Chores
29+
30+
* release 1.0.0 ([530ec37](https://github.com/a2aproject/a2a-python/commit/530ec37f4c4580095c2411e40740ca0186fd1240))
31+
* remove Vertex AI Task Store integration ([#999](https://github.com/a2aproject/a2a-python/issues/999)) ([7fce2ad](https://github.com/a2aproject/a2a-python/commit/7fce2ada1eb331e230925993758e8c7663da9a13))
32+
333
## [1.0.0-alpha.3](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2026-04-17)
434

535

README.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121

2222
---
2323

24+
> [!IMPORTANT]
25+
> **Upgrading the SDK from `0.3` to `1.0`?** See the [**v0.3 → v1.0 migration guide**](docs/migrations/v1_0/README.md). For supported A2A spec versions, see [Compatibility](#-compatibility).
26+
27+
2428
## ✨ Features
2529

2630
- **A2A Protocol Compliant:** Build agentic applications that adhere to the Agent2Agent (A2A) Protocol.
@@ -36,16 +40,16 @@
3640

3741
## 🧩 Compatibility
3842

39-
This SDK implements the A2A Protocol Specification [`0.3`](https://a2a-protocol.org/v0.3.0/specification).
40-
41-
> [!IMPORTANT]
42-
> There is an [**alpha version**](https://github.com/a2aproject/a2a-python/releases?q=%22v1.0.0-alpha%22&expanded=true) available with support for both [`1.0`](https://a2a-protocol.org/v1.0.0/specification/) and [`0.3`](https://a2a-protocol.org/v0.3.0/specification) versions. Development for this version is taking place in the [`1.0-dev`](https://github.com/a2aproject/a2a-python/tree/1.0-dev) branch, tracked in [#701](https://github.com/a2aproject/a2a-python/issues/701).
43+
This SDK implements the A2A Protocol Specification [`1.0`](https://a2a-protocol.org/v1.0.0/specification/), with compatibility mode for [`0.3`](https://a2a-protocol.org/v0.3.0/specification). See [#742](https://github.com/a2aproject/a2a-python/issues/742) for details on the compatibility scope.
4344

44-
| Transport | Client | Server |
45-
| :--- | :---: | :---: |
46-
| **JSON-RPC** |||
47-
| **HTTP+JSON/REST** |||
48-
| **GRPC** |||
45+
| Spec Version | Transport | Client | Server |
46+
| :--- | :--- | :---: | :---: |
47+
| **`1.0`** | JSON-RPC |||
48+
| **`1.0`** | HTTP+JSON/REST |||
49+
| **`1.0`** | gRPC |||
50+
| **`0.3`** (compat) | JSON-RPC |||
51+
| **`0.3`** (compat) | HTTP+JSON/REST |||
52+
| **`0.3`** (compat) | gRPC |||
4953

5054
---
5155

0 commit comments

Comments
 (0)