Add missing pages Fix the nav for release guide Cleanup branching sop Add release version substitutions Signed-off-by: Tomas Hrcka <thrcka@redhat.com>
208 lines
4.9 KiB
Text
208 lines
4.9 KiB
Text
== Adding Side Build Tags
|
|
|
|
=== Description
|
|
|
|
Bigger Features can take a while to stabilize and land or need a large
|
|
number of packages to be built against each other, this is easiest
|
|
served by having a separate build tag for the development work. This SOP
|
|
will describe the steps necessary to prepare the new build target.
|
|
|
|
=== Action
|
|
|
|
Engineers should be aware that adding side build targets incurs extra
|
|
newRepo tasks in the koji.
|
|
|
|
==== Research Tag
|
|
|
|
. Verify whether a tag already exists.
|
|
+
|
|
The typical tag format is _PRODUCT_-_DESCRIPTOR_. The _DESCRIPTOR_
|
|
should be something brief that clearly shows why the tag exists.
|
|
+
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Don't think too hard about what makes a good descriptor. The descriptor
|
|
for the XFCE version 4.8 side-build target was _xfce48_. KDE often
|
|
simply uses _kde_ as its descriptor. Use best judgement and if in doubt
|
|
ask in IRC on `#fedora-releng`.
|
|
====
|
|
+
|
|
EPEL6
|
|
|
|
....
|
|
$ koji taginfo epel6-kde
|
|
....
|
|
+
|
|
EPEL7
|
|
|
|
....
|
|
$ koji taginfo epel7-kde
|
|
....
|
|
+
|
|
Fedora
|
|
|
|
....
|
|
$ koji taginfo f28-kde
|
|
....
|
|
+
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
If the tag already exists, continue searching for an available tag by
|
|
appending `-2` and incrementing the number by one until an available tag
|
|
is found. For example, if `f28-kde` already exists then search for
|
|
`f28-kde-2`, `f28-kde-3`, and so on until a suitable tag is found.
|
|
====
|
|
. Determine the appropriate architectures.
|
|
+
|
|
EPEL6
|
|
|
|
....
|
|
$ koji taginfo dist-6E-epel-build
|
|
....
|
|
+
|
|
EPEL7
|
|
|
|
....
|
|
$ koji taginfo epel7-build
|
|
....
|
|
+
|
|
Fedora
|
|
|
|
....
|
|
$ koji taginfo f28-build
|
|
....
|
|
|
|
==== Create Side Build Target
|
|
|
|
. Create the proper tag.
|
|
+
|
|
Note the slightly different syntax depending on which product needs the
|
|
side-build target and the comma delimited list of architectures based on
|
|
the information from a previous step.
|
|
+
|
|
EPEL6
|
|
|
|
....
|
|
$ koji add-tag epel6-kde --parent=dist-6E-epel-build --arches=i686,x86_64,ppc64
|
|
....
|
|
+
|
|
EPEL7
|
|
|
|
....
|
|
$ koji add-tag epel7-kde --parent=epel7-build --arches=aarch64,x86_64,ppc64,ppc64le
|
|
....
|
|
+
|
|
Fedora
|
|
|
|
....
|
|
$ koji add-tag f28-kde --parent=f28-build --arches=armv7hl,i686,x86_64,aarch64,ppc64,ppc64le,s390x
|
|
....
|
|
. Create the target.
|
|
+
|
|
EPEL6
|
|
|
|
....
|
|
$ koji add-target epel6-kde epel6-kde
|
|
....
|
|
+
|
|
EPEL7
|
|
|
|
....
|
|
$ koji add-target epel7-kde epel7-kde
|
|
....
|
|
+
|
|
Fedora
|
|
|
|
....
|
|
$ koji add-target f28-kde f28-kde
|
|
....
|
|
. Find the taskID for the newRepo task associated with the newly created
|
|
target.
|
|
+
|
|
....
|
|
$ koji list-tasks --method=newRepo
|
|
ID Pri Owner State Arch Name
|
|
25101143 15 kojira OPEN noarch newRepo (f28-kde)
|
|
....
|
|
. Ensure the newRepo task is being run across all architectures.
|
|
+
|
|
....
|
|
$ koji watch-task 25101143
|
|
Watching tasks (this may be safely interrupted)...
|
|
25101143 newRepo (f28-kde): open (buildvm-14.phx2.fedoraproject.org)
|
|
25101154 createrepo (i386): closed
|
|
25101150 createrepo (ppc64le): closed
|
|
25101152 createrepo (ppc64): closed
|
|
25101151 createrepo (aarch64): closed
|
|
25101149 createrepo (armhfp): closed
|
|
25101153 createrepo (s390x): open (buildvm-ppc64le-04.ppc.fedoraproject.org)
|
|
25101148 createrepo (x86_64): open (buildvm-aarch64-21.arm.fedoraproject.org)
|
|
....
|
|
. Request Package Auto-Signing for New Tag
|
|
+
|
|
File a ticket in https://pagure.io/fedora-infrastructure/issues[pagure
|
|
infrastructure] requesting the new tag be enabled for package
|
|
auto-signing.
|
|
. Update the Pagure Issue
|
|
+
|
|
Update the issue according to the following template which assumes a
|
|
side target was made for KDE under Fedora 28. _TAG_NAME_ has been
|
|
created:
|
|
+
|
|
____
|
|
$ koji add-tag f28-kde --parent=f28-build
|
|
--arches=armv7hl,i686,x86_64,aarch64,ppc64,ppc64le,s390x
|
|
|
|
$ koji add-target f28-kde f28-kde
|
|
|
|
You can do builds with:
|
|
|
|
$ fedpkg build --target=f28-kde
|
|
|
|
Let us know when you are done and we will move all the builds into f28.
|
|
____
|
|
|
|
=== Cleanup
|
|
|
|
Fedora Release Engineering is responsible for merging the packages from
|
|
the side-build target and tag back into the main tag. The requestor will
|
|
update the original ticket when ready for the procedure outlined below.
|
|
|
|
. Remove the target
|
|
+
|
|
....
|
|
$ koji remove-target <SIDE_TAG_NAME>
|
|
....
|
|
. Merge side build back to main target.
|
|
+
|
|
Get the latest checkout from https://pagure.io/releng/[Fedora Release
|
|
Engineering Repository] and run the [.title-ref]#mass-tag.py# from the
|
|
scripts directory.
|
|
+
|
|
....
|
|
$ ./mass-tag.py --source <SIDE_TAG_NAME> --target <MAIN_TAG_NAME> > mass_tag.txt
|
|
....
|
|
+
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
The _MAIN_TAG_NAME_ for Fedora is typically the pending subtag, e.g.
|
|
`f28-pending` when bodhi is not managing updates. After bodhi is enabled
|
|
and managing updates then merge into `f28-updates-candidate`.
|
|
====
|
|
. Paste Output to the Original Ticket
|
|
+
|
|
Paste the output from mass-tag.py into the pagure/releng ticket to show
|
|
what packages were merged and what packages need rebuilding for those
|
|
who work on the buildroot.
|
|
|
|
Tags are *never* removed.
|
|
|
|
=== Consider Before Running
|
|
|
|
* Is the amount of work to be done worth the cost of newRepo tasks.
|
|
* If there is only a small number of packages overrides may be better.
|
|
* Is there a mass-rebuild going on? no side tags are allowed while a
|
|
mass rebuild is underway
|