Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Edits to python versioning fixes
  • Loading branch information
donald-pinckney committed Apr 17, 2026
commit 09e71e711c0e55c308c91d7d7b908c0bdf3d6dba
21 changes: 16 additions & 5 deletions references/python/versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,13 +226,12 @@ worker = Worker(
Workflows stay locked to their original Worker version:

```python
from temporalio.workflow import VersioningBehavior
from temporalio.common import VersioningBehavior

@workflow.defn
@workflow.defn(versioning_behavior=VersioningBehavior.PINNED)
class StableWorkflow:
@workflow.run
async def run(self) -> str:
# This workflow will always run on its assigned version
return await workflow.execute_activity(
process_order,
start_to_close_timeout=timedelta(minutes=5),
Expand All @@ -250,6 +249,19 @@ class StableWorkflow:

Workflows can move to newer versions:

```python
from temporalio.common import VersioningBehavior

@workflow.defn(versioning_behavior=VersioningBehavior.AUTO_UPGRADE)
class UpgradableWorkflow:
@workflow.run
async def run(self) -> str:
return await workflow.execute_activity(
process_order,
start_to_close_timeout=timedelta(minutes=5),
)
```

**When to use AUTO_UPGRADE:**

- Long-running workflows (weeks or months)
Expand All @@ -262,7 +274,6 @@ Workflows can move to newer versions:
### Worker Configuration with Default Behavior

```python
# For short-running workflows, prefer PINNED
worker = Worker(
client,
task_queue="orders-task-queue",
Expand All @@ -274,7 +285,7 @@ worker = Worker(
build_id=os.environ["BUILD_ID"],
),
use_worker_versioning=True,
# default_versioning_behavior=VersioningBehavior.PINNED,
default_versioning_behavior=VersioningBehavior.PINNED,
),
)
```
Expand Down