Buildroot override SOP

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Deprecate this SOP and link to the bodhi buildroot override guide)
(16 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
{{admon/important|Deprecated|
 +
Bodhi now handles managing buildroot overrides. See the [[Bodhi/BuildRootOverrides]] document for details.
 +
}}
 +
 
== Description ==
 
== Description ==
 
<!-- Put a description of the task here.
 
<!-- Put a description of the task here.
Line 7: Line 11:
 
<!-- Describe the action and provide examples
 
<!-- Describe the action and provide examples
 
-->
 
-->
To tag a package for an override collection, use the <code></code><code>tag-pkg</code><code></code> method of Koji.
+
=== Find tag requests ===
 +
Tag requests are usually reported in the rel-eng trac instance at Fedorahosted in the component koji. You can use a trac query to list all [https://fedorahosted.org/rel-eng/query?status=new&status=assigned&status=reopened&component=koji&owner=rel-eng%40lists.fedoraproject.org&order=priority unassigned Koji tickets]. This query also includes requests, that are not a tag request, because there is no automated way to distinguish them. The results of the query are also available as an RSS feed, the link is in the footer of the page.
 +
 
 +
=== Perform the tagging ===
 +
First assign the ticket to yourself to show, that you are handling the request. Then to tag a package for an override collection, use the <code></code><code>tag-pkg</code><code></code> method of Koji.
 
<pre>
 
<pre>
 
$ koji tag-pkg --help
 
$ koji tag-pkg --help
Line 18: Line 26:
 
--nowait    Do not wait on task
 
--nowait    Do not wait on task
 
</pre>
 
</pre>
For example, if we were asked to make libwnck-2.18.2-2.fc7 available in the F7 buildroots we would issue:
+
For example, if we were asked to make libwnck-2.18.2-2.f13 available in the F13 buildroots we would issue:
 
<pre>
 
<pre>
$ koji tag-pkg --force dist-fc7-override libwnck-2.18.2-2.fc7
+
$ koji tag-pkg dist-f13-override libwnck-2.18.2-2.fc13
 +
</pre>
 +
fedora-override or epel-override permissions are required to tag packages into the -override tags.<BR>
 +
By convention override tags start with the base collection, <code></code><code>dist-f13</code><code></code> in this case, and end in <code></code><code>-override</code><code></code>.
 +
 
 +
=== Revert the tagging ===
 +
Once dependant builds are done, the -override should be cleared.  Use <code></code><code>koji untag-pkg</code><code></code> to accomplish this. Usually the requester reports in the ticket, when the override is no longer needed. After untagging the package and verification close the ticket.
 +
<pre>
 +
$ koji untag-pkg  --all dist-f13-override libwnck
 +
</pre>
 +
 
 +
=== Periodic cleanup ===
 +
Periodically check the -override tag for stale tags via [https://fedorahosted.org/rel-eng/browser/scripts/clean-overrides.py <code></code><code>clean-overrides.py</code><code></code>].
 +
 
 +
<pre>
 +
$ ./clean-overrides.py dist-f12-{override,updates}
 +
Builds that exist both in dist-f12-override and dist-f12-updates:
 +
libsepol-2.0.41-3.fc12
 +
xulrunner-1.9.1.8-1.fc12
 +
polkit-qt-0.95.1-3.fc12
 +
drumstick-0.2.99-0.3.20100208svn.fc12
 +
milia-0.3.0-2.fc12
 +
libimobiledevice-0.9.7-2.fc12
 +
libplist-1.2-1.fc12
 +
pki-symkey-1.3.2-3.fc12
 +
ppp-2.4.5-2.fc12
 +
 
 +
Builds that are older in dist-f12-override than in dist-f12-updates.
 +
usbmuxd-1.0.0-3.fc12
 +
 
 +
Suggest: koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12
 +
</pre>
 +
 
 +
Now run the suggested command if it looks sane:
 +
<pre>
 +
koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12
 +
</pre>
 +
{{admon/note|Fedora branched|In Fedora-branched, the <code>dist-f1X-updates</code> tag is empty. You need to use <code>dist-f1X</code> instead. E.g. <code>$ ./clean-overrides.py dist-f14{-override,}</code>}}
 +
 
 +
To check several releases at once, use a bash for loop:
 +
<pre>
 +
$ for release in {12..13}; do ./clean-overrides.py dist-f$release-{override,updates}; done
 
</pre>
 
</pre>
Important to notice that we used the <code></code><code>--force</code><code></code> option.  This is necessary as the -override tags are locked.  Only admins are allowed to tag packages for these collections.<BR>
 
By convention override tags start with the base collection, <code></code><code>dist-fc7</code><code></code> in this case, and end in <code></code><code>-override</code><code></code>.
 
  
 
== Verification ==
 
== Verification ==
Line 30: Line 77:
 
To verify that the tag was successful and the build will be available in the buildroot use the <code></code><code>latest-pkg</code><code></code> koji command:
 
To verify that the tag was successful and the build will be available in the buildroot use the <code></code><code>latest-pkg</code><code></code> koji command:
 
<pre>
 
<pre>
$ koji latest-pkg dist-fc7-build libwnck
+
$ koji latest-pkg dist-f13-build libwnck
 
Build                                    Tag                  Built by
 
Build                                    Tag                  Built by
 
----------------------------------------  --------------------  ----------------
 
----------------------------------------  --------------------  ----------------
libwnck-2.18.2-2.fc7                      dist-fc7-override    rhughes
+
libwnck-2.18.2-2.fc13                    dist-f13-override    rhughes
 
</pre>
 
</pre>
 
We should see the build nvr we tagged, and see that it is coming from the -override tag.
 
We should see the build nvr we tagged, and see that it is coming from the -override tag.
  
== Considerations ==
+
== Consider Before Running ==
 
<!-- Create a list of things to keep in mind when performing action.
 
<!-- Create a list of things to keep in mind when performing action.
 
-->
 
-->
 
* Once tagged, new repodata may take 20~ minutes to generate and the build to be available in buildroots.
 
* Once tagged, new repodata may take 20~ minutes to generate and the build to be available in buildroots.
 
* Buildroot overrides usually means that something is soname bumping.  Be sure this is a sane update to do in Fedora
 
* Buildroot overrides usually means that something is soname bumping.  Be sure this is a sane update to do in Fedora
* Once dependant builds are done, the -override should be cleared.  Use <code></code><code>koji untag-pkg</code><code></code> to accomplish this.
+
 
* Periodically check the -override tag for stale tags via <code></code><code>clean-overrides.py</code><code></code> found in Fedora releng git.
+
  
 
[[Category:Release Engineering SOPs]]
 
[[Category:Release Engineering SOPs]]

Revision as of 13:59, 13 June 2011

Important.png
Deprecated
Bodhi now handles managing buildroot overrides. See the Bodhi/BuildRootOverrides document for details.

Contents

Description

As it currently stands, the buildroots used for Fedora updates building are not self updating. They only contains things from the release, and stable released updates. This means that one update candidate cannot be built against another update candidate without rel-eng interaction. That interaction is to tag a build for an "override" collection which will make it available in the buildroot for future builds.

Action

Find tag requests

Tag requests are usually reported in the rel-eng trac instance at Fedorahosted in the component koji. You can use a trac query to list all unassigned Koji tickets. This query also includes requests, that are not a tag request, because there is no automated way to distinguish them. The results of the query are also available as an RSS feed, the link is in the footer of the page.

Perform the tagging

First assign the ticket to yourself to show, that you are handling the request. Then to tag a package for an override collection, use the tag-pkg method of Koji.

$ koji tag-pkg --help
Usage: koji tag-pkg [options]  <tag> <pkg> [<pkg>...] 
(Specify the --help global option for a list of other help options)

Options:
-h, --help  show this help message and exit
--force     force operation
--nowait    Do not wait on task

For example, if we were asked to make libwnck-2.18.2-2.f13 available in the F13 buildroots we would issue:

$ koji tag-pkg dist-f13-override libwnck-2.18.2-2.fc13

fedora-override or epel-override permissions are required to tag packages into the -override tags.
By convention override tags start with the base collection, dist-f13 in this case, and end in -override.

Revert the tagging

Once dependant builds are done, the -override should be cleared. Use koji untag-pkg to accomplish this. Usually the requester reports in the ticket, when the override is no longer needed. After untagging the package and verification close the ticket.

$ koji untag-pkg  --all dist-f13-override libwnck

Periodic cleanup

Periodically check the -override tag for stale tags via clean-overrides.py.

$ ./clean-overrides.py dist-f12-{override,updates}
Builds that exist both in dist-f12-override and dist-f12-updates:
libsepol-2.0.41-3.fc12
xulrunner-1.9.1.8-1.fc12
polkit-qt-0.95.1-3.fc12
drumstick-0.2.99-0.3.20100208svn.fc12
milia-0.3.0-2.fc12
libimobiledevice-0.9.7-2.fc12
libplist-1.2-1.fc12
pki-symkey-1.3.2-3.fc12
ppp-2.4.5-2.fc12

Builds that are older in dist-f12-override than in dist-f12-updates.
usbmuxd-1.0.0-3.fc12

Suggest: koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12

Now run the suggested command if it looks sane:

koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12
Note.png
Fedora branched
In Fedora-branched, the dist-f1X-updates tag is empty. You need to use dist-f1X instead. E.g. $ ./clean-overrides.py dist-f14{-override,}

To check several releases at once, use a bash for loop:

$ for release in {12..13}; do ./clean-overrides.py dist-f$release-{override,updates}; done

Verification

To verify that the tag was successful and the build will be available in the buildroot use the latest-pkg koji command:

$ koji latest-pkg dist-f13-build libwnck
Build                                     Tag                   Built by
----------------------------------------  --------------------  ----------------
libwnck-2.18.2-2.fc13                     dist-f13-override     rhughes

We should see the build nvr we tagged, and see that it is coming from the -override tag.

Consider Before Running

  • Once tagged, new repodata may take 20~ minutes to generate and the build to be available in buildroots.
  • Buildroot overrides usually means that something is soname bumping. Be sure this is a sane update to do in Fedora