Skip to content

Branches Developing

Brenden Soares edited this page Apr 12, 2022 · 4 revisions

Branch

In the revel project there should only be the following branches

Long term branches

Short term branches

Master

The Master branch is a long term branch containing the latest version of the code.

Develop

The Develop branch is a long term branch containing the actively developed code. All pull requests should target the Develop branch unless it addresses issues found in the Release or Hotfix

Release

The Release branch is a short term branch It has a naming convention like release/1.0.0. They are only used to test the final product before merging into the master branch The Release Conductor creates a new release after they have merged all the pull requests destined for that release.

Release to production process

When a release is ready for production the Release Conductor does the following:

  • Updates the version information inside of the package (if needed)
  • Creates a pull request to merge the Release into the Master branch
  • Merges the pull request to master
  • Makes sure travis passes after merge
  • Creates a new release tag following the convention listed here
  • Deletes the old release branch
  • Merge the Master branch back into the Develop branch

Hotfix

Hotfix are special case branches which are created to address an issue in the Master branch, they are the only branch created from the master

The workflow for a hotfix would be

  • Tech Lead
    • creates a new Hotfix branch from master format hotfix/<current_release>_1
  • Developer
    • makes this branch the "upstream" for his repository.
    • creates a unit test that reproduces the issue, fixes the issue, and pushes the changes to his forked repository
    • creates a pull request targeting this branch
  • Tech Lead
    • merges this pull request, into this releases, tests
    • creates a pull request into the Master branch
    • makes sure travis passes and adds a release label incrementing the last number of the version (vX.Y.Z , Z=Z+1)
    • merges the Master branch into the Develop
    • deletes the Hotifx branch

Backporting a Hotfix

If a user is using version 1, and the bug is fixed in version 2 but changing to version 2 is not possible a user can try to cherry-pick the change to there current version. It is not guaranteed that this will always work.