Git Workflow Guidelines
We follow a structured branching and release model to maintain the integrity of our main and develop branches. This ensures a stable production environment while allowing for continuous integration of new features.
🧩 Feature Development
All new features and bug fixes should be developed on dedicated branches extending from develop.
1. Create a Feature Branch
Always branch off the latest code.
2. Work & Commit
Make your changes. We strictly use Conventional Commits and require a representative emoji at the start of the message.
3. Push to Remote
Push your feature branch to the repository. If working with others, this is when you would open a Pull Request.
4. Merge to Develop
Once the feature is complete and verified, merge it back into the develop branch using a non-fast-forward merge (--no-ff) to preserve the feature's commit history.
git checkout develop
git pull origin develop
git merge --no-ff feat/xyz -m "✨ merge: sync xyz → develop"
git push origin develop
git branch -d feat/xyz
🚀 Production Release
Releases are formalized by merging aggregated features from develop into the main branch.
1. Ensure develop is Latest
2. Merge develop → main
Merge the code into the production branch, again preserving the merge commit.
git checkout main
git pull origin main
git merge --no-ff develop -m "🚀 release: sync develop → main"
git push origin main
3. Run Release Script
Use our automated release scripts to formally bump the semantic version, manage to pyproject.toml, and generate the release tags.
This step will automatically trigger the GitHub Actions PyPI publishing pipeline once the tag is pushed.