-
Notifications
You must be signed in to change notification settings - Fork 5
Development Workflow
LinJHS edited this page Dec 20, 2025
·
1 revision
This project uses a standard branching strategy combined with setuptools_scm for automatic version management.
-
main: The stable branch. This branch reflects the latest released version. Code here is production-ready. -
dev: The active development branch. New features and fixes are committed here first.
We use setuptools_scm to handle versioning automatically based on Git tags. You do not need to manually edit any version numbers in the code.
-
On
devbranch:- When you commit to
dev, the version number is dynamically calculated as a "development version". - Format example:
0.1.1.dev3+g123abc-
0.1.1: The next anticipated release (or current state). -
dev3: 3 commits since the last tag. -
g123abc: The git commit hash.
-
- When you commit to
-
On
mainbranch (Release):- When you are ready to release, merge
devintomain. - Create a Git Tag on
main(e.g.,v0.2.0). -
setuptools_scmwill recognize this tag and set the package version to exactly0.2.0.
- When you are ready to release, merge
-
Develop:
git checkout dev # Make changes... git add . git commit -m "feat: add new feature" git push origin dev
-
Merge: Once features are tested and ready:
git checkout main git merge dev git push origin main
-
Release (Tag): Trigger a release by creating a tag:
git tag v0.2.0 git push origin v0.2.0
This will trigger the GitHub Actions workflow to build and publish the package to PyPI and Docker Hub.