This document is intended to describe our *-pre flight queue buildbots to sheriffs and Chromium OS developers.
The pre flight queue works in conjunction with the Commit Queue (paladin) builders. Its goal is to quickly integrate closely-related packages (Chrome) without breaking the Chromium OS tree.
There is currently only one flavor of PFQ: the Chrome PFQ. The Chrome PFQs vet various versions of the Chromium browser for use on Chromium OS. They ensure that we're using the newest build of Chromium possible while at the same time making sure we're not breaking Chromium OS developers by pulling in a version of the browser that doesn't function "correctly".
There are two groups of Chrome PFQs: those that test nightly Chrome releases, and those that test ToT Chrome. The PFQs for nightly Chrome releases vet the release, and then update the ebuild. In contrast, the PFQs for ToT Chrome source are "informational"-only. They test the ToT source, but do not publish new stable ebuilds.
These two groups of Chrome PFQs are described in more detail below.
PFQs for Nightly Chrome releases (examples: x86 chrome PFQ, arm_chrome_PFQ, amd64_chrome_PFQ) Sheriffs should watch this build.
These builders vet and bless versions of chrome for inclusion into the Chromium OS builds. The browser issues a new "release" (at least) every night. This is not actually a release-caliber build or anything, but simply a spec that gives a pinned revision of the browser source, and pinned revisions of all the third-party code upon which Chromium relies. Whenever a new Chrome release is published, the Chrome PFQ will attempt to vet this release and push a corresponding stable ebuild. For example, when Chromium releases 10.0.627.0, the Chome PFQ creates a chromeos-chrome-10.0.627.0_rc1 ebuild (using chromeos-chrome-9999.ebuild as a template), vets it, marks it as stable, and then pushes it into the chromiumos-overlay git repo. Ebuilds for these “latest releases” are distinguishable by this _rcX suffix.
In general, developers always use the latest _rc when building Chromium OS. Therefore, if the latest release fails to build continuously, sheriffs should be very careful at investigating why this is happening. If it is a Chromium bug, sheriffs should hand the issue off to the Chrome on ChromeOS gardener (listed in the chromium build console), who should do the following:
If the issue does not appear to be Chromium-related, then the Chromium OS tree should be closed until it is resolved.
There is one exception. It is possible that a Chromium OS developer makes a change to chromeos-chrome-9999.ebuild that is not backwards compatible. For example, adding a new build target that does not exist in yesterday’s browser source. This would cause the Chrome ToT PFQs to stay green while the Chrome PFQs begin to fail. This is OK; we will go green once Chromium cuts a new build.
PFQs for ToT Chrome source (examples: chromium.ChromiumOS (x86), chromium.ChromiumOS (tegra2))