Read AGENTS.md first; it is the normative guide and this page only summarizes the
workflow.
- Python plugins: install uv and GNU make (
brew install makeon macOS if needed;choco install makeon Windows, or use WSL). cd python/<plugin> && make sync && make lint && make test.
- Ordinary PRs are squash-merged. Issue and PR templates are the organization defaults from
temporalio/.github. - PRs that import or re-sync commits reachable from an SDK repository's default branch are labelled
history-importand merged with "Create a merge commit", never squash or rebase. Work from an unmerged or closed upstream PR is ordinary PR work and must not carry that label, regardless of its commit count or trailers. Adaptation changes go in separate commits after a real import; documented local-only divergences are preserved across later re-syncs as described in AGENTS.md. - CI runs only the plugins whose files changed (
.github/workflows/ci.yml);ci-status,Check for CODEOWNERSandopengrep/scanare the required checks, plus one code-owner approval. No secrets are needed: provider behavior uses deterministic local test doubles.
uv run --project scripts --locked python scripts/new_python_plugin.py <name> --description "..." --maturity pre-releaseThe scaffolder copies python/_template, prints the remaining manual steps, and no workflow
edits are needed: CI discovers plugins from plugin.toml. To migrate an existing plugin with its
history, follow scripts/migrate/README.md.
All contributors must complete the Temporal Contributor License Agreement (CLA) before changes can be merged. A link to the CLA will be posted in the pull request.
Release tags are authoritative: keep the committed Python version at 0.0.0, dry-run the intended
python/<name>/v<version> tag from main, then create the protected tag without a version-only PR.
Follow the runbook in AGENTS.md ("Releases"). Release notes are generated from commit messages, so
write commit subjects you would want users to read.