FreeBSD Release Engineering process


  1. Post an announcement to as well as the general public announcing the code freeze time

  2. When that day comes, the release engineer commits to svnadmin/conf/approvers to implement the hard freeze

  3. The release engineer commits to bump the name of X.Y-STABLE to X.$(Y+1)-PRERELEASE, and post a note
  4. Prepare the Release Notes

  5. After a few days, post BETA1, ask the community for testing
  6. Once BETA1 is built, notify for freebsd-update build.

  7. Decide whether we want to go with BETA2 here.
  8. A date is set for RC1, at RC1, create release branch, bump FreeBSDversion on stable/ and releng/ trees (releng/ is now named as

    • '-RC1'), and unfreeze stable/ saying it's back to "code slush" and at this stage, release notes shall be finalized.
  9. A date is set for RC2 (typically, one week per RC), bump version, build, announce, etc. All installation related bugs must be shaken
    • out at this stage. For each RC, notify so@ for new freebsd-update build.
  10. Final release: bump version, do final test build, tag, checkout from tag, do the real final build.

File to update

Before the final release can be tagged, built, and released, the following files need to be modified to reflect the correct version of FreeBSD:

The release notes and errata files also need to be adjusted for the new release (on the release branch) and truncated appropriately (on the stable/current branch):

Sysinstall should be updated to note the number of available ports and the amount of disk space required for the Ports Collection. This information is currently kept in src/usr.sbin/sysinstall/dist.c.

After the release has been built, a number of files should be updated to announce the release to the world. These files are relative to head/ within the doc/ subversion tree.

Additionally, update the “BSD Family Tree” file:


ReleaseEngineering/tasks (last edited 2014-11-23T02:59:13+0000 by CraigRodrigues)