[CentOS-devel] Koji targets for the SIGs

Tue Jul 15 15:10:55 UTC 2014
Lalatendu Mohanty <lmohanty at redhat.com>

On 07/15/2014 02:19 PM, Thomas Oulevey wrote:
> 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.