Naming and Patterns for Mapping Git Branches to Koji Tags
1. Git Branches
Git branches all follow a pattern that is matchable with this python regular expression:
r'sig-(?P<shortname>\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
We recommend SIGs follow a Build -> Test -> Release process using the default tags created in Koji.
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]