Version Control
Overviewβ
The project is managed using Git and GitHub. The Git repository serves as a monorepo that integrates the following key components:
- Docusaurus Documentation π β Project documentation
- Extension π β Frontend & logic handling
- WebServer π β Backend operations
Branching Strategyβ
Main Branch (main
)β
- The
main
branch holds the most stable and up-to-date version of the project. - No direct commits are allowedβchanges are merged via pull requests.
Sprint Branch (GCCB-SP#-main
)β
- At the start of each Sprint, a new working branch from
main
is created in the format:GCCB-SP#-main
(e.g.,GCCB-SP3-main
for Sprint 3) - This branch accumulates all changes and features during the sprint.
- It ensures
main
remains clean while providing a dedicated branch for sprint development.
Feature Branches (GCCB-[#]-
)β
- Feature branches are created from the current
GCCB-SP[#]-main
branch through Jira. - Naming convention:
GCCB-#-
where#
is the Jira issue number. - These branches are task-specific and linked to Jira issues.
End of Sprint Mergingβ
- At the end of each sprint, the final stage of
GCCB-SP#-main
will be reviewed and merged back intomain
. - Ensures all changes are stable before reaching production.
Branch Protection Rulesβ
Rules are strictly enforced to maintain code quality and security:
Branch | Approval Required | Direct Pushes |
---|---|---|
main | 2 approvals | β Not allowed |
GCCB-SP#-main | 1 approval | β Not allowed |
Pull Request Processβ
- Create a Feature Branch (
BP-#
) from the sprint branch. - Push changes and open a PR for review.
- Review & Approvals:
- Feature branches: 1 approval (Sprint Branch)
- Sprint branches: 2 approvals (
main
)