VCS Best Practices
Branch Definitions
Production Branch
All production brances must follow rp-*
(release production) pattern.
- The branches with this pattern will only be deployed to production.
- Only maintainers will have access to push and merge on these branches.
Staging Branch
All staging brances must follow sb-*
(staging branch) pattern.
- The branches with this pattern are the staging branches corresponding to the production branches.
- Only corresponding sb-* branches will be merged with the rp-* branches.
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
No other tags will be built except the ones mentioned above.
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:
- Production branch - push, pull, create merge requests, accept merge requests
- Staging branch - push, pull, create merge requests, accept merge requests
- Tags - create tags with the pattern mentioned in the Tags section.
Developers
Developers have access to the following resources in a repository:
- Production branch - create merge requests
- Staging branch - create merge requests
- Tags - create tags that do not match the pattern in the Tags section.