Naming and Patterns for Mapping Git Branches to Koji Tags
Each SIG is assigned a shortname for use in Koji Tags and Git Branches, here is a list of the current SIGs and their shortnames:
SIG |
Short Name |
Atomic SIG |
atomic |
Cloud SIG |
cloud |
Cloud Instance SIG |
cloudinst |
Software Collections SIG |
sclo |
Storage SIG |
storage |
Virtualization SIG |
virt |
1. Git Branches
Git branches all follow a pattern that is matchable with this python regular expression:
r'sig-(?P<signame>\w+)(?P<centosversion>\d)-?(?P<projectname>\w+)?-?(?P<releasename>\w+)?'
For instance if a developer is working as part of the Cloud SIG building Openstack release Juno for CentOS 7 the branch would be:
sig-cloud7-openstack-juno
The project and release attributes are optional components:
sig-cloud7 # Packages in common with all projects and releases in the Cloud SIG sig-cloud7-openstack # Packages in common with every release of Openstack in the Cloud SIG
2. Koji Tags
Given the same branch as above sig-cloud7-openstack-juno we need to map this branch first to a build target and in turn to a destination tag in Koji.
Our branch would map to the build target: cloud7-openstack-juno-el7 and come out in the destination tag cloud7-openstack-juno-candidate
The lifecycle of the package from testing to release would look like this:
[build] => cloud7-openstack-juno-candidate => [basic smoke testing] => cloud7-openstack-juno-testing => [more rigorous testing] => cloud7-openstack-juno-release => [sign+release]