Branch Freeze Policy

= Overview = At the Branch Freeze event, all packages are branched from  in source control. This is to allow the branched tree to stabilize and enter a bug-fix and polish phase of development. Builds from the branch that are deemed stable will be published into their own repo on the mirrors beside rawhide. Builds from  will continue to be published to the rawhide repo and is open for changes targeting the Fedora release after the one just branched.

The Branch Freeze lasts until the branched Fedora is released. At that time the normal package update process takes over.

For each release phase after branching - Alpha, Beta, and Final - there is a further, short freeze marked on the schedule as the Change Deadline. Between this point and the relevant release, builds can be submitted to  according to this policy, but most builds will not be moved from there to stable until the freeze is over. Note the freeze lifts once the decision to release is made, i.e. usually a few days before the scheduled release date. Only builds that fix blocker or NTH (Nice-To-Have) bugs can be moved to stable during these harder freezes. The QA:SOP_blocker_bug_process and the QA:SOP_nth_bug_process explain how blocker and NTH bugs are defined, nominated and evaluated: if you believe an update for a package of yours should be pushed to stable after a Change Deadline, please follow one of these processes.

The purpose of the Branch Freeze is not to strangle changes, the purpose is to provide a facility to test changes before they are pushed to stable and allow more meaningful decisions to be made about the risk/reward of the changes.

Getting a build marked Stable
In order for a build from the branch to be deemed stable, it will have to pass through bodhi. This process is much like the process of submitting updates to an already released Fedora. Builds that are submitted for testing for the branched Fedora will be published to an  repo where they can be reviewed and tested by peers. Feedback will be made via bodhi karma and/or bugzilla bugs. Once a maintainer feels their build has received enough feedback and testing, the build can be pushed to stable, where it will be published to the branched Fedora repo and will be considered "in the release". Packages are (automatically) pushed to stable once they fulfill update criteria.

Critical Path Packages
Packages which are in the Critical Path will require net positive karma from the Proven Testers team, as well as at least one other net positive karma before the package can be pushed to stable as stated in current policy for critical path packages.

New Packages
New packages can still be reviewed, added in source control and built. In order to get them into the stable branched repo, they will need to go through bodhi as outlined above.

= Getting a build past the Freeze = If you believe there is a good reason for you to break the branch freeze, you must request an update in bodhi. Build and test your package before submitting anything.  Submit the update request by following Package Update HOWTO. Please include the following details in the bodhi update information: 
 * A description of the change
 * Rationale for why the change is important enough to be allowed in after the freeze
 * Any bugs related to the change

Once you've submitted the update and requested a push to, your build will be published at the next updates push and made available in   for the branched Fedora.

Note that while we use the same tool (bodhi) for filing updates before and after the final release, the strategies for updates should be a bit different:
 * Before the release, it has a lot of advantages to file individual updates for each bug-fix, to make it easier to verify fixes and track regressions
 * After the release, we generally prefer to bundle multiple fixes into a single update to avoid flooding our users with a constant stream of updates, and also to allow some time to test the updates before they are released

Evaluating requests for exception
The consumers of updates-testing for the branched Fedora will evaluate your update and provide feedback.
 * Approval comes in the form of positive karma in bodhi.
 * 3 or more net positive karma is generally desired before pushing to stable.
 * If your package is in the Critical Path 1 net positive karma from Proven Testers plus an additional net positive karma from anybody is required
 * If there is negative feedback, work with the tester and a new build may be needed.

If your update is accepted and you request a push to stable, your package will be tagged for inclusion the branched release.

If your update is withdrawn, your package will not appear in the branched release.