Version Control

Version control is the practice of tracking and managing changes to software code. Version control is important as it protects the source code from irreparable harm, giving the development team the freedom to make and test changes without causing damage or creating code conflicts. The following guidelines should be applied to manage software version control:

Branching[Mandatory]

Each application hosted on VCS must have at minimum three protected branches: development, test and production. Direct commits to protected branches is prohibited. Only reviewed and approved merge/pull requests shall be allowed to land on protected branches.

Source Code Versioning [Mandatory]

Software development teams must use Git for code versioning and tracking of changes made on files.

Tagging[Mandatory]

Test branch must always contain tagged version from development branch and production branch must always contain tagged version from the test branch.

Version control[Mandatory]

A Version Control System (VCS) must be used within the organization to host git repositories. At minimum, the VCS should have the following features: concurrent development, automation, team collaboration, tracking of changes, high availability and disaster recovery.

Source codes of government owned applications must be hosted on government VCS which is GitLab https://www.git.risa.gov.rw/