From Fedora Project Wiki

(Initial page creation from email.)
 
(→‎Scripts: clean up this section, link to scripts in git.)
Line 57: Line 57:


== Scripts ==
== Scripts ==
Release Engineering will also be developing a script to query dist-f11
Release Engineering has created two scriptsOne is to initiate the builds, and the other is to query for items still needing to be built.
and report on packages that have yet to be rebuiltResults of these
queries will be delivered to various places, yet to be determined,
broken down by maintainer for easier discovery of work needed.
 
Here is a high level overview of how the rebuild script will operate
(subject to change as code is written):


Generate a list of all packages in dist-f11
=== Build Initiation ===
Loop through each package:
The rebuild [http://git.fedorahosted.org/git/?p=releng;a=blob;f=scripts/mass-rebuild.py;hb=HEAD script] works in the following way:
  Query if a build has already been attempted/completed since koji changes went live.
  If so, move to next package.
  If not, check out CVS
  Check for a noautobuild file
  If so, move to next package.
  If not, rpmdev-bumpspec
  cvs commit;tag
  make (background) build
  Move on to next package.


  Generate a list of all packages in dist-f11
  Loop through each package:
    Query if a build has already been attempted/completed since koji changes went live.
    If so, move to next package
    If not, check out CVS
    Check for a noautobuild file
    If so, move to next package
    If not, rpmdev-bumpspec
    cvs commit;tag
    make (background) build
    Move on to next package


Each step will have some error catching and logging so that I or others
Each step will have some error catching and logging so that people
can clean up the various failures for whatever reasons.  The builds will
can clean up the various failures for whatever reasons.  The builds will
be background builds, which will allow other builds done to take higher
be background builds, which will allow other builds done to take higher
Line 85: Line 81:
'latest' president when it finishes.  Asking rel-eng to kill the
'latest' president when it finishes.  Asking rel-eng to kill the
scripted build will typically be enough.
scripted build will typically be enough.
=== Status Query ===
Release Engineering has developed a [http://git.fedorahosted.org/git/?p=releng;a=blob;f=scripts/need-rebuild.py;hb=HEAD script] to query dist-f11
and report on packages that have yet to be rebuilt.  Results of these
queries will be delivered to various places, yet to be determined,
broken down by maintainer for easier discovery of work needed.


== Feedback ==
== Feedback ==


Questions/comments/concerns should be directed at mailto:fedora-devel-list@redhat.com, [[Talk:Fedora_11_Mass_Rebuild|the discussion page]], or #fedora-devel on freenode IRC.
Questions/comments/concerns should be directed at mailto:fedora-devel-list@redhat.com, [[Talk:Fedora_11_Mass_Rebuild|the discussion page]], or #fedora-devel on freenode IRC.

Revision as of 23:26, 17 February 2009

Goal

The goal is to rebuild every single Fedora package, regardless of content, before the Fedora 11 Feature Freeze (March 3rd). Specific features driving this rebuild and the changes required for them:

Driving Features

This requires a change in redhat-rpm-config for the i586 flags, as well as a koji config change to build for i586 rather than i386 by default. These two changes can happen at any time, and will likely happen this week to shake out any bugs. Dennis Gilmore and Jon Masters are responsible for getting these changes in place.


This requires gcc 4.4.0-0.19 in the buildroots before the mass rebuild begins. Jakub is responsible for getting this built this week.


This requires redhat-rpm-config changes for default hash, as well as koji code changes to handle the hash. Mike Bonnet and Miloslav Trmač are responsible for getting the koji changes done upstream. Miloslav Trmač and Jon Masters are responsible for getting the redhat-rpm-config changes in place, which depend on the koji changes being live first. A koji outage is scheduled for this weekend to deploy a new version of koji, which will include changes for this feature. An updated redhat-rpm-config will be deployed shortly thereafter to ensure hash changes are in effect.

Schedule

Given the changes required for the above features and the given schedules, Release Engineering will be ready to start scripted rebuilds on Monday the 23rd.

Opting Out

Release Engineering would like to give maintainers the ability to opt-out of the scripted rebuild in order to do the build on their own. Note that every single package needs to be rebuild, regardless of the contents.

In order to opt-out of the scripted rebuild, a maintainer will need to check a file into their package's devel/ branch, called "noautobuild". This file should contain a short rationality of why you wish to do the build yourself.

If my auto-build script encounters such a file, it will skip that module. However, given the tight deadlines (Feature freeze being the 3rd of March), a very short grace period will be given for completing the builds on your own. If your build has not been attempted by the 26th of Feb, my script will no longer honor the noautobuild request and will attempt to rebuild your package. If, however, a rebuild has been attempted, the script will bypass your module. This should prevent multiple attempts to build something that fails for one reason or another.


Scripts

Release Engineering has created two scripts. One is to initiate the builds, and the other is to query for items still needing to be built.

Build Initiation

The rebuild script works in the following way:

 Generate a list of all packages in dist-f11
 Loop through each package:
   Query if a build has already been attempted/completed since koji changes went live.
   If so, move to next package
   If not, check out CVS
   Check for a noautobuild file
   If so, move to next package
   If not, rpmdev-bumpspec
   cvs commit;tag
   make (background) build
   Move on to next package

Each step will have some error catching and logging so that people can clean up the various failures for whatever reasons. The builds will be background builds, which will allow other builds done to take higher priority when a builder has a free slot. However maintainers should take care when doing this so that the background build won't take 'latest' president when it finishes. Asking rel-eng to kill the scripted build will typically be enough.

Status Query

Release Engineering has developed a script to query dist-f11 and report on packages that have yet to be rebuilt. Results of these queries will be delivered to various places, yet to be determined, broken down by maintainer for easier discovery of work needed.

Feedback

Questions/comments/concerns should be directed at mailto:fedora-devel-list@redhat.com, the discussion page, or #fedora-devel on freenode IRC.