Our Git repository is organized with three primary branches:
We have adopted a rebase policy to maintain a clean and linear project history. When working on the dev branch, instead of merging changes from main, we use interactive rebasing to integrate the latest changes. This keeps the commit history streamlined and avoids unnecessary merge commits.
All commits in our repository are verified using GPG signatures. This ensures the authenticity of the commits and helps maintain the integrity of the project history. The GPG signature is generated by adding a secret key to GitHub Secrets, adding an extra layer of security to our commits.
To control the flow of changes into the main branch, we have implemented a policy. Direct pushes to the main branch are restricted. Developers are required to create a feature branch from dev, develop the feature, and then submit a pull request.
Our development workflow includes the following steps:
This approach ensures that changes are thoroughly reviewed before integration, maintaining code quality and consistency.
We adhere to the conventional commits specification for our commit messages. This convention helps in tracking the progress of the project more efficiently and facilitates automated versioning and changelog generation.