Branch Freeze Policy

From FedoraProject

Revision as of 23:01, 23 March 2010 by Beland (Talk | contribs)

Jump to: navigation, search
Ignoring the Freeze Process
Ignoring the branch freeze process and introducing new unstable changes to packages anyway can result in your package changes being reverted or reduce the chances of receiving positive karma



At the Branch Freeze event, all packages are branched from devel/ 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 devel/ 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.

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 updates-testing 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 reach net +3 karma.

Critical Path Packages

Packages which are in the Critical Path will require net positive karma from either the Release Engineering or QA teams, as well as at least one other net positive karma before the package can be pushed to stable.

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.

  1. Build and test your package before submitting anything.
    Build and test first!
    Do not omit this step.
  2. 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 updates-testing, your build will be published at the next updates push and made available in updates-testing 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 Release Engineering or QA 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.