Skip to main content
Version: Latest (In Progress)

Version Control

Overview

The project is managed using Git and GitHub. There are 3 GitHub repositories for this project.

The Extension

  • docs 📚 – Project Documentation
  • extension 🛠 – VSCode Extension
  • intellij - A Basic Intellij Plugin
  • nvim - A Basic Neovim Plugin

The Website

The API

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 and changes are merged via pull requests from the dev branch.

Dev Branch (dev)

  • This branch accumulates all changes and features during the sprint.
  • It ensures main remains clean while providing a dedicated branch for sprint development.
  • For the API, any changes to dev create a new deployment on Google Cloud. For the extension, if tags are pushed then a new pre-release build is created and pushed to the vscode marketplace

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 dev will be reviewed and merged back into main.
  • Ensures all changes are stable before reaching production.

Branch Protection Rules

Rules are strictly enforced to maintain code quality and security:

BranchApproval RequiredDirect Pushes
main2 approvals❌ Not allowed
dev1 approval❌ Not allowed

Pull Request Process

  1. Create a Feature Branch (BP-#) from the sprint branch.
  2. Push changes and open a PR for review.
  3. Review & Approvals:
  • Feature branches: 1 approval (Sprint Branch)
  • Sprint branches: 2 approvals (main)