Releasing¶
This repository is a monorepo with more than one publishable Python package. Use package-specific tags so releases are unambiguous.
Tag Convention¶
Use:
updatesupport-vX.Y.Z
updatesupport-finance-vX.Y.Z
Do not use bare tags such as v0.1.1 for new releases. Bare version tags are
ambiguous once core and plugin packages can release independently.
Examples:
updatesupport-v0.1.1
updatesupport-finance-v0.1.0
Release Order¶
If a plugin depends on a new core version, publish core first.
For the first finance plugin release:
Publish
updatesupport==0.1.1.Publish
updatesupport-finance==0.1.0.
That ordering matters because updatesupport-finance==0.1.0 depends on
updatesupport>=0.1.1, and the core finance extra points to
updatesupport-finance>=0.1.0.
Core Package¶
Check that pyproject.toml has the intended core version, then tag and create a
GitHub release:
git tag -a updatesupport-v0.1.1 -m "updatesupport 0.1.1"
git push origin updatesupport-v0.1.1
gh release create updatesupport-v0.1.1 \
--verify-tag \
--title "updatesupport 0.1.1" \
--generate-notes
Publish to TestPyPI first:
gh workflow run publish.yml -f repository=testpypi
gh run watch
Then publish to PyPI:
gh workflow run publish.yml -f repository=pypi
gh run watch
Finance Plugin¶
Check that packages/updatesupport-finance/pyproject.toml has the intended
plugin version, then tag and create a GitHub release:
git tag -a updatesupport-finance-v0.1.0 -m "updatesupport-finance 0.1.0"
git push origin updatesupport-finance-v0.1.0
gh release create updatesupport-finance-v0.1.0 \
--verify-tag \
--title "updatesupport-finance 0.1.0" \
--generate-notes
Publish to TestPyPI first:
gh workflow run publish-finance.yml -f repository=testpypi
gh run watch
Then publish to PyPI:
gh workflow run publish-finance.yml -f repository=pypi
gh run watch
Independent Plugin Releases¶
If only updatesupport-finance changes, release only the finance plugin:
updatesupport-finance-v0.1.1
No core tag is needed unless core code, metadata, dependency floors, or extras change.
If only core changes, release only core:
updatesupport-v0.1.2
No finance tag is needed unless the finance package also changes or needs a new core dependency floor.
Trusted Publishing Environments¶
The GitHub workflows use PyPI trusted publishing. Configure these environments in GitHub and PyPI/TestPyPI:
core:
testpypi,pypifinance plugin:
finance-testpypi,finance-pypi
The finance workflow publishes from dist/finance/; the core workflow publishes
from the root dist/.