Skip to main content

VCS Best Practices

Branch Definitions

Production Branch

All production brances must follow rp-* (release production) pattern.

  1. The branches with this pattern will only be deployed to production.
  2. Only maintainers will have access to push and merge on these branches.

Staging Branch

All staging brances must follow sb-* (staging branch) pattern.

  1. The branches with this pattern are the staging branches corresponding to the production branches.
  2. Only corresponding sb-* branches will be merged with the rp-* branches.
note

No other branch will be built except the ones mentioned above.

Tags

Production tags

Tags for production release should follow the following pattern:

v(major version).(minor version).(patch version)

E.g. v1.3.6

Staging tags

Tags for staging should follow the following pattern:

v(major version).(minor version).(patch version)-(stage).(stage version)

E.g. v1.4.1-a.1 - for alpha stage

v1.4.1-b.1 - for beta stage

v1.4.1-rc.1 - for release candidate

note

No other tags will be built except the ones mentioned above.

note

Please refer to the Semver specification for more details on the production and staging.

Access Control

Maintainers

Maintainers have access to the following resources in a repository:

  1. Production branch - push, pull, create merge requests, accept merge requests
  2. Staging branch - push, pull, create merge requests, accept merge requests
  3. Tags - create tags with the pattern mentioned in the Tags section.

Developers

Developers have access to the following resources in a repository:

  1. Production branch - create merge requests
  2. Staging branch - create merge requests
  3. Tags - create tags that do not match the pattern in the Tags section.