Version Control Process - AD-EYE/AD-EYE_Core GitHub Wiki

Branching conventions

Guide based on this link

Contribute/Edit code

  1. git checkout intern_dev switches to intern_dev branch
  2. git pull updates the local intern_dev branch
  3. git checkout -b <new-branch-name> creates a new branch
  4. Work on the branch (git add and git commit) and push branch upstream when ready regularly
  5. Once the work is finished and tested, create a pull request for the branch to be merged into intern_dev

Pull requests creation

Before doing the pull request make sure that the feature you have implemented is functional and that it does not interfere with the platform (it does not break existing features). W01_Base_Map should always be functional and all the launch files should point to that map when creating the pull request.

During the pull request creation use the pull request template and fill it in (leave the review part to the reviewer).

After the pull request is created, you will be able to see a diff between both branches. Check all the modified files and make sure that there is no unintended modification.

Pull requests review

All the pull requests should contain the pull request template. This template contains a list of things to be checked by the reviewer during the review process.

Some modifications might be required. In that case, the reviewer can request changes. Once the reviewer has gone through the full review checklist and does not have any changes to request, they can approve the pull request and merge it.

Weekly process

Every week, one (or more) person is responsible for the intern_dev branch. That week, that person must:

  • review all the pull requests raised to intern_dev
  • merge the pull request to intern_dev once approved
  • raise a pull request from intern_dev to dev on Friday and notify Maxime
  • redistribute the requested changes by Maxime to the relevant code owners (if needed use git blame)
  • repeat this process until Maxime approves the pull request and synchronizes intern_dev and dev

The Friday intern_dev-dev pull request is high priority and all people that have to make changes should put their current task on hold.

Branch protection

  • Pushes to the master and dev branch are disabled.
  • All integration to master are done via pull requests assigned to Naveen.
  • All integration to dev are done via pull requests assigned to Maxime.