3. Git(lab) Repository

Policy regarding git repository layout and configuration. This applies to repositories in the Librem5 space on https://source.puri.sm:

  1. The default branch of the repository must be the branch where people should contribute to if they want to advance development. It must not be an outdated, unused branch or the master branch of the upstream repository if we maintain a downstream fork.
  2. Canonical branch naming should be used. If we’re upstream the main development branch should be called master, if we’re maintaing a phone specific fork of a software, the branch should be called librem5. These branches must be protected branches that don’t allow force pushes.
  3. The description in Gitlab must describe the repositories purpose. If it’s a mirror from somewhere else this must be mentioned. If it’s no longer maintained too.
  4. The repository should have a README.md that tells people where to report bugs (which is the minimal entry point to interact with the maintainers). Other channels like irc, matrix, mailing lists should also be mentioned there.
  5. Each repository should have a doap file that documents the current maintainers.
  6. Contributions should happen via merge requests in Gitlab to allow for code review and automated testing. Direct pushes should be avoided.
  7. Merge request should happen from a personal fork of the repository not from branches within the repository.
  8. The repository should have a .gitignore file that sets up git to ignore generated artifacts. The aim is that after a build the repositories status is still clean.