Skip to content

Commit 3562c8a

Browse files
authored
Merge branch 'main' into nexusapigenintegration
2 parents a8a6de2 + b133ed9 commit 3562c8a

122 files changed

Lines changed: 14372 additions & 2118 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@
66

77

88
# Below are owners for modules in the temporalio/contrib/
9-
# and tests/contrib/ directories that are owned by teams
10-
# other than the SDK team. For each one, we add the owning team,
9+
# and tests/contrib/ directories that are owned by teams
10+
# other than the SDK team. For each one, we add the owning team,
1111
# as well as @temporalio/sdk, so the SDK team can continue to
1212
# manage repo-wide concerns.
13+
/temporalio/contrib/common/ @temporalio/ai-sdk @temporalio/sdk
1314
/temporalio/contrib/google_adk_agents/ @temporalio/ai-sdk @temporalio/sdk
15+
/temporalio/contrib/langgraph/ @temporalio/ai-sdk @temporalio/sdk
1416
/temporalio/contrib/langsmith/ @temporalio/ai-sdk @temporalio/sdk
1517
/temporalio/contrib/openai_agents/ @temporalio/ai-sdk @temporalio/sdk
18+
/temporalio/contrib/strands/ @temporalio/ai-sdk @temporalio/sdk
1619
/tests/contrib/google_adk_agents/ @temporalio/ai-sdk @temporalio/sdk
20+
/tests/contrib/langgraph/ @temporalio/ai-sdk @temporalio/sdk
1721
/tests/contrib/langsmith/ @temporalio/ai-sdk @temporalio/sdk
1822
/tests/contrib/openai_agents/ @temporalio/ai-sdk @temporalio/sdk
23+
/tests/contrib/strands/ @temporalio/ai-sdk @temporalio/sdk

.github/dependabot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "uv"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
cooldown:
8+
default-days: 14
9+
open-pull-requests-limit: 0
10+
- package-ecosystem: "github-actions"
11+
directory: "/"
12+
schedule:
13+
interval: "weekly"
14+
cooldown:
15+
default-days: 14
16+
open-pull-requests-limit: 0

.github/workflows/build-binaries.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
with:
4848
cache-bin: false
4949
workspaces: temporalio/bridge -> target
50+
key: ${{ env.pythonLocation }}
5051
- uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8
5152
- run: uv sync --all-extras
5253

.github/workflows/ci.yml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,17 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
python: ["3.10", "3.14"]
24-
os: [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest]
24+
os: [ubuntu-latest, ubuntu-arm, macos-arm, windows-latest]
2525
include:
2626
- os: ubuntu-latest
2727
python: "3.14"
2828
docsTarget: true
2929
openaiTestTarget: true
3030
clippyLinter: true
3131
- python: "3.10"
32-
pytestExtraArgs: "--reruns 3 --only-rerun \"RuntimeError: Failed validating workflow\""
32+
pytestExtraArgs: '--reruns 3 --only-rerun "RuntimeError: Failed validating workflow"'
3333
- os: ubuntu-arm
3434
runsOn: ubuntu-24.04-arm64-2-core
35-
- os: macos-intel
36-
runsOn: macos-15-intel
3735
- os: macos-arm
3836
runsOn: macos-latest
3937
runs-on: ${{ matrix.runsOn || matrix.os }}
@@ -44,12 +42,13 @@ jobs:
4442
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
4543
with:
4644
components: "clippy"
47-
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
48-
with:
49-
workspaces: temporalio/bridge -> target
5045
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
5146
with:
5247
python-version: ${{ matrix.pythonOverride || matrix.python }}
48+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
49+
with:
50+
workspaces: temporalio/bridge -> target
51+
key: ${{ env.pythonLocation }}
5352
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3
5453
with:
5554
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed
@@ -109,12 +108,13 @@ jobs:
109108
with:
110109
submodules: recursive
111110
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
112-
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
113-
with:
114-
workspaces: temporalio/bridge -> target
115111
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
116112
with:
117113
python-version: "3.10"
114+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
115+
with:
116+
workspaces: temporalio/bridge -> target
117+
key: ${{ env.pythonLocation }}
118118
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3
119119
with:
120120
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed
@@ -145,12 +145,13 @@ jobs:
145145
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
146146
with:
147147
components: "clippy"
148-
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
149-
with:
150-
workspaces: temporalio/bridge -> target
151148
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
152149
with:
153150
python-version: "3.13"
151+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
152+
with:
153+
workspaces: temporalio/bridge -> target
154+
key: ${{ env.pythonLocation }}
154155
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3
155156
with:
156157
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed
@@ -183,12 +184,13 @@ jobs:
183184
with:
184185
submodules: recursive
185186
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
186-
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
187-
with:
188-
workspaces: temporalio/bridge -> target
189187
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
190188
with:
191189
python-version: "3.14"
190+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
191+
with:
192+
workspaces: temporalio/bridge -> target
193+
key: ${{ env.pythonLocation }}
192194
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3
193195
with:
194196
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed

.github/workflows/omes.yml

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

.github/workflows/run-bench.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,14 @@ jobs:
3535
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
3636
with:
3737
toolchain: stable
38+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
39+
with:
40+
python-version: "3.13"
3841
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
3942
with:
4043
cache-bin: false
4144
workspaces: temporalio/bridge -> target
42-
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
43-
with:
44-
python-version: "3.13"
45+
key: ${{ env.pythonLocation }}
4546
- uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3
4647
with:
4748
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ class IPv4AddressJSONEncoder(AdvancedJSONEncoder):
432432
class IPv4AddressJSONTypeConverter(JSONTypeConverter):
433433
def to_typed_value(
434434
self, hint: Type, value: Any
435-
) -> Union[Optional[Any], _JSONTypeConverterUnhandled]:
435+
) -> Union[Optional[Any], JSONTypeConverterUnhandled]:
436436
if issubclass(hint, ipaddress.IPv4Address):
437437
return ipaddress.IPv4Address(value)
438438
return JSONTypeConverter.Unhandled

pyproject.toml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,16 @@ pydantic = ["pydantic>=2.0.0,<3"]
3131
openai-agents = ["openai-agents>=0.17.1", "mcp>=1.9.4, <2"]
3232
google-adk = ["google-adk>=1.27.0,<2"]
3333
langgraph = ["langgraph>=1.1.0"]
34-
langsmith = ["langsmith>=0.7.34,<0.8"]
34+
langsmith = ["langsmith>=0.7.34,<0.9"]
3535
lambda-worker-otel = [
3636
"opentelemetry-api>=1.11.1,<2",
3737
"opentelemetry-sdk>=1.11.1,<2",
3838
"opentelemetry-exporter-otlp-proto-grpc>=1.11.1,<2",
3939
"opentelemetry-semantic-conventions>=0.40b0,<1",
4040
"opentelemetry-sdk-extension-aws>=2.0.0,<3",
4141
]
42-
aioboto3 = [
43-
"aioboto3>=10.4.0",
44-
"types-aioboto3[s3]>=10.4.0",
45-
]
42+
aioboto3 = ["aioboto3>=10.4.0", "types-aioboto3[s3]>=10.4.0"]
43+
strands-agents = ["strands-agents>=1.39.0"]
4644

4745
[project.urls]
4846
Homepage = "https://github.com/temporalio/sdk-python"
@@ -81,12 +79,15 @@ dev = [
8179
"pytest-xdist>=3.6,<4",
8280
"moto[s3,server]>=5",
8381
"langgraph>=1.1.0",
84-
"langsmith>=0.7.34,<0.8",
82+
"langsmith>=0.7.34,<0.9",
8583
"setuptools<82",
8684
"opentelemetry-exporter-otlp-proto-grpc>=1.11.1,<2",
8785
"opentelemetry-semantic-conventions>=0.40b0,<1",
8886
"opentelemetry-sdk-extension-aws>=2.0.0,<3",
87+
"pytest-flakefinder>=1.1.0",
8988
"async-timeout>=4.0,<6; python_version < '3.11'",
89+
"strands-agents>=1.39.0",
90+
"strands-agents-tools>=0.5.2",
9091
]
9192

9293
[tool.poe.tasks]
@@ -258,4 +259,7 @@ exclude = ["temporalio/bridge/target/**/*"]
258259
[tool.uv]
259260
# Prevent uv commands from building the package by default
260261
package = false
261-
exclude-newer = "1 week"
262+
exclude-newer = "2 weeks"
263+
# openai-agents>=0.17.1 is newer than the exclude-newer cooldown window;
264+
# bypass it since the minimum version pin already constrains the package.
265+
exclude-newer-package = { openai-agents = false }

scripts/gen_protos.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
base_dir = Path(__file__).parent.parent
1212
proto_dir = (
13-
base_dir / "temporalio" / "bridge" / "sdk-core" / "crates" / "common" / "protos"
13+
base_dir / "temporalio" / "bridge" / "sdk-core" / "crates" / "protos" / "protos"
1414
)
1515
api_proto_dir = proto_dir / "api_upstream"
1616
api_cloud_proto_dir = proto_dir / "api_cloud_upstream"

temporalio/api/cloud/billing/v1/message_pb2.py

Lines changed: 15 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)