On 07/15/2014 02:19 PM, Thomas Oulevey wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello Folks,
As discussed in the past on this mailing list for the Centos build service we need to define different koji targets for the SIGs. I 'll try to present you a possible solution.
In the koji world, a "target" has a "build tag" and "destination tag". To simply the "build tag" is the buildroot and "destination tag" is the tag that will contain all the packages.
If you look at Fedora koji instance (http://koji.fedoraproject.org/koji/buildtargets) you see that it is quite simple : fXX target and the associated "build tag" is fXX-build. That implies they build only packages with a single "disttag" (from the macro file) for a "destination tag".
As we want to provide for each "sig" a set of targets we need to think about the naming.
The SIGs will be able to choose a "disttag" ; which can be default el7.centos, el7 or something else.
Let's say we have SIG="storage" DISTRIBUTION="el7".
storage7-el7-build storage7-el7.centos-build storage7-el7_0-build
On top of that some products we want to build/rebuild use software collection so we will need an additional buildroot (e.g: *python33-build):
storage7-el7-python33-build storage7-el7_0-python33-build
I am not sure if I understand you correctly. Is it about using packages which are not part of build-tag but have been built using koji for a SIG. This is solved in Fedora by using "BuildRootOverride" [1]. I think koji+bodhi work flow works pretty well here.
[1] https://fedoraproject.org/wiki/Bodhi/BuildRootOverrides
This part is needed for some rebuild, if the packaging is done correctly we should not need more than Requires:COLLECTION-build in the spec files.
So my proposal is:
For the build tags : <SIG><MAJOR>-<TAG>[-<COLLECTION>,]-build And the target : <SIG><MAJOR>-<TAG>[-<COLLECTION>,] The destination can be <SIG><MAJOR>-testing/<SIG><MAJOR>-release for all the target. (or keep the Fedora naming dist-*, but it looks more confusing to me)
What about packages which are needed to multiple SIGs? For example a newer libvirt package which required to "virtualization", "cloud" and "storage" SIG? For example if storage SIG have built a libvirt and other SIGs want to use the same package in their buildroot.
Maybe we can find something better, let me know.
We should keep the destination tags to small number as much as possible and should use a build promoting mechanism i.e. build for testing repo, then promote it to stable repo when it is ready.
I think we need to take decision on the naming so we can integrate with centpkg (don't forget about tomorrow centpkg demo : http://lists.centos.org/pipermail/centos-devel/2014-July/011474.html)
The tools need to be able depending on the "disttag" to use the correct "target" on the koji CLI, so it will be transparent to build service users. e.g: koji build storage7-el7.centos https://git.centos.org/pkg?#tag I presented this as our SIG use case but please keep in mind that we will have the same issues in the future ("Force sig to use 1 disttag only" argument) if we want to add more rebuild use cases (scl, devtoolset, etc...)
I hope I did not confused you more :-) I am waiting for your feedback.