As a solo developer, I maintain strict development practices to ensure code quality and maintainability. This guide outlines the processes I follow for development.
I follow a strict Gitflow workflow to maintain a clean and organized codebase:
main: Core branch with the latest shippable ruleset configurations. This branch is protected and receives merges fromdevelop.develop: Integration branch for ongoing development of new rulesets or updates. This branch maintains linear history.feature/*: Branches for developing new ruleset capabilities. Create fromdevelopand squash-merge back todevelop.fix/*: Branches for bug fixes or ruleset improvements. Create fromdevelopand squash-merge back todevelop.release/*: Branches for preparing a new version. Create fromdevelopand merge into bothdevelopandmain.
- Signed Commits: All commits must be signed using
git commit -sorgit commit --signoff. - Linear History:
developbranch: Maintains linear history through squash merges from feature branches.mainbranch: Receives regular merges fromdevelop, creating non-linear history.
- Merge Strategy:
- Feature branches →
develop: Squash and merge develop→main: Regular merge (not squashed)
- Feature branches →
- Commit Messages: Write clear, concise commit messages that describe what was changed and why.
- Tagging: Create tags on the
mainbranch to mark official releases. Tags should point to the merge commit fromdeveloptomain.
- Create a feature or fix branch from
develop. - Make changes and test thoroughly.
- Rebase onto the latest
developto resolve conflicts. - Squash commits into meaningful units.
- Squash-merge back to
developvia a pull request. - When ready for release:
- Create a
release/*branch fromdevelop - Make any final release preparations
- Squash-merge the
release/*branch back todevelop - Then merge
developtomain(regular merge, not squashed) - Create a tag on the
mainbranch at the merge commit to mark the official release
- Create a
I use GitHub issues to track tasks. Issue templates are available:
See the README.md for setup instructions.