- Package version lives in
pyproject.toml([project].version) andsrc/__init__.py. - Follow Semantic Versioning and update
CHANGELOG.mdunder[Unreleased].
make release-checkRuns lint, type-check, security scans, tests, and python -m build.
pip install pip-tools
python3 scripts/lock_requirements.pyCommit updated requirements.lock / requirements-dev.lock when refreshing pins.
- Create the PyPI project
edge-deployment-manager(if it does not exist). - On PyPI → Publishing → Add a new pending publisher:
- PyPI project name:
edge-deployment-manager - Owner:
akintunero - Repository:
edge-deployment-manager - Workflow:
release.yml - Environment name:
pypi
- PyPI project name:
- In GitHub → Settings → Environments → create environment
pypi(no extra secrets required for OIDC). - Tag a release (workflow validates tests, builds, publishes, creates GitHub release):
git tag v2.0.0
git push origin v2.0.0-
CHANGELOG.mdupdated -
pyproject.tomlandsrc/__init__.pyversions match tag -
make release-checkpasses locally -
requirements.lockrefreshed if dependencies changed (make lock-deps)
- Configure a GitHub environment named
pypiwith trusted publishing for this repository. - Tag a release:
git tag v2.0.0
git push origin v2.0.0- The Release workflow runs tests, builds sdist/wheel, publishes to PyPI, and creates a GitHub release.
pip install edge-deployment-manager
edge-deployment-manager --help
edge-control-plane --help