Новые релизы FreeBSD выпускаются из ветки -STABLE с интервалом примерно в четыре месяца. Процесс выпуска релизов FreeBSD начинается за 45 дней до предполагаемой даты релиза с того, что ответственный за релиз посылает сообщение по электронной почте в адрес списков рассылки для разработчиков, чтобы напомнить последним о наличии всего лишь 15 дней на внесение новых изменений до момента заморозки кода. В этот период многие разработчики выполняют действия, известные как ''MFC-переносы''. MFC означает ''Merge From CURRENT'' (перенос из CURRENT) и описывает процесс переноса протестированных изменений из нашего дерева разработки -CURRENT в наше дерево -STABLE.
За тридцать дней до предполагаемого релиза хранилище исходных текстов переводится
в режим ''стабилизации кода''. В этот период все изменения в дереве -STABLE должны
подтверждаться Группа Выпуска Релизов FreeBSD <re@FreeBSD.org>
. В первый 15-дневный
период разрешены следующие типы изменений:
Исправления ошибок.
Обновление документации.
Исправления любого характера, касающиеся безопасности.
Незначительные исправления в драйверах устройств, такие, как, например, добавление новых ID устройств.
Любые другие изменения, которые одобряет группа подготовки релиза, с учётом потенциального риска.
После первых 15 дней стабилизации кода выпускается предварительный релиз, предназначенный для широкого тестирования, а код переводится в состояние ''заморозки'', когда становится гораздо труднее доказывать необходимость внесения новых изменений в систему, если они не касаются исправления серьёзных ошибок или информационной безопасности. Во время заморозки кода каждую неделю выпускается не менее одной предварительной версии релиза, до тех пор, пока не будет готов окончательный вариант релиза. В дни, предшествующие выпуску окончательного релиза, группа его подготовки работает в постоянном контакте со службой безопасности и людьми, поддерживающими документацию и порты, чтобы обеспечить доступность всех компонентов, необходимых для успешного выпуска релиза.
После того, как для широкого тестирования было выпущено несколько предварительных релизов и все основные проблемы были решены, может начаться процесс ''шлифовки'' окончательного релиза.
Как сказано во вводной части, ветка RELENG_X_Y является сравнительно новым добавлением в нашей методологии подготовки релизов. Первым шагом в создании этой ветки является проверка того, что вы работаете с самой последней версией исходных текстов RELENG_X, из которой вы хотите создать новую ветку.
/usr/src# cvs update -rRELENG_4 -P -d
Следующим шагом является создание тэга точки ответвления, чтобы диффы облегчили работу с началом ветки в CVS:
/usr/src# cvs rtag -rRELENG_4 RELENG_4_8_BP src
После этого создаётся тэг новой ветки по команде:
/usr/src# cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src
Замечание: Использование тэгов RELENG_* разрешено только менеджерам CVS и участникам группы по выпуску релизов.
Перед тем, как окончательный релиз будет помечен, построен и выпущен, необходимо модифицировать следующие файлы, отразив в них корректную версию FreeBSD:
doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.xml
doc/en_US.ISO8859-1/books/porters-handbook/book.xml
doc/share/xml/freebsd.ent
src/Makefile.inc1
src/UPDATING
src/gnu/usr.bin/groff/tmac/mdoc.local
src/release/Makefile
src/release/doc/en_US.ISO8859-1/share/xml/release.dsl
src/release/doc/share/examples/Makefile.relnotesng
src/release/doc/share/xml/release.ent
src/share/examples/cvsup/standard-supfile
src/sys/conf/newvers.sh
src/sys/sys/param.h
src/usr.sbin/pkg_install/add/main.c
www/en/docs/man.xml
www/en/cgi/ports.cgi
ports/Tools/scripts/release/config
Новый релиз должен быть также отражён в файлах замечаний к релизу и информации о замеченных ошибках (в ветке релиза), а файлы соответствующим образом обрезаны (в ветке stable/current):
src/release/doc/en_US.ISO8859-1/relnotes/common/new.xml
src/release/doc/en_US.ISO8859-1/errata/article.xml
Утилита sysinstall должна быть обновлена и указывать количество доступных портов и объём дискового пространства, требуемого для Коллекции Портов[4]. На данный момент эта информация хранится в файле src/usr.sbin/sysinstall/dist.c.
После построения релиза для оповещения мирового сообщества о выпуске релиза необходимо обновить некоторые файлы.
doc/share/images/articles/releng/branches-relengX.pic
www/share/xml/advisories.xml
www/share/xml/includes.release.xml
www/share/xml/includes.release.xsl
www/en/releases/*
www/en/releng/index.xml
www/en/news/news.xml
www/en/search/web.atoz
src/share/misc/bsd-family-tree
Когда новая старшая релиз ветка, такая как RELENG_6 ответвляется из HEAD, некоторые дополнительные файлы должны быть обновлены перед тем, как релизы будут созданы из этой новой ветки.
src/share/examples/cvsup/stable-supfile - когда применимо, должен быть обновлен, чтобы указывать на новую -STABLE ветку.
При готовности окончательного релиза следующая команда создаст тэг RELENG_4_8_0_RELEASE.
/usr/src# cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src
Менеджеры документации и портов отвечают за внесение тэга в соответствующие ветки с тэгом RELEASE_4_8_0.
Иногда в последний момент, уже после создания последних тэгов может потребоваться внесение исправлений. На практике это не является проблемой, так как CVS позволяет выполнять манипуляции с тэгами по команде cvs tag -d tagname filename. Очень важно, чтобы все последние изменения были помечены соответствующим тэгом, как часть релиза. Релизы FreeBSD должны быть всегда повторяемыми. Локальные изменения в параметры окружения выпускающего релиз недопустимы.
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.