Skip to content

Source Control

There are many options when working with Source Control. Github, Gitlab, bitbucket etc. For Public projects, Github can be used.

Goal

  • Following industry best practices to work in geo-distributed teams encourages contributions.
  • Improve code quality by enforcing reviews before merging into main branches
  • Improve traceability of features and fixes through a clean commit history

General Guidance

Consistency is important, so agree to the approach as a team before starting to code. Treat this as a design decision, so include a design proposal and review, in the same way as you would document all design decisions

Creating a new repository

When creating a new repository, the team should at least do the following

  • Agree on the branch, release, and merge strategy
  • Define the merge strategy (linear or non-linear)
  • Lock the default branch and merge using pull requests (PRs)
  • Agree on branch naming (e.g. user/your_alias/feature_name)
  • Establish branch/PR policies
  • For public repositories the default branch should contain the following files:
  • LICENSE
  • README.md
  • CONTRIBUTING.md

Contributing to an existing repository

When working on an existing project, git clone the repository and ensure you understand the team's branch, merge and release strategy (e.g. through the project CONTRIBUTING.md file)