From f2b5dfa8eeb519e45eff6450734444fcb7c89925 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Sat, 14 Mar 2026 21:06:45 -0400 Subject: [PATCH 1/7] Add temporal sample init manifests for CLI scaffolding --- bedrock/temporal-sample.yaml | 4 ++++ dsl/temporal-sample.yaml | 5 +++++ encryption/temporal-sample.yaml | 5 +++++ hello/temporal-sample.yaml | 3 +++ hello_nexus/temporal-sample.yaml | 4 ++++ hello_standalone_activity/temporal-sample.yaml | 3 +++ langchain/temporal-sample.yaml | 5 +++++ nexus_cancel/temporal-sample.yaml | 4 ++++ nexus_multiple_args/temporal-sample.yaml | 4 ++++ nexus_sync_operations/temporal-sample.yaml | 4 ++++ openai_agents/temporal-sample.yaml | 5 +++++ schedules/temporal-sample.yaml | 3 +++ temporal-samples.yaml | 13 +++++++++++++ 13 files changed, 62 insertions(+) create mode 100644 bedrock/temporal-sample.yaml create mode 100644 dsl/temporal-sample.yaml create mode 100644 encryption/temporal-sample.yaml create mode 100644 hello/temporal-sample.yaml create mode 100644 hello_nexus/temporal-sample.yaml create mode 100644 hello_standalone_activity/temporal-sample.yaml create mode 100644 langchain/temporal-sample.yaml create mode 100644 nexus_cancel/temporal-sample.yaml create mode 100644 nexus_multiple_args/temporal-sample.yaml create mode 100644 nexus_sync_operations/temporal-sample.yaml create mode 100644 openai_agents/temporal-sample.yaml create mode 100644 schedules/temporal-sample.yaml create mode 100644 temporal-samples.yaml diff --git a/bedrock/temporal-sample.yaml b/bedrock/temporal-sample.yaml new file mode 100644 index 00000000..9bc18e52 --- /dev/null +++ b/bedrock/temporal-sample.yaml @@ -0,0 +1,4 @@ +description: Amazon Bedrock AI chatbot with durable execution +dependencies: + - temporalio>=1.23.0,<2 + - boto3>=1.34.92,<2 diff --git a/dsl/temporal-sample.yaml b/dsl/temporal-sample.yaml new file mode 100644 index 00000000..63f856cb --- /dev/null +++ b/dsl/temporal-sample.yaml @@ -0,0 +1,5 @@ +description: Workflow interpreter for arbitrary steps defined in YAML DSL +dependencies: + - temporalio>=1.23.0,<2 + - pyyaml>=6.0.1,<7 + - dacite>=1.8.1,<2 diff --git a/encryption/temporal-sample.yaml b/encryption/temporal-sample.yaml new file mode 100644 index 00000000..1f8e9976 --- /dev/null +++ b/encryption/temporal-sample.yaml @@ -0,0 +1,5 @@ +description: End-to-end encryption codec, compatible with TypeScript and Go +dependencies: + - temporalio>=1.23.0,<2 + - cryptography>=38.0.1,<39 + - aiohttp>=3.8.1,<4 diff --git a/hello/temporal-sample.yaml b/hello/temporal-sample.yaml new file mode 100644 index 00000000..1ff1eaba --- /dev/null +++ b/hello/temporal-sample.yaml @@ -0,0 +1,3 @@ +description: Basic hello world samples (activity, signal, query, etc.) +dependencies: + - temporalio>=1.23.0,<2 diff --git a/hello_nexus/temporal-sample.yaml b/hello_nexus/temporal-sample.yaml new file mode 100644 index 00000000..934eb87e --- /dev/null +++ b/hello_nexus/temporal-sample.yaml @@ -0,0 +1,4 @@ +description: Nexus service definition, operation handlers, and workflow calls +dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 diff --git a/hello_standalone_activity/temporal-sample.yaml b/hello_standalone_activity/temporal-sample.yaml new file mode 100644 index 00000000..b442dffd --- /dev/null +++ b/hello_standalone_activity/temporal-sample.yaml @@ -0,0 +1,3 @@ +description: Execute Activities directly from a Client, without a Workflow +dependencies: + - temporalio>=1.23.0,<2 diff --git a/langchain/temporal-sample.yaml b/langchain/temporal-sample.yaml new file mode 100644 index 00000000..0858bb75 --- /dev/null +++ b/langchain/temporal-sample.yaml @@ -0,0 +1,5 @@ +description: Orchestrate LangChain workflows with LangSmith tracing +dependencies: + - langchain>=0.1.7,<0.2 + - langchain-openai>=0.0.6,<0.0.7 + - openai>=1.4.0,<2 diff --git a/nexus_cancel/temporal-sample.yaml b/nexus_cancel/temporal-sample.yaml new file mode 100644 index 00000000..b807ab65 --- /dev/null +++ b/nexus_cancel/temporal-sample.yaml @@ -0,0 +1,4 @@ +description: Fan out Nexus operations, take first result, cancel the rest +dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 diff --git a/nexus_multiple_args/temporal-sample.yaml b/nexus_multiple_args/temporal-sample.yaml new file mode 100644 index 00000000..290c2c7e --- /dev/null +++ b/nexus_multiple_args/temporal-sample.yaml @@ -0,0 +1,4 @@ +description: Map a Nexus operation to a handler workflow with multiple arguments +dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 diff --git a/nexus_sync_operations/temporal-sample.yaml b/nexus_sync_operations/temporal-sample.yaml new file mode 100644 index 00000000..14c45d50 --- /dev/null +++ b/nexus_sync_operations/temporal-sample.yaml @@ -0,0 +1,4 @@ +description: Nexus service backed by a long-running workflow with updates and queries +dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 diff --git a/openai_agents/temporal-sample.yaml b/openai_agents/temporal-sample.yaml new file mode 100644 index 00000000..38d06113 --- /dev/null +++ b/openai_agents/temporal-sample.yaml @@ -0,0 +1,5 @@ +description: OpenAI Agents SDK with Temporal durable execution +dependencies: + - openai-agents[litellm]==0.3.2 + - temporalio[openai-agents]>=1.18.0 + - requests>=2.32.0,<3 diff --git a/schedules/temporal-sample.yaml b/schedules/temporal-sample.yaml new file mode 100644 index 00000000..c54db455 --- /dev/null +++ b/schedules/temporal-sample.yaml @@ -0,0 +1,3 @@ +description: Schedule a Workflow Execution and control actions +dependencies: + - temporalio>=1.23.0,<2 diff --git a/temporal-samples.yaml b/temporal-samples.yaml new file mode 100644 index 00000000..4df23504 --- /dev/null +++ b/temporal-samples.yaml @@ -0,0 +1,13 @@ +version: 1 +language: python +repo: temporalio/samples-python +scaffold: + pyproject.toml: | + [project] + name = "{{name}}" + version = "0.1.0" + requires-python = ">=3.10" + dependencies = [{{dependencies}}] + [build-system] + requires = ["hatchling"] + build-backend = "hatchling.build" From 955c2acd541dd1c38c0c96eb1c790304cbcd79c7 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Sun, 15 Mar 2026 19:48:19 -0400 Subject: [PATCH 2/7] refactor: unify manifests into single temporal-sample.yaml --- bedrock/temporal-sample.yaml | 4 - dsl/temporal-sample.yaml | 5 -- encryption/temporal-sample.yaml | 5 -- hello/temporal-sample.yaml | 3 - hello_nexus/temporal-sample.yaml | 4 - .../temporal-sample.yaml | 3 - langchain/temporal-sample.yaml | 5 -- nexus_cancel/temporal-sample.yaml | 4 - nexus_multiple_args/temporal-sample.yaml | 4 - nexus_sync_operations/temporal-sample.yaml | 4 - openai_agents/temporal-sample.yaml | 5 -- schedules/temporal-sample.yaml | 3 - temporal-sample.yaml | 74 +++++++++++++++++++ temporal-samples.yaml | 13 ---- 14 files changed, 74 insertions(+), 62 deletions(-) delete mode 100644 bedrock/temporal-sample.yaml delete mode 100644 dsl/temporal-sample.yaml delete mode 100644 encryption/temporal-sample.yaml delete mode 100644 hello/temporal-sample.yaml delete mode 100644 hello_nexus/temporal-sample.yaml delete mode 100644 hello_standalone_activity/temporal-sample.yaml delete mode 100644 langchain/temporal-sample.yaml delete mode 100644 nexus_cancel/temporal-sample.yaml delete mode 100644 nexus_multiple_args/temporal-sample.yaml delete mode 100644 nexus_sync_operations/temporal-sample.yaml delete mode 100644 openai_agents/temporal-sample.yaml delete mode 100644 schedules/temporal-sample.yaml create mode 100644 temporal-sample.yaml delete mode 100644 temporal-samples.yaml diff --git a/bedrock/temporal-sample.yaml b/bedrock/temporal-sample.yaml deleted file mode 100644 index 9bc18e52..00000000 --- a/bedrock/temporal-sample.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: Amazon Bedrock AI chatbot with durable execution -dependencies: - - temporalio>=1.23.0,<2 - - boto3>=1.34.92,<2 diff --git a/dsl/temporal-sample.yaml b/dsl/temporal-sample.yaml deleted file mode 100644 index 63f856cb..00000000 --- a/dsl/temporal-sample.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: Workflow interpreter for arbitrary steps defined in YAML DSL -dependencies: - - temporalio>=1.23.0,<2 - - pyyaml>=6.0.1,<7 - - dacite>=1.8.1,<2 diff --git a/encryption/temporal-sample.yaml b/encryption/temporal-sample.yaml deleted file mode 100644 index 1f8e9976..00000000 --- a/encryption/temporal-sample.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: End-to-end encryption codec, compatible with TypeScript and Go -dependencies: - - temporalio>=1.23.0,<2 - - cryptography>=38.0.1,<39 - - aiohttp>=3.8.1,<4 diff --git a/hello/temporal-sample.yaml b/hello/temporal-sample.yaml deleted file mode 100644 index 1ff1eaba..00000000 --- a/hello/temporal-sample.yaml +++ /dev/null @@ -1,3 +0,0 @@ -description: Basic hello world samples (activity, signal, query, etc.) -dependencies: - - temporalio>=1.23.0,<2 diff --git a/hello_nexus/temporal-sample.yaml b/hello_nexus/temporal-sample.yaml deleted file mode 100644 index 934eb87e..00000000 --- a/hello_nexus/temporal-sample.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: Nexus service definition, operation handlers, and workflow calls -dependencies: - - temporalio>=1.23.0,<2 - - nexus-rpc>=1.1.0,<2 diff --git a/hello_standalone_activity/temporal-sample.yaml b/hello_standalone_activity/temporal-sample.yaml deleted file mode 100644 index b442dffd..00000000 --- a/hello_standalone_activity/temporal-sample.yaml +++ /dev/null @@ -1,3 +0,0 @@ -description: Execute Activities directly from a Client, without a Workflow -dependencies: - - temporalio>=1.23.0,<2 diff --git a/langchain/temporal-sample.yaml b/langchain/temporal-sample.yaml deleted file mode 100644 index 0858bb75..00000000 --- a/langchain/temporal-sample.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: Orchestrate LangChain workflows with LangSmith tracing -dependencies: - - langchain>=0.1.7,<0.2 - - langchain-openai>=0.0.6,<0.0.7 - - openai>=1.4.0,<2 diff --git a/nexus_cancel/temporal-sample.yaml b/nexus_cancel/temporal-sample.yaml deleted file mode 100644 index b807ab65..00000000 --- a/nexus_cancel/temporal-sample.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: Fan out Nexus operations, take first result, cancel the rest -dependencies: - - temporalio>=1.23.0,<2 - - nexus-rpc>=1.1.0,<2 diff --git a/nexus_multiple_args/temporal-sample.yaml b/nexus_multiple_args/temporal-sample.yaml deleted file mode 100644 index 290c2c7e..00000000 --- a/nexus_multiple_args/temporal-sample.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: Map a Nexus operation to a handler workflow with multiple arguments -dependencies: - - temporalio>=1.23.0,<2 - - nexus-rpc>=1.1.0,<2 diff --git a/nexus_sync_operations/temporal-sample.yaml b/nexus_sync_operations/temporal-sample.yaml deleted file mode 100644 index 14c45d50..00000000 --- a/nexus_sync_operations/temporal-sample.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: Nexus service backed by a long-running workflow with updates and queries -dependencies: - - temporalio>=1.23.0,<2 - - nexus-rpc>=1.1.0,<2 diff --git a/openai_agents/temporal-sample.yaml b/openai_agents/temporal-sample.yaml deleted file mode 100644 index 38d06113..00000000 --- a/openai_agents/temporal-sample.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: OpenAI Agents SDK with Temporal durable execution -dependencies: - - openai-agents[litellm]==0.3.2 - - temporalio[openai-agents]>=1.18.0 - - requests>=2.32.0,<3 diff --git a/schedules/temporal-sample.yaml b/schedules/temporal-sample.yaml deleted file mode 100644 index c54db455..00000000 --- a/schedules/temporal-sample.yaml +++ /dev/null @@ -1,3 +0,0 @@ -description: Schedule a Workflow Execution and control actions -dependencies: - - temporalio>=1.23.0,<2 diff --git a/temporal-sample.yaml b/temporal-sample.yaml new file mode 100644 index 00000000..3ea70669 --- /dev/null +++ b/temporal-sample.yaml @@ -0,0 +1,74 @@ +version: 1 +language: python +scaffold: + pyproject.toml: | + [project] + name = "{{name}}" + version = "0.1.0" + requires-python = ">=3.10" + dependencies = [{{dependencies}}] + [build-system] + requires = ["hatchling"] + build-backend = "hatchling.build" +samples: + - path: hello + description: Basic hello world samples (activity, signal, query, etc.) + dependencies: + - temporalio>=1.23.0,<2 + - path: hello_standalone_activity + description: Execute Activities directly from a Client, without a Workflow + dependencies: + - temporalio>=1.23.0,<2 + - path: hello_nexus + description: Nexus service definition, operation handlers, and workflow calls + dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 + - path: nexus_cancel + description: Fan out Nexus operations, take first result, cancel the rest + dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 + - path: nexus_multiple_args + description: Map a Nexus operation to a handler workflow with multiple arguments + dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 + - path: nexus_sync_operations + description: Nexus service backed by a long-running workflow with updates and queries + dependencies: + - temporalio>=1.23.0,<2 + - nexus-rpc>=1.1.0,<2 + - path: openai_agents + description: OpenAI Agents SDK with Temporal durable execution + dependencies: + - openai-agents[litellm]==0.3.2 + - temporalio[openai-agents]>=1.18.0 + - requests>=2.32.0,<3 + - path: langchain + description: Orchestrate LangChain workflows with LangSmith tracing + dependencies: + - langchain>=0.1.7,<0.2 + - langchain-openai>=0.0.6,<0.0.7 + - openai>=1.4.0,<2 + - path: bedrock + description: Amazon Bedrock AI chatbot with durable execution + dependencies: + - temporalio>=1.23.0,<2 + - boto3>=1.34.92,<2 + - path: encryption + description: End-to-end encryption codec, compatible with TypeScript and Go + dependencies: + - temporalio>=1.23.0,<2 + - cryptography>=38.0.1,<39 + - aiohttp>=3.8.1,<4 + - path: dsl + description: Workflow interpreter for arbitrary steps defined in YAML DSL + dependencies: + - temporalio>=1.23.0,<2 + - pyyaml>=6.0.1,<7 + - dacite>=1.8.1,<2 + - path: schedules + description: Schedule a Workflow Execution and control actions + dependencies: + - temporalio>=1.23.0,<2 diff --git a/temporal-samples.yaml b/temporal-samples.yaml deleted file mode 100644 index 4df23504..00000000 --- a/temporal-samples.yaml +++ /dev/null @@ -1,13 +0,0 @@ -version: 1 -language: python -repo: temporalio/samples-python -scaffold: - pyproject.toml: | - [project] - name = "{{name}}" - version = "0.1.0" - requires-python = ">=3.10" - dependencies = [{{dependencies}}] - [build-system] - requires = ["hatchling"] - build-backend = "hatchling.build" From 4800c3e56fc4a81c94f81c03406515c6028e9b5c Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Sun, 15 Mar 2026 22:21:47 -0400 Subject: [PATCH 3/7] feat: complete temporal-sample.yaml with all samples --- temporal-sample.yaml | 115 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/temporal-sample.yaml b/temporal-sample.yaml index 3ea70669..42c50d62 100644 --- a/temporal-sample.yaml +++ b/temporal-sample.yaml @@ -72,3 +72,118 @@ samples: description: Schedule a Workflow Execution and control actions dependencies: - temporalio>=1.23.0,<2 + - path: activity_worker + description: Cross-language sample with a Go workflow calling a Python activity + dependencies: + - temporalio>=1.23.0,<2 + - path: batch_sliding_window + description: Batch processing with a sliding window of parallel child workflows + dependencies: + - temporalio>=1.23.0,<2 + - path: context_propagation + description: Propagate contextual information through workflows and activities via interceptors + dependencies: + - temporalio>=1.23.0,<2 + - path: custom_converter + description: Custom payload converter for types not natively supported by Temporal + dependencies: + - temporalio>=1.23.0,<2 + - path: custom_decorator + description: Auto-heartbeater decorator for automatic activity heartbeating + dependencies: + - temporalio>=1.23.0,<2 + - path: custom_metric + description: Custom Prometheus metric with an interceptor for activity schedule-to-start latency + dependencies: + - temporalio>=1.23.0,<2 + - path: eager_wf_start + description: Eager Workflow Start for low-latency first-task execution + dependencies: + - temporalio>=1.23.0,<2 + - path: env_config + description: Configure a Temporal Client from a TOML file with profile support + dependencies: + - temporalio>=1.23.0,<2 + - path: message_passing + description: Introduction to Query, Signal, and Update message-passing patterns + dependencies: + - temporalio>=1.23.0,<2 + - path: patching + description: Safely alter workflow code using patched and deprecate_patch in stages + dependencies: + - temporalio>=1.23.0,<2 + - path: polling + description: Best practices for frequent, infrequent, and periodic polling patterns + dependencies: + - temporalio>=1.23.0,<2 + - path: prometheus + description: Expose SDK Prometheus metrics via HTTP endpoint + dependencies: + - temporalio>=1.23.0,<2 + - path: replay + description: Verify workflow code changes are compatible with existing histories + dependencies: + - temporalio>=1.23.0,<2 + - path: resource_pool + description: Long-lived workflow for resource allocation and serialized access control + dependencies: + - temporalio>=1.23.0,<2 + - path: sleep_for_days + description: Long-running workflow that sends periodic emails with durable timers + dependencies: + - temporalio>=1.23.0,<2 + - path: updatable_timer + description: Blocking sleep that can be updated at any moment via signals + dependencies: + - temporalio>=1.23.0,<2 + - path: worker_multiprocessing + description: Run multiple workflow worker processes using ProcessPoolExecutor + dependencies: + - temporalio>=1.23.0,<2 + - path: worker_specific_task_queues + description: Pin activities to a specific worker using unique task queues + dependencies: + - temporalio>=1.23.0,<2 + - path: worker_versioning + description: Safe worker deployments with auto-upgrading and pinned workflow versions + dependencies: + - temporalio>=1.23.0,<2 + - path: cloud_export_to_parquet + description: Convert Temporal Cloud exported proto files to Parquet format + dependencies: + - temporalio>=1.23.0,<2 + - pandas>=2.2.2,<3 + - numpy>=1.26.0,<2 + - boto3>=1.34.89,<2 + - pyarrow>=19.0.1 + - path: gevent_async + description: Run Temporal in a gevent-patched environment with a custom executor + dependencies: + - temporalio>=1.23.0,<2 + - gevent>=25.4.2 + - path: open_telemetry + description: Configure OpenTelemetry to capture workflow traces and SDK metrics + dependencies: + - temporalio[opentelemetry]>=1.23.0,<2 + - opentelemetry-exporter-otlp-proto-grpc + - path: pydantic_converter + description: Use the Pydantic data converter for workflow and activity I/O + dependencies: + - temporalio>=1.23.0,<2 + - pydantic>=2.10.6,<3 + - path: pydantic_converter_v1 + description: Pydantic v1 data converter (use v2 pydantic_converter instead if possible) + dependencies: + - temporalio>=1.23.0,<2 + - pydantic>=2.10.6,<3 + - path: sentry + description: Capture workflow and activity errors with Sentry SDK v2 integration + dependencies: + - temporalio>=1.23.0,<2 + - sentry-sdk>=2.13.0 + - path: trio_async + description: Use Temporal asyncio with Trio via trio-asyncio bridge + dependencies: + - temporalio>=1.23.0,<2 + - trio>=0.28.0,<0.29 + - trio-asyncio>=0.15.0,<0.16 From b412f0bc7be743bde3fd1c45abbecb325dfa95d3 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Sun, 15 Mar 2026 20:45:10 -0400 Subject: [PATCH 4/7] feat: add run commands to sample manifest --- temporal-sample.yaml | 156 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) diff --git a/temporal-sample.yaml b/temporal-sample.yaml index 42c50d62..7b135964 100644 --- a/temporal-sample.yaml +++ b/temporal-sample.yaml @@ -15,139 +15,267 @@ samples: description: Basic hello world samples (activity, signal, query, etc.) dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run hello/hello_activity.py - path: hello_standalone_activity description: Execute Activities directly from a Client, without a Workflow dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run hello_standalone_activity/worker.py + - cmd: uv run hello_standalone_activity/execute_activity.py + new_terminal: true - path: hello_nexus description: Nexus service definition, operation handlers, and workflow calls dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 + commands: + - cmd: temporal operator namespace create --namespace hello-nexus-basic-handler-namespace + - cmd: temporal operator namespace create --namespace hello-nexus-basic-caller-namespace + - cmd: temporal operator nexus endpoint create --name hello-nexus-basic-nexus-endpoint --target-namespace hello-nexus-basic-handler-namespace --target-task-queue my-handler-task-queue --description-file hello_nexus/endpoint_description.md + - cmd: uv run hello_nexus/handler/worker.py + - cmd: uv run hello_nexus/caller/app.py + new_terminal: true - path: nexus_cancel description: Fan out Nexus operations, take first result, cancel the rest dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 + commands: + - cmd: temporal operator namespace create --namespace nexus-cancel-handler-namespace + - cmd: temporal operator namespace create --namespace nexus-cancel-caller-namespace + - cmd: temporal operator nexus endpoint create --name nexus-cancel-endpoint --target-namespace nexus-cancel-handler-namespace --target-task-queue nexus-cancel-handler-task-queue + - cmd: uv run nexus_cancel/handler/worker.py + - cmd: uv run nexus_cancel/caller/app.py + new_terminal: true - path: nexus_multiple_args description: Map a Nexus operation to a handler workflow with multiple arguments dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 + commands: + - cmd: temporal operator namespace create --namespace nexus-multiple-args-handler-namespace + - cmd: temporal operator namespace create --namespace nexus-multiple-args-caller-namespace + - cmd: temporal operator nexus endpoint create --name nexus-multiple-args-nexus-endpoint --target-namespace nexus-multiple-args-handler-namespace --target-task-queue nexus-multiple-args-handler-task-queue + - cmd: uv run nexus_multiple_args/handler/worker.py + - cmd: uv run nexus_multiple_args/caller/app.py + new_terminal: true - path: nexus_sync_operations description: Nexus service backed by a long-running workflow with updates and queries dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 + commands: + - cmd: temporal operator namespace create --namespace nexus-sync-operations-handler-namespace + - cmd: temporal operator namespace create --namespace nexus-sync-operations-caller-namespace + - cmd: temporal operator nexus endpoint create --name nexus-sync-operations-nexus-endpoint --target-namespace nexus-sync-operations-handler-namespace --target-task-queue nexus-sync-operations-handler-task-queue --description-file nexus_sync_operations/endpoint_description.md + - cmd: uv run nexus_sync_operations/handler/worker.py + - cmd: uv run nexus_sync_operations/caller/app.py + new_terminal: true - path: openai_agents description: OpenAI Agents SDK with Temporal durable execution dependencies: - openai-agents[litellm]==0.3.2 - temporalio[openai-agents]>=1.18.0 - requests>=2.32.0,<3 + commands: + - cmd: uv run openai_agents/basic/run_worker.py + - cmd: uv run openai_agents/basic/run_hello_world_workflow.py + new_terminal: true - path: langchain description: Orchestrate LangChain workflows with LangSmith tracing dependencies: - langchain>=0.1.7,<0.2 - langchain-openai>=0.0.6,<0.0.7 - openai>=1.4.0,<2 + commands: + - cmd: uv run langchain/worker.py + - cmd: uv run langchain/starter.py + new_terminal: true + - cmd: curl -X POST "http://localhost:8000/translate?phrase=hello%20world&language1=Spanish&language2=French&language3=Russian" + new_terminal: true - path: bedrock description: Amazon Bedrock AI chatbot with durable execution dependencies: - temporalio>=1.23.0,<2 - boto3>=1.34.92,<2 + commands: + - cmd: uv run bedrock/basic/run_worker.py + - cmd: uv run bedrock/basic/send_message.py 'What animals are marsupials?' + new_terminal: true - path: encryption description: End-to-end encryption codec, compatible with TypeScript and Go dependencies: - temporalio>=1.23.0,<2 - cryptography>=38.0.1,<39 - aiohttp>=3.8.1,<4 + commands: + - cmd: uv run encryption/worker.py + - cmd: uv run encryption/starter.py + new_terminal: true - path: dsl description: Workflow interpreter for arbitrary steps defined in YAML DSL dependencies: - temporalio>=1.23.0,<2 - pyyaml>=6.0.1,<7 - dacite>=1.8.1,<2 + commands: + - cmd: uv run dsl/worker.py + - cmd: uv run dsl/starter.py dsl/workflow1.yaml + new_terminal: true - path: schedules description: Schedule a Workflow Execution and control actions dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run schedules/run_worker.py + - cmd: uv run schedules/start_schedule.py + new_terminal: true - path: activity_worker description: Cross-language sample with a Go workflow calling a Python activity dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run activity_worker/activity_worker.py - path: batch_sliding_window description: Batch processing with a sliding window of parallel child workflows dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run batch_sliding_window/worker.py + - cmd: uv run batch_sliding_window/starter.py + new_terminal: true - path: context_propagation description: Propagate contextual information through workflows and activities via interceptors dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run context_propagation/worker.py + - cmd: uv run context_propagation/starter.py + new_terminal: true - path: custom_converter description: Custom payload converter for types not natively supported by Temporal dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run custom_converter/worker.py + - cmd: uv run custom_converter/starter.py + new_terminal: true - path: custom_decorator description: Auto-heartbeater decorator for automatic activity heartbeating dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run custom_decorator/worker.py + - cmd: uv run custom_decorator/starter.py + new_terminal: true - path: custom_metric description: Custom Prometheus metric with an interceptor for activity schedule-to-start latency dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run custom_metric/worker.py + - cmd: uv run custom_metric/starter.py + new_terminal: true - path: eager_wf_start description: Eager Workflow Start for low-latency first-task execution dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run eager_wf_start/run.py - path: env_config description: Configure a Temporal Client from a TOML file with profile support dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run env_config/load_from_file.py - path: message_passing description: Introduction to Query, Signal, and Update message-passing patterns dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run message_passing/introduction/worker.py + - cmd: uv run message_passing/introduction/starter.py + new_terminal: true - path: patching description: Safely alter workflow code using patched and deprecate_patch in stages dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run patching/worker.py --workflow initial + - cmd: uv run patching/starter.py --start-workflow initial-workflow-id + new_terminal: true - path: polling description: Best practices for frequent, infrequent, and periodic polling patterns dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run polling/frequent/run_worker.py + - cmd: uv run polling/frequent/run_frequent.py + new_terminal: true - path: prometheus description: Expose SDK Prometheus metrics via HTTP endpoint dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run prometheus/worker.py + - cmd: uv run prometheus/starter.py + new_terminal: true - path: replay description: Verify workflow code changes are compatible with existing histories dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run replay/worker.py + - cmd: uv run replay/starter.py + new_terminal: true - path: resource_pool description: Long-lived workflow for resource allocation and serialized access control dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run resource_pool/worker.py + - cmd: uv run resource_pool/starter.py + new_terminal: true - path: sleep_for_days description: Long-running workflow that sends periodic emails with durable timers dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run sleep_for_days/worker.py + - cmd: uv run sleep_for_days/starter.py + new_terminal: true - path: updatable_timer description: Blocking sleep that can be updated at any moment via signals dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run updatable_timer/worker.py + - cmd: uv run updatable_timer/starter.py + new_terminal: true - path: worker_multiprocessing description: Run multiple workflow worker processes using ProcessPoolExecutor dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run worker_multiprocessing/worker.py + - cmd: uv run worker_multiprocessing/starter.py + new_terminal: true - path: worker_specific_task_queues description: Pin activities to a specific worker using unique task queues dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run worker_specific_task_queues/worker.py + - cmd: uv run worker_specific_task_queues/starter.py + new_terminal: true - path: worker_versioning description: Safe worker deployments with auto-upgrading and pinned workflow versions dependencies: - temporalio>=1.23.0,<2 + commands: + - cmd: uv run worker_versioning/app.py - path: cloud_export_to_parquet description: Convert Temporal Cloud exported proto files to Parquet format dependencies: @@ -156,34 +284,62 @@ samples: - numpy>=1.26.0,<2 - boto3>=1.34.89,<2 - pyarrow>=19.0.1 + commands: + - cmd: uv run cloud_export_to_parquet/run_worker.py + - cmd: uv run cloud_export_to_parquet/create_schedule.py + new_terminal: true - path: gevent_async description: Run Temporal in a gevent-patched environment with a custom executor dependencies: - temporalio>=1.23.0,<2 - gevent>=25.4.2 + commands: + - cmd: uv run gevent_async/worker.py + - cmd: uv run gevent_async/starter.py + new_terminal: true - path: open_telemetry description: Configure OpenTelemetry to capture workflow traces and SDK metrics dependencies: - temporalio[opentelemetry]>=1.23.0,<2 - opentelemetry-exporter-otlp-proto-grpc + commands: + - cmd: uv run open_telemetry/worker.py + - cmd: uv run open_telemetry/starter.py + new_terminal: true - path: pydantic_converter description: Use the Pydantic data converter for workflow and activity I/O dependencies: - temporalio>=1.23.0,<2 - pydantic>=2.10.6,<3 + commands: + - cmd: uv run pydantic_converter/worker.py + - cmd: uv run pydantic_converter/starter.py + new_terminal: true - path: pydantic_converter_v1 description: Pydantic v1 data converter (use v2 pydantic_converter instead if possible) dependencies: - temporalio>=1.23.0,<2 - pydantic>=2.10.6,<3 + commands: + - cmd: uv run pydantic_converter_v1/worker.py + - cmd: uv run pydantic_converter_v1/starter.py + new_terminal: true - path: sentry description: Capture workflow and activity errors with Sentry SDK v2 integration dependencies: - temporalio>=1.23.0,<2 - sentry-sdk>=2.13.0 + commands: + - cmd: uv run sentry/worker.py + - cmd: uv run sentry/starter.py + new_terminal: true - path: trio_async description: Use Temporal asyncio with Trio via trio-asyncio bridge dependencies: - temporalio>=1.23.0,<2 - trio>=0.28.0,<0.29 - trio-asyncio>=0.15.0,<0.16 + commands: + - cmd: uv run trio_async/worker.py + - cmd: uv run trio_async/starter.py + new_terminal: true From 704eee37356cefc9e7c66f60d8d4581129558286 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Mon, 16 Mar 2026 11:33:04 -0400 Subject: [PATCH 5/7] fix: remove build-system from scaffold pyproject.toml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hatchling's package discovery fails when the project name (derived from the output directory) doesn't match the sample directory name. Since these are script-only samples, no build backend is needed — uv just needs the dependencies list. --- temporal-sample.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/temporal-sample.yaml b/temporal-sample.yaml index 7b135964..a9c64b41 100644 --- a/temporal-sample.yaml +++ b/temporal-sample.yaml @@ -7,9 +7,6 @@ scaffold: version = "0.1.0" requires-python = ">=3.10" dependencies = [{{dependencies}}] - [build-system] - requires = ["hatchling"] - build-backend = "hatchling.build" samples: - path: hello description: Basic hello world samples (activity, signal, query, etc.) From fee1dd52603a34173719351392b05c952cc9778e Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Tue, 17 Mar 2026 20:53:18 -0400 Subject: [PATCH 6/7] fix: restore hatchling build-system in scaffold Without a build-system, uv doesn't install the project as a package, so intra-package imports fail. Use hatchling with explicit packages pointing to the sample directory via {{sample}} template variable. --- temporal-sample.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/temporal-sample.yaml b/temporal-sample.yaml index a9c64b41..a408a91a 100644 --- a/temporal-sample.yaml +++ b/temporal-sample.yaml @@ -7,6 +7,11 @@ scaffold: version = "0.1.0" requires-python = ">=3.10" dependencies = [{{dependencies}}] + [build-system] + requires = ["hatchling"] + build-backend = "hatchling.build" + [tool.hatch.build.targets.wheel] + packages = ["{{sample}}"] samples: - path: hello description: Basic hello world samples (activity, signal, query, etc.) From a357aa44c29e939e495bc121908f03b02776c94f Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Tue, 17 Mar 2026 21:24:46 -0400 Subject: [PATCH 7/7] revert: remove run commands from sample manifest --- temporal-sample.yaml | 156 ------------------------------------------- 1 file changed, 156 deletions(-) diff --git a/temporal-sample.yaml b/temporal-sample.yaml index a408a91a..de9504a6 100644 --- a/temporal-sample.yaml +++ b/temporal-sample.yaml @@ -17,267 +17,139 @@ samples: description: Basic hello world samples (activity, signal, query, etc.) dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run hello/hello_activity.py - path: hello_standalone_activity description: Execute Activities directly from a Client, without a Workflow dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run hello_standalone_activity/worker.py - - cmd: uv run hello_standalone_activity/execute_activity.py - new_terminal: true - path: hello_nexus description: Nexus service definition, operation handlers, and workflow calls dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 - commands: - - cmd: temporal operator namespace create --namespace hello-nexus-basic-handler-namespace - - cmd: temporal operator namespace create --namespace hello-nexus-basic-caller-namespace - - cmd: temporal operator nexus endpoint create --name hello-nexus-basic-nexus-endpoint --target-namespace hello-nexus-basic-handler-namespace --target-task-queue my-handler-task-queue --description-file hello_nexus/endpoint_description.md - - cmd: uv run hello_nexus/handler/worker.py - - cmd: uv run hello_nexus/caller/app.py - new_terminal: true - path: nexus_cancel description: Fan out Nexus operations, take first result, cancel the rest dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 - commands: - - cmd: temporal operator namespace create --namespace nexus-cancel-handler-namespace - - cmd: temporal operator namespace create --namespace nexus-cancel-caller-namespace - - cmd: temporal operator nexus endpoint create --name nexus-cancel-endpoint --target-namespace nexus-cancel-handler-namespace --target-task-queue nexus-cancel-handler-task-queue - - cmd: uv run nexus_cancel/handler/worker.py - - cmd: uv run nexus_cancel/caller/app.py - new_terminal: true - path: nexus_multiple_args description: Map a Nexus operation to a handler workflow with multiple arguments dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 - commands: - - cmd: temporal operator namespace create --namespace nexus-multiple-args-handler-namespace - - cmd: temporal operator namespace create --namespace nexus-multiple-args-caller-namespace - - cmd: temporal operator nexus endpoint create --name nexus-multiple-args-nexus-endpoint --target-namespace nexus-multiple-args-handler-namespace --target-task-queue nexus-multiple-args-handler-task-queue - - cmd: uv run nexus_multiple_args/handler/worker.py - - cmd: uv run nexus_multiple_args/caller/app.py - new_terminal: true - path: nexus_sync_operations description: Nexus service backed by a long-running workflow with updates and queries dependencies: - temporalio>=1.23.0,<2 - nexus-rpc>=1.1.0,<2 - commands: - - cmd: temporal operator namespace create --namespace nexus-sync-operations-handler-namespace - - cmd: temporal operator namespace create --namespace nexus-sync-operations-caller-namespace - - cmd: temporal operator nexus endpoint create --name nexus-sync-operations-nexus-endpoint --target-namespace nexus-sync-operations-handler-namespace --target-task-queue nexus-sync-operations-handler-task-queue --description-file nexus_sync_operations/endpoint_description.md - - cmd: uv run nexus_sync_operations/handler/worker.py - - cmd: uv run nexus_sync_operations/caller/app.py - new_terminal: true - path: openai_agents description: OpenAI Agents SDK with Temporal durable execution dependencies: - openai-agents[litellm]==0.3.2 - temporalio[openai-agents]>=1.18.0 - requests>=2.32.0,<3 - commands: - - cmd: uv run openai_agents/basic/run_worker.py - - cmd: uv run openai_agents/basic/run_hello_world_workflow.py - new_terminal: true - path: langchain description: Orchestrate LangChain workflows with LangSmith tracing dependencies: - langchain>=0.1.7,<0.2 - langchain-openai>=0.0.6,<0.0.7 - openai>=1.4.0,<2 - commands: - - cmd: uv run langchain/worker.py - - cmd: uv run langchain/starter.py - new_terminal: true - - cmd: curl -X POST "http://localhost:8000/translate?phrase=hello%20world&language1=Spanish&language2=French&language3=Russian" - new_terminal: true - path: bedrock description: Amazon Bedrock AI chatbot with durable execution dependencies: - temporalio>=1.23.0,<2 - boto3>=1.34.92,<2 - commands: - - cmd: uv run bedrock/basic/run_worker.py - - cmd: uv run bedrock/basic/send_message.py 'What animals are marsupials?' - new_terminal: true - path: encryption description: End-to-end encryption codec, compatible with TypeScript and Go dependencies: - temporalio>=1.23.0,<2 - cryptography>=38.0.1,<39 - aiohttp>=3.8.1,<4 - commands: - - cmd: uv run encryption/worker.py - - cmd: uv run encryption/starter.py - new_terminal: true - path: dsl description: Workflow interpreter for arbitrary steps defined in YAML DSL dependencies: - temporalio>=1.23.0,<2 - pyyaml>=6.0.1,<7 - dacite>=1.8.1,<2 - commands: - - cmd: uv run dsl/worker.py - - cmd: uv run dsl/starter.py dsl/workflow1.yaml - new_terminal: true - path: schedules description: Schedule a Workflow Execution and control actions dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run schedules/run_worker.py - - cmd: uv run schedules/start_schedule.py - new_terminal: true - path: activity_worker description: Cross-language sample with a Go workflow calling a Python activity dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run activity_worker/activity_worker.py - path: batch_sliding_window description: Batch processing with a sliding window of parallel child workflows dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run batch_sliding_window/worker.py - - cmd: uv run batch_sliding_window/starter.py - new_terminal: true - path: context_propagation description: Propagate contextual information through workflows and activities via interceptors dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run context_propagation/worker.py - - cmd: uv run context_propagation/starter.py - new_terminal: true - path: custom_converter description: Custom payload converter for types not natively supported by Temporal dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run custom_converter/worker.py - - cmd: uv run custom_converter/starter.py - new_terminal: true - path: custom_decorator description: Auto-heartbeater decorator for automatic activity heartbeating dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run custom_decorator/worker.py - - cmd: uv run custom_decorator/starter.py - new_terminal: true - path: custom_metric description: Custom Prometheus metric with an interceptor for activity schedule-to-start latency dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run custom_metric/worker.py - - cmd: uv run custom_metric/starter.py - new_terminal: true - path: eager_wf_start description: Eager Workflow Start for low-latency first-task execution dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run eager_wf_start/run.py - path: env_config description: Configure a Temporal Client from a TOML file with profile support dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run env_config/load_from_file.py - path: message_passing description: Introduction to Query, Signal, and Update message-passing patterns dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run message_passing/introduction/worker.py - - cmd: uv run message_passing/introduction/starter.py - new_terminal: true - path: patching description: Safely alter workflow code using patched and deprecate_patch in stages dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run patching/worker.py --workflow initial - - cmd: uv run patching/starter.py --start-workflow initial-workflow-id - new_terminal: true - path: polling description: Best practices for frequent, infrequent, and periodic polling patterns dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run polling/frequent/run_worker.py - - cmd: uv run polling/frequent/run_frequent.py - new_terminal: true - path: prometheus description: Expose SDK Prometheus metrics via HTTP endpoint dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run prometheus/worker.py - - cmd: uv run prometheus/starter.py - new_terminal: true - path: replay description: Verify workflow code changes are compatible with existing histories dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run replay/worker.py - - cmd: uv run replay/starter.py - new_terminal: true - path: resource_pool description: Long-lived workflow for resource allocation and serialized access control dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run resource_pool/worker.py - - cmd: uv run resource_pool/starter.py - new_terminal: true - path: sleep_for_days description: Long-running workflow that sends periodic emails with durable timers dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run sleep_for_days/worker.py - - cmd: uv run sleep_for_days/starter.py - new_terminal: true - path: updatable_timer description: Blocking sleep that can be updated at any moment via signals dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run updatable_timer/worker.py - - cmd: uv run updatable_timer/starter.py - new_terminal: true - path: worker_multiprocessing description: Run multiple workflow worker processes using ProcessPoolExecutor dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run worker_multiprocessing/worker.py - - cmd: uv run worker_multiprocessing/starter.py - new_terminal: true - path: worker_specific_task_queues description: Pin activities to a specific worker using unique task queues dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run worker_specific_task_queues/worker.py - - cmd: uv run worker_specific_task_queues/starter.py - new_terminal: true - path: worker_versioning description: Safe worker deployments with auto-upgrading and pinned workflow versions dependencies: - temporalio>=1.23.0,<2 - commands: - - cmd: uv run worker_versioning/app.py - path: cloud_export_to_parquet description: Convert Temporal Cloud exported proto files to Parquet format dependencies: @@ -286,62 +158,34 @@ samples: - numpy>=1.26.0,<2 - boto3>=1.34.89,<2 - pyarrow>=19.0.1 - commands: - - cmd: uv run cloud_export_to_parquet/run_worker.py - - cmd: uv run cloud_export_to_parquet/create_schedule.py - new_terminal: true - path: gevent_async description: Run Temporal in a gevent-patched environment with a custom executor dependencies: - temporalio>=1.23.0,<2 - gevent>=25.4.2 - commands: - - cmd: uv run gevent_async/worker.py - - cmd: uv run gevent_async/starter.py - new_terminal: true - path: open_telemetry description: Configure OpenTelemetry to capture workflow traces and SDK metrics dependencies: - temporalio[opentelemetry]>=1.23.0,<2 - opentelemetry-exporter-otlp-proto-grpc - commands: - - cmd: uv run open_telemetry/worker.py - - cmd: uv run open_telemetry/starter.py - new_terminal: true - path: pydantic_converter description: Use the Pydantic data converter for workflow and activity I/O dependencies: - temporalio>=1.23.0,<2 - pydantic>=2.10.6,<3 - commands: - - cmd: uv run pydantic_converter/worker.py - - cmd: uv run pydantic_converter/starter.py - new_terminal: true - path: pydantic_converter_v1 description: Pydantic v1 data converter (use v2 pydantic_converter instead if possible) dependencies: - temporalio>=1.23.0,<2 - pydantic>=2.10.6,<3 - commands: - - cmd: uv run pydantic_converter_v1/worker.py - - cmd: uv run pydantic_converter_v1/starter.py - new_terminal: true - path: sentry description: Capture workflow and activity errors with Sentry SDK v2 integration dependencies: - temporalio>=1.23.0,<2 - sentry-sdk>=2.13.0 - commands: - - cmd: uv run sentry/worker.py - - cmd: uv run sentry/starter.py - new_terminal: true - path: trio_async description: Use Temporal asyncio with Trio via trio-asyncio bridge dependencies: - temporalio>=1.23.0,<2 - trio>=0.28.0,<0.29 - trio-asyncio>=0.15.0,<0.16 - commands: - - cmd: uv run trio_async/worker.py - - cmd: uv run trio_async/starter.py - new_terminal: true