Releases/Branched

From FedoraProject

< Releases(Difference between revisions)
Jump to: navigation, search
m (fix broken link)
(Questions and Answers: recommend mock over rpmbuild)
(20 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The '''Branched''' [[Releases|release]] is the part of the [[Fedora Release Life Cycle]] that spans from pre-Alpha to post-Beta.  It is forked from [[Releases/Rawhide|Rawhide]] (which continues independently) and post-Beta turns into a final general public release.
+
{{autolang|base=yes}}
  
The [[Branch Freeze Policy]] describes the process of building packages during this phase.  (This replaces the older Alpha, Beta, and Final freeze policies.)  Essentially there are non-rawhide repositories with the version number of the release-to-be (currently {{FedoraVersion|number|next}}).  New builds go to the "updates-testing" repository; after approval in [https://admin.fedoraproject.org/updates Bodhi], they are promoted directly to the stable "fedora" repository for that release.  (There is no "updates" repository until the final general availability release.)
+
= Branched =
  
The [[Feature Freeze Policy|Feature Freeze]] and [[Software String Freeze Policy|String Freeze]] are started near the beginning of the Branched phase.  The [[Alpha Milestone]] is intended to be feature-complete, and start a phase of intensive installer testing. The Beta release is intended to experience a high volume of public testing of all packages.
+
Branched is the name given to a version of Fedora that has "branched" off of Rawhide and will become the next stable Fedora release. It consists of a package repository named with the Fedora version it will become and contains builds of all Fedora packages updated by maintainers with the goal of stablizing before release and fixing any release features. Nightly live image builds are also available during the later portion of the [[Fedora Release Life Cycle]].
+
During the appropriate phases, Alpha and Beta releases can be found at: http://fedoraproject.org/get-prerelease
+
  
[[Upgrading from pre-release to final]] is also possible once the final release is available.
+
Branched is sometimes referred to by the Fedora release it will become. ie, "Fedora 19 Branched"
  
==Installation options==
+
== Goals ==
  
=== How to avoid disturbing an existing system ===
+
Branched has the following Goals:
  
There are a few methods to test the Branched release on a machine without disturbing an existing installation:
+
* To allow package maintainers to integrate their packages into Fedora for a stable release.  
* Test a Live version from USB or DVD drive.
+
* To allow advanced users access to the newer packages than stable releases typically provide.
* Use a virtual machine.  See [[Testing/qemu]].
+
* To identify and fix issues with packages before they reach a stable release of Fedora.
* Install to a separate partition.
+
  
=== Direct install, upgrade, or no-install testing with an Alpha, Beta, or nightly Live build ===
+
== Using Branched ==
  
Nightly builds of Live spins are now available.  All approved Live spins are posted, but "desktop" is the one that is used and distributed most widely.  The Live method is usually the fastest for fresh installs and is how most everyday users will install the final distribution.  Using these nightly builds is an ideal way to test the Branched release if you have no spare machine or partition available, or simply do not have the time to maintain a Branched installation. It's a very safe way to test, since it will make no changes to your installed system.  You can also later install the Branched release to your hard drive from the Live desktop if the Live image is working well for you.  Note that after the go-ahead for the previous final release but before a Branched release is created in the [[Releases/{{FedoraVersion||next}}/Schedule|release schedule]], these nightly composes will contain [[Releases/Rawhide|Rawhide]] content.
+
This section discusses Branched target users and how to test Branched with Live media, within a virtual installation or on a bare metal installation.
  
Alpha and Beta milestone releases are also available as Live images.
+
=== Audience ===
  
The basic steps are:
+
Branched is targeted at advanced users, testers and package maintainers.
  
* Download a daily Live image (.iso) from http://alt.fedoraproject.org/pub/alt/nightly-composes/ or if you would prefer the official Alpha or Beta milestone release, from http://fedoraproject.org/get-prerelease
+
As a branched consumer, you should:  
* Make a boot disk (see "How do I make a bootable disk from an ISO?" below) and boot from it.
+
* Start testing.
+
* If you want to permanently install or upgrade locally, log in and double click on the "Install to Hard Drive" icon on the desktop, then follow the on-screen instructions.
+
  
The maximum ISO size is now 1GB, which is larger than can fit on a CD.  It is expected that most users will have USB or DVD media available.  USB media in particular is advantageous compared to CDs, because it is cheap and highly reusable.
+
* Be willing to update often. Branched doesn't get as many updates as rawhide (and at times they are frozen), but it still gets a larger amount than a Stable release.  
  
Builds include only package versions from the "stable" repository, so they should in general be usable; please [[Bugs and feature requests|file a bug]] if you encounter any problems. If there is a bug in the generation toolchain, the images may not be built on a given night; in this case, the last built image will remain available.  
+
* Be willing and able to troubleshoot problems. From time to time there are problems with Branched packages, and you will need strong troubleshooting skills and the ability to gather information for bug reports. You need a good understanding of yum and how to downgrade packages, as well as boot time troubleshooting.
  
If you use a LiveUSB with data persistence, you can run "yum update" to get the latest RPMs ([https://bugzilla.redhat.com/show_bug.cgi?id=446935 except for the kernel]).  However, downloading a fresh daily ISOs is recommended instead of this method.
+
* Frequent reboots to test new kernel versions and confirm functionality of the boot process. If you can't reboot often, consider using a stable release instead.
  
=== Installing via Anaconda ===
+
* Be willing and able to report bugs as you find them and help maintainers gather information to fix them.
  
Anaconda is the Fedora installer.  It can be booted directly, rather than run from a Live desktop.  Installation options can also be more flexible.
+
If the above doesn't match you, you may wish to instead follow the [[Releases/Rawhide|Rawhide]] release (depending on the point in the [[Releases/{{FedoraVersion||next}}/Schedule|release cycle]]) or use regular stable Fedora releases.  
  
==== Upgrade from any previous release via Preupgrade and Anaconda ====
+
=== Live media ===
  
A faster Anaconda installation can be performed from an existing copy of Fedora with PreUpgrade.  See [[How to use PreUpgrade]] for instructions. During the process, check the box next to "Display unstable test releases" and select "Fedora {{FedoraVersionNumber|next}} (Branched)" from the list.
+
After the [[Releases/{{FedoraVersion||next}}|Branch event]], but before the Fedora stable release,  [http://alt.fedoraproject.org/pub/alt/nightly-composes/ nightly builds] will be composed from Branched. You may be able to use these automated Live images to boot and test Branched. These images are automatically composed and not tested by [[QA]]
  
==== Upgrading from a Branched test release ====
+
=== Virtual instances  ===
  
If a test release or "pre-release" (Alpha or Beta) is currently available, you can download it from: http://fedoraproject.org/get-prerelease
+
You may wish to install and run Branched in a virtual machine (VM) instance. This allows you to test when not running Linux, or avoid any impact to your day-to-day workflow.
  
Test releases are configured to update to the latest version of the Branched release which they are building on automatically.  To get the latest packages, you can run "yum update" or wait for desktop notification of updates.  If you continue to follow updates, you will eventually end up with the same packages and updates as are in the final general availability release.
+
See the section below on setting up a Branched install.
  
See [[upgrading from pre-release to final]] if you encounter any snafus.
+
=== Getting a Branched install ===
  
==== Direct install using a general release Anaconda ISO ====
+
The Branched tree is directly installable (barring problems).
  
You can use the version of Anaconda distributed with a final public release (the latest being Fedora {{FedoraVersion}}).  Using this method, you will be using an older but known-to-be-working installer to install the latest content in the Rawhide repository.
+
==== Install from Live media ====
  
;Option 1 - Use a copy you've already downloaded
+
If Live media are being composed from Branched (see above), you may be able to download the Live media, copy it to local media, boot and install Branched.  
If you already have a bootable CD, DVD, USB stick, or hard drive partition containing the *-DVD.iso or *-disc1.iso you can use that to install Rawhide.  However, if you need to download new boot media, these files are not recommended because they contain general release versions of Fedora RPMs, and you wish to install Branched RPMs.  (See [http://docs.fedoraproject.org/install-guide/f12/en-US/html/ch-new-users.html#sn-howto-download installation guide download page] for instructions if you want to download these files anyway.)  A general release ''Live'' image cannot be used to install Branched, only the general release version of Fedora which it contains.
+
  
;Option 2 - Download the minimal installer
+
This is the most fragile way to get a Branched install, as Live media is only produced at some points in the cycle, sometimes does not compose, and when it does, may not install correctly.  
If you need to make a bootable CD, DVD, USB stick, or hard drive partition, the best way is to download the minimal boot.iso installer, and load RPMs over the network.  This is the same as the *-netinst.iso (e.g. Fedora-12-i386-netinst.iso) which you may find elsewhere.  These files are not available by BitTorrent.
+
  
To get and use a boot.iso file:
+
==== Point installer to Branched ====
* Go to http://download.fedoraproject.org/ - you will be redirected to a nearby mirror.
+
* Go to releases/{{FedoraVersion}}/Fedora.
+
* Choose the directory for your architecture (i386, x86_64, or ppc - [http://docs.fedoraproject.org/install-guide/f{{FedoraVersion}}/en-US/html/sn-which-arch.html help available]), then find os/images/boot.iso and download it.
+
* Create a bootable CD, DVD, USB media, or hard drive partition following the instructions at [http://docs.fedoraproject.org/install-guide/f12/en-US/html/ch-new-users.html#sn-making-media] and using your newly downloaded boot.iso file.  You can use the livecd-iso-to-disk method described there even though boot.iso is not a Live image, and it should also work on hard drive partitions, not just USB media.
+
  
;Option 3 - Pure network install with no boot media
+
You can sometimes install Branched by using a stable install media and pointing it to the Rawhide repository for packages to install.
  
The Installation Guide documents how to [http://docs.fedoraproject.org/install-guide/f{{FedoraVersion}}/en-US/html/ap-medialess-install.html boot the installer directly from the network], in case you cannot or choose not to create local boot media.
+
# Download the latest stable or branched install media. (netinstall or DVD install)
 +
# Copy to local media (USB or DVD or CD)
 +
# Boot media and go to the 'Install Source' section and manually enter:<br />https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/<br />(or i386 for 32bit)
 +
# Finish the install as normal.  
  
;What to do after booting Option 1, 2 or 3
+
For this method to work, there should be no major changes in Branched that the installer is not ready for, such as packages it depends on being retired or other similar situations.
  
Follow the on-screen instructions from Anaconda, the graphical installer.  The installation is very straightforward. You should do a HTTP/FTP install.  To get Branched instead of a supported release, for the URL of your 'install tree', use "<mirrorroot>/development/{{FedoraVersion|number|next}}/<arch>/os/" where <mirrorroot> is the mirror site URL you got from [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ the mirror list] and <arch> is your architecture (i386, x86_64, or ppc).
+
==== Yum from Existing install ====
  
;Option 4 - With no network access at install time
+
You may use yum to upgrade from the most recent Stable or Branched release. You will need to have such an install in place and should likely update to the newest updates before starting.
  
If you have no network access during the install process, you will need to download the Branched (development/{{FedoraVersion|number|next}}) repository from a [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ development mirror] and use the hard drive installation method described in the [http://docs.fedoraproject.org/install-guide/ Installation Guide], or it might be easier to choose a different method to install Branched from another section of this page.
+
See [[Upgrading_Fedora_using_yum#To_rawhide|Upgrading Fedora using yum Branched info]]
  
==== Direct install using daily Branched Anaconda build ====
+
This method may fail if there are upgrade path issues (newer packages in Stable or Branched than Branched), or broken dependencies.
  
Using this method, you will be testing not only the contents of Branched, but also the Branched version of the installer which will become the installer for the next version of Fedora.
+
==== Latest milestone or test images ====
  
Follow the same steps as in "Using a general release Anaconda ISO" above, but get your boot.iso from "development/{{FedoraVersion|number|next}}/<arch>/os/images/" one of the mirrors listed at: http://mirrors.fedoraproject.org/publiclist/Fedora/development/
+
At Alpha, Beta and final, a set of install images (DVD and netinstall) and live images for desktops are produced. You can use these to install branched.  
  
=== Yum update from previous official release ===
+
Before each of the above milestones, TC and RC images are sometimes available. TC or Test Compose imags are done before milestones when there are known release blocking bugs that need addressing. RC images (Release Candidate) are produced when all known blocker bugs for a release are addressed. If no further blocker bugs are found in an RC image, that RC will become (with no further changes) the release.
  
This method is available but generally not recommended.  Anaconda can make changes that are outside what the packaging system can normally deal with.  You may also run into dependency problems which could take time to untangle.  You may also need to upgrade from the immediately previous release (e.g. install Fedora 11, 12, then Fedora 13 Branched, not jump directly from Fedora 11 to Fedora 13 Branched).  Be prepared to wipe your system and re-install from scratch if things do not go well.
+
TC images may or may not install correctly.  
  
Download the "fedora-release-{{FedoraVersion|number|next}}" RPM directly from a [http://mirrors.fedoraproject.org/publiclist/Fedora/development/ development mirror], under: <code>development/{{FedoraVersion|number|next}}/<arch>/os/Packages/</code>
+
RC images may or may not install correctly, but you can usually find the list of known blockers to see if they affect you.  
  
To finish using graphical applications:
+
Alpha and Beta images should install correctly in most cases. This is the preferred way to install if those milestones have been reached.
  
# Install the "fedora-release-{{FedoraVersion|number|next}}" package you downloaded.  
+
=== Communicating ===
# Modify your software sources using <code>gpk-repo</code>.  Leave '''only''' the ''Fedora {{FedoraVersion|number|next}}'' software source enabled.
+
# Next, update your system using <code>gpk-update-viewer</code> (System -> Administration -> Software Update on the Gnome menu.)
+
  
To finish using the command-line, for example:  
+
There are a number of ways to communicate with other Branched users:  
  
# <code>yum install fedora-release-13-0.6.noarch.rpm</code>
+
==== IRC ====
# <code>yum update</code>
+
  
== Reference info ==
+
Branched discussion is on topic and welcome in both the #fedora-devel and #fedora-qa IRC channels.
  
=== How do I make a bootable disk from an ISO? ===
+
==== Mailing Lists ====
  
* To write to USB media, see [[How to create and use Live USB]].
+
Branched discussion is on topic and welcome in both the {{fplist|test}} and {{fplist|devel}} lists.
* To burn a DVD, see the [http://docs.fedoraproject.org/readme-burning-isos/ burning ISOs readme].
+
  
=== Where is the Branched release mirrored? ===
+
==== Bugzilla ====
  
The current Branched release is found under "development/{{FedoraVersion|number|next}}" on the mirrors. You can find a local mirror from: http://mirrors.fedoraproject.org/publiclist/Fedora/{{FedoraVersion|number|next}}/
+
Branched bugs should be reported against the Fedora Product, and version that this branched will become and the affected component.  Please do follow [[BugsAndFeatureRequests|best practices]] when filing. Remember that IRC and mailing lists are useful to help narrow down if some behavior is a bug or where to report it, but are themselves not bug reporting channels. Always file bugs in [http://bugzilla.redhat.com Bugzilla].
 +
 
 +
Note that broken dependencies are mailed to maintainers for each daily Branched compose where a package has such broken dependencies. Therefore, it's usually not worth filing a bug for broken dependencies unless they don't appear in the daily report, or you have a fix or improvement to suggest.
 +
 
 +
== Producing Branched ==
 +
 
 +
Branched goes through several phases:
 +
 
 +
The Branched compose runs every day starting at 09:15UTC. All branched builds at that time that are stable are composed and sycned out. Note that during freezes there will be many days where 0 packages are added to the compose. Branched is under "development/VERSION" on the mirrors. You can find a local "{{FedoraVersionNumber|next}}" mirror [http://mirrors.fedoraproject.org/publiclist/Fedora/{{FedoraVersionNumber|next}}/ on the public mirror list]. Compose time varies depending on number of changes but is typically between 5 and 8 hours.
 +
 
 +
Right after branching off from rawhide, but before alpha change freeze, Branched is much like Rawhide. All packages built the previous day are composed and synced out. Bodhi is not used yet.
 +
 
 +
At alpha change freeze, Bodhi (the Fedora updates system) is enabled. All builds must now use it. Builds are pushed to updates-testing repository and after meeting critera for stable are added to the base package repository, which is still composed once a day. During the Alpha change freeze, only updates that fix accepted blocker bugs or freeze exceptions are allowed to go stable. There is also an empty updates repository, so that you can leave stable updates configured during the branch period and not have to change this after the release.
 +
 
 +
As soon as Alpha is set to "go", the Alpha change freeze is lifted and packages can once again go to the base repository when marked stable.
 +
 
 +
At the Beta change freeze, again only builds that are accepted blockers or freeze exceptions are allowed to go stable. After Beta is "go" stable builds are again pushed.
 +
 
 +
At the Final change freeze, things happen much as Alpha and Beta, however, after Final is signed off on, the branched compose is disabled completely, and packages set to go stable are pushed to a new 'updates' repoistory and become 0 day updates.
 +
 
 +
Composes are done in a rawhide chroot using the 'mash' tool called from a script maintained by Fedora Release engineering: http://git.fedorahosted.org/cgit/releng/tree/scripts/buildrawhide If the base set of packages in rawhide needed to compose rawhide are broken, the daily compose may fail.
 +
 
 +
A report for each Branched compose is sent to to the {{fplist|test}} and the {{fplist|devel}} lists. This report contains output from the 'repodiff' tool from the previous compose as well as a broken dependency report for packages with broken dependencies. Additionally, private email is sent to maintainers with packages containing broken dependencies.
 +
 
 +
Package maintainers should read and follow the [[Updates_Policy#Branched_release|Branched release updates policy]] for building any packages in Branched.
 +
 
 +
Branched packages are not 100% signed until the Alpha Change freeze milestone.
 +
 
 +
== Questions and Answers ==
 +
 
 +
'''Q:''' So Branched is very stable and we can all use it?
 +
 
 +
A: No. See audience above. There are things that break from time to time, but if you are able to downgrade or troubleshoot such issues aren't too severe, however most users should stick to Stable Fedora releases.
 +
 
 +
'''Q:''' I'm using a Stable Fedora release, but I want the newer package for foo thats only available in Branched. Can I just yum install it?
 +
 
 +
A: No. Mixing releases like this is a very bad idea. Your better options are:
 +
 
 +
* Obtain the src.rpm for the package you wish and try and "mock rebuild" it (which may or may not work depending on dependencies)
 +
* Ask the Fedora maintainer in a bug report to update the stable version if permitted by policy.
 +
 
 +
'''Q:''' How can I tell when the branched compose for the day has finished?
 +
 
 +
A: You can see the reports it sends to the {{fplist|test}} and the {{fplist|devel}} lists. You can also watch fedmsg for the messages that rawhide compose has finished.
 +
 
 +
== Hints and Tips ==
 +
 
 +
* Your package management system can be of great help in diagnosing and working around issues you find. Do read up and understand: 'yum downgrade' 'yum history' 'yum update --skip-broken' 'koji download-build'.
 +
 
 +
* You should update frequently (preferably every day). This allows you to more easily narrow down when a problem or issue appeared. If you apply a week of Branched updates at once you have many more packages to examine to narrow down issues.
 +
 
 +
* Reboot often (preferably whenever new kernels arrive). This allows you to test the boot up process and packages related to it, as well as newer kernels. Read and understand the Dracut troubleshooting steps.
 +
 
 +
* Follow the {{fplist|test}} and the {{fplist|devel}} lists for rawhide issues, try and at least skim them before doing your daily Branched updates. Look for '[rawhide]' subjects or reports of issues. Additionally if you find a problem and are not sure what to file bugs against you can open a discussion there.
 +
 
 +
* Branched kernels are made with a large amount of debugging enabled. You can often gain a good deal of performance by passing "slub_debug=-" to your kernel boot line in /etc/grub2.cfg. Additionally, you can run kernels in the [[RawhideKernelNodebug|Rawhide Kernel Nodebug]] repo that have all debugging disabled.
 +
 
 +
* If you are using a graphical desktop environment in your Branched install, you may wish to install several of them. This allows you to still login and troubleshoot when your primary desktop environment is not working for some reason.
 +
 
 +
* Have a rescue media handy of the current stable Fedora release for emergencies.
 +
 
 +
== History ==
 +
 
 +
Branched was created as part of the "No frozen Rawhide" proposals:
 +
 
 +
http://fedoraproject.org/wiki/No_Frozen_Rawhide_Proposal
 +
 
 +
http://fedoraproject.org/wiki/No_Frozen_Rawhide_Implementation

Revision as of 20:24, 18 May 2013

Contents

Branched

Branched is the name given to a version of Fedora that has "branched" off of Rawhide and will become the next stable Fedora release. It consists of a package repository named with the Fedora version it will become and contains builds of all Fedora packages updated by maintainers with the goal of stablizing before release and fixing any release features. Nightly live image builds are also available during the later portion of the Fedora Release Life Cycle.

Branched is sometimes referred to by the Fedora release it will become. ie, "Fedora 19 Branched"

Goals

Branched has the following Goals:

  • To allow package maintainers to integrate their packages into Fedora for a stable release.
  • To allow advanced users access to the newer packages than stable releases typically provide.
  • To identify and fix issues with packages before they reach a stable release of Fedora.

Using Branched

This section discusses Branched target users and how to test Branched with Live media, within a virtual installation or on a bare metal installation.

Audience

Branched is targeted at advanced users, testers and package maintainers.

As a branched consumer, you should:

  • Be willing to update often. Branched doesn't get as many updates as rawhide (and at times they are frozen), but it still gets a larger amount than a Stable release.
  • Be willing and able to troubleshoot problems. From time to time there are problems with Branched packages, and you will need strong troubleshooting skills and the ability to gather information for bug reports. You need a good understanding of yum and how to downgrade packages, as well as boot time troubleshooting.
  • Frequent reboots to test new kernel versions and confirm functionality of the boot process. If you can't reboot often, consider using a stable release instead.
  • Be willing and able to report bugs as you find them and help maintainers gather information to fix them.

If the above doesn't match you, you may wish to instead follow the Rawhide release (depending on the point in the release cycle) or use regular stable Fedora releases.

Live media

After the Branch event, but before the Fedora stable release, nightly builds will be composed from Branched. You may be able to use these automated Live images to boot and test Branched. These images are automatically composed and not tested by QA

Virtual instances

You may wish to install and run Branched in a virtual machine (VM) instance. This allows you to test when not running Linux, or avoid any impact to your day-to-day workflow.

See the section below on setting up a Branched install.

Getting a Branched install

The Branched tree is directly installable (barring problems).

Install from Live media

If Live media are being composed from Branched (see above), you may be able to download the Live media, copy it to local media, boot and install Branched.

This is the most fragile way to get a Branched install, as Live media is only produced at some points in the cycle, sometimes does not compose, and when it does, may not install correctly.

Point installer to Branched

You can sometimes install Branched by using a stable install media and pointing it to the Rawhide repository for packages to install.

  1. Download the latest stable or branched install media. (netinstall or DVD install)
  2. Copy to local media (USB or DVD or CD)
  3. Boot media and go to the 'Install Source' section and manually enter:
    https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/
    (or i386 for 32bit)
  4. Finish the install as normal.

For this method to work, there should be no major changes in Branched that the installer is not ready for, such as packages it depends on being retired or other similar situations.

Yum from Existing install

You may use yum to upgrade from the most recent Stable or Branched release. You will need to have such an install in place and should likely update to the newest updates before starting.

See Upgrading Fedora using yum Branched info

This method may fail if there are upgrade path issues (newer packages in Stable or Branched than Branched), or broken dependencies.

Latest milestone or test images

At Alpha, Beta and final, a set of install images (DVD and netinstall) and live images for desktops are produced. You can use these to install branched.

Before each of the above milestones, TC and RC images are sometimes available. TC or Test Compose imags are done before milestones when there are known release blocking bugs that need addressing. RC images (Release Candidate) are produced when all known blocker bugs for a release are addressed. If no further blocker bugs are found in an RC image, that RC will become (with no further changes) the release.

TC images may or may not install correctly.

RC images may or may not install correctly, but you can usually find the list of known blockers to see if they affect you.

Alpha and Beta images should install correctly in most cases. This is the preferred way to install if those milestones have been reached.

Communicating

There are a number of ways to communicate with other Branched users:

IRC

Branched discussion is on topic and welcome in both the #fedora-devel and #fedora-qa IRC channels.

Mailing Lists

Branched discussion is on topic and welcome in both the test and devel lists.

Bugzilla

Branched bugs should be reported against the Fedora Product, and version that this branched will become and the affected component. Please do follow best practices when filing. Remember that IRC and mailing lists are useful to help narrow down if some behavior is a bug or where to report it, but are themselves not bug reporting channels. Always file bugs in Bugzilla.

Note that broken dependencies are mailed to maintainers for each daily Branched compose where a package has such broken dependencies. Therefore, it's usually not worth filing a bug for broken dependencies unless they don't appear in the daily report, or you have a fix or improvement to suggest.

Producing Branched

Branched goes through several phases:

The Branched compose runs every day starting at 09:15UTC. All branched builds at that time that are stable are composed and sycned out. Note that during freezes there will be many days where 0 packages are added to the compose. Branched is under "development/VERSION" on the mirrors. You can find a local "21" mirror on the public mirror list. Compose time varies depending on number of changes but is typically between 5 and 8 hours.

Right after branching off from rawhide, but before alpha change freeze, Branched is much like Rawhide. All packages built the previous day are composed and synced out. Bodhi is not used yet.

At alpha change freeze, Bodhi (the Fedora updates system) is enabled. All builds must now use it. Builds are pushed to updates-testing repository and after meeting critera for stable are added to the base package repository, which is still composed once a day. During the Alpha change freeze, only updates that fix accepted blocker bugs or freeze exceptions are allowed to go stable. There is also an empty updates repository, so that you can leave stable updates configured during the branch period and not have to change this after the release.

As soon as Alpha is set to "go", the Alpha change freeze is lifted and packages can once again go to the base repository when marked stable.

At the Beta change freeze, again only builds that are accepted blockers or freeze exceptions are allowed to go stable. After Beta is "go" stable builds are again pushed.

At the Final change freeze, things happen much as Alpha and Beta, however, after Final is signed off on, the branched compose is disabled completely, and packages set to go stable are pushed to a new 'updates' repoistory and become 0 day updates.

Composes are done in a rawhide chroot using the 'mash' tool called from a script maintained by Fedora Release engineering: http://git.fedorahosted.org/cgit/releng/tree/scripts/buildrawhide If the base set of packages in rawhide needed to compose rawhide are broken, the daily compose may fail.

A report for each Branched compose is sent to to the test and the devel lists. This report contains output from the 'repodiff' tool from the previous compose as well as a broken dependency report for packages with broken dependencies. Additionally, private email is sent to maintainers with packages containing broken dependencies.

Package maintainers should read and follow the Branched release updates policy for building any packages in Branched.

Branched packages are not 100% signed until the Alpha Change freeze milestone.

Questions and Answers

Q: So Branched is very stable and we can all use it?

A: No. See audience above. There are things that break from time to time, but if you are able to downgrade or troubleshoot such issues aren't too severe, however most users should stick to Stable Fedora releases.

Q: I'm using a Stable Fedora release, but I want the newer package for foo thats only available in Branched. Can I just yum install it?

A: No. Mixing releases like this is a very bad idea. Your better options are:

  • Obtain the src.rpm for the package you wish and try and "mock rebuild" it (which may or may not work depending on dependencies)
  • Ask the Fedora maintainer in a bug report to update the stable version if permitted by policy.

Q: How can I tell when the branched compose for the day has finished?

A: You can see the reports it sends to the test and the devel lists. You can also watch fedmsg for the messages that rawhide compose has finished.

Hints and Tips

  • Your package management system can be of great help in diagnosing and working around issues you find. Do read up and understand: 'yum downgrade' 'yum history' 'yum update --skip-broken' 'koji download-build'.
  • You should update frequently (preferably every day). This allows you to more easily narrow down when a problem or issue appeared. If you apply a week of Branched updates at once you have many more packages to examine to narrow down issues.
  • Reboot often (preferably whenever new kernels arrive). This allows you to test the boot up process and packages related to it, as well as newer kernels. Read and understand the Dracut troubleshooting steps.
  • Follow the test and the devel lists for rawhide issues, try and at least skim them before doing your daily Branched updates. Look for '[rawhide]' subjects or reports of issues. Additionally if you find a problem and are not sure what to file bugs against you can open a discussion there.
  • Branched kernels are made with a large amount of debugging enabled. You can often gain a good deal of performance by passing "slub_debug=-" to your kernel boot line in /etc/grub2.cfg. Additionally, you can run kernels in the Rawhide Kernel Nodebug repo that have all debugging disabled.
  • If you are using a graphical desktop environment in your Branched install, you may wish to install several of them. This allows you to still login and troubleshoot when your primary desktop environment is not working for some reason.
  • Have a rescue media handy of the current stable Fedora release for emergencies.

History

Branched was created as part of the "No frozen Rawhide" proposals:

http://fedoraproject.org/wiki/No_Frozen_Rawhide_Proposal

http://fedoraproject.org/wiki/No_Frozen_Rawhide_Implementation