Skip to content

[Async stack 6/6] Document coroutine orchestrators and add Managed compatibility tests - #364

Draft
andystaples wants to merge 10 commits into
andystaples-async-stack-5-functions-supportfrom
andystaples-async-stack-6-docs-compatibility
Draft

andystaples wants to merge 10 commits into
andystaples-async-stack-5-functions-supportfrom
andystaples-async-stack-6-docs-compatibility

Conversation

@andystaples

@andystaples andystaples commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Warning

This PR is part of a review-only stack and must not be merged individually. The whole stack will be squash-merged after every PR in it is approved.

Stacked on #363. Final layer (6/6) of the coroutine (async def) orchestrator stack.

Changes

  • Documentation: adds async orchestrator guidance to the root README.md, docs/async-orchestrators.md, and azure-functions-durable/README.md.
    • Functions async orchestrators use the two-parameter shape with task.AsyncOrchestrationContext. Single-parameter async def orchestrators are unsupported and raise TypeError when registered.
    • Fan-out uses asyncio.gather or asyncio.TaskGroup. Races use ctx.as_task_context() handles with task.when_any.
    • Documents df.call_http for durable HTTP requests from async and generator durabletask contexts.
  • Migration guide: azure-functions-durable/MIGRATION_GUIDE.md describes the native async shape, adds the context.call_http → df.call_http mapping, and covers async composition.
  • Changelogs: the only changelog changes in the stack. Adds one ## Unreleased ADDED entry each for the core SDK, durabletask.azuremanaged, and azure-functions-durable. The core entry includes a replay and Python-version warning.
  • Managed compatibility tests: adds tests/durabletask-azuremanaged/test_dts_coroutine_orchestrators.py, which runs coroutine orchestrators through the Durable Task Scheduler worker/client. Cases run against in-memory gRPC for both core and Managed types; DTS-backed variants are marked dts and read ENDPOINT / TASKHUB with emulator defaults.

CI

  • eng/templates/build.yml runs the in-memory (not dts) cases of the new Managed test file in the official build, which has no emulator.
  • The azuremanaged_tests nox session (used by the GitHub Actions Managed workflow) also runs those in-memory cases, so they gate pull requests as well as the official build.

No source, version, or dependency changes are included in this layer.

@andystaples
andystaples added this pull request to stack #365 November 11, 2026 20:39
@andystaples
andystaples marked this pull request as draft November 12, 2026 16:30
@andystaples
andystaples force-pushed the andystaples-async-stack-6-docs-compatibility branch from 1df84a9 to 88e2d24 Compare November 12, 2026 16:55
@andystaples
andystaples force-pushed the andystaples-async-stack-6-docs-compatibility branch from 88e2d24 to 510dc24 Compare November 12, 2026 19:12
andystaples and others added 2 commits November 12, 2026 14:04
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@andystaples
andystaples force-pushed the andystaples-async-stack-6-docs-compatibility branch from 510dc24 to 818c9e2 Compare November 12, 2026 21:09
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
andystaples and others added 5 commits November 12, 2026 15:48
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use one ADDED entry for async orchestrators in the core and Managed
changelogs and state the Managed core-release requirement in user terms. Run
the in-memory Managed coroutine cases in the azuremanaged nox session, read
emulator settings with defaults, reuse the credential and secure-channel
pattern, and pick ports with the shared IPv6-aware helper.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
andystaples and others added 2 commits November 12, 2026 17:01
…ync-stack-6-docs-compatibility

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Describe two-parameter async orchestrators with AsyncOrchestrationContext,
the unsupported single-parameter async shape, asyncio fan-out and
as_task_context races, and the df.call_http helper. Remove the async
task_all and task_any documentation and consolidate the changelog entry.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.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