Releasing Orcheo Packages¶
This repository now publishes three Python distributions independently, plus a versioned stack container image release:
orcheo– core orchestration engine (core-v*tags)orcheo-sdk– Python SDK helpers (sdk-v*tags)orcheo-backend– deployable FastAPI wrapper (backend-v*tags)ghcr.io/ai-colleagues/orcheo-stack– stack runtime image (stack-v*tags)
The build-and-release and stack-release jobs inside
.github/workflows/ci.yml publish the matching package/image whenever a tag
with the corresponding prefix is pushed. Follow the steps below to prepare and
cut a release.
Prerequisites¶
uvinstalled locally, matching the version used in CI.- Ability to push tags to the repository.
- PyPI trusted publishing configured for the repository (already set up in CI).
Shared Release Checklist¶
- Update version: Edit the target package's
pyproject.tomland bump theversionfield. Keep versions independent across the three packages. You can automate the edit withbump2versionusing the package-specific configuration files:
# examples
bump2version patch # core package; produces tag core-vX.Y.Z
(cd apps/backend && bump2version minor) # tag backend-vX.Y.Z
(cd packages/sdk && bump2version patch) # tag sdk-vX.Y.Z
(cd deploy/stack && bump2version patch) # tag stack-vX.Y.Z
Each config now commits and creates the tag with the correct prefix; remove
commit/tag/tag_name options if you prefer to handle those manually.
2. Update changelog/docs: Capture the changes since the last release.
3. Sync dependencies: Run uv sync --all-groups if dependencies changed so the
lockfile stays up to date.
4. Verify quality gates:
orcheo plugin install "git+https://github.com/AI-Colleagues/orcheo-plugin-wecom-listener.git"
- orcheo plugin install "git+https://github.com/AI-Colleagues/orcheo-plugin-lark-listener.git"
- successful validation of the shared Canvas template
template-wecom-lark-shared-listener
- plugin edge compatibility checks remain green
5. Commit the changes and open a pull request. Merge once CI is green.
6. Tag the release from the merged commit using the naming convention in the table
below, then push the tag.
| Package | Tag pattern |
|---|---|
orcheo |
core-vX.Y.Z |
orcheo-backend |
backend-vX.Y.Z |
orcheo-sdk |
sdk-vX.Y.Z |
| stack image | stack-vX.Y.Z |
CI automatically runs checks, then executes build-and-release for Python tags
or stack-release for stack tags. The stack release job publishes
ghcr.io/ai-colleagues/orcheo-stack:<version> and
ghcr.io/ai-colleagues/orcheo-stack:latest.
Package-specific Notes¶
orcheo (core)¶
- Run
bump2version <part>from the repository root (for examplebump2version patch). - If new public APIs were added, update
README.mdand relevant docs. - Push the release commit and tag:
git push origin HEAD && git push origin core-vX.Y.Z.
orcheo-backend¶
- Ensure
apps/backend/pyproject.tomlreferences the desiredorcheoversion in its dependencies. - Run
(cd apps/backend && bump2version <part>)to update the version. - Push the release commit and tag:
git push origin HEAD && git push origin backend-vX.Y.Z.
orcheo-sdk¶
- Run
(cd packages/sdk && bump2version <part>)to update the version. - Update SDK documentation or examples if interfaces changed.
- Push the release commit and tag:
git push origin HEAD && git push origin sdk-vX.Y.Z.
stack image¶
- Run
(cd deploy/stack && bump2version <part>)to createstack-vX.Y.Z. - Ensure
deploy/stack/contains the intended compose and widget assets. - Push the release commit and tag:
git push origin HEAD && git push origin stack-vX.Y.Z.
Post-release Follow-up¶
- Announce the release, update sample code, and communicate dependency expectations
(e.g., minimum
orcheoversion required byorcheo-backend). - Remove local
dist/directories if you performed a manual build.