From owner-svn-doc-user@freebsd.org Tue Mar 28 21:48:50 2017 Return-Path: Delivered-To: svn-doc-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C2AFD23F52 for ; Tue, 28 Mar 2017 21:48:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E10AEEA7; Tue, 28 Mar 2017 21:48:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v2SLmnPx003981; Tue, 28 Mar 2017 21:48:49 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v2SLmm1R003978; Tue, 28 Mar 2017 21:48:48 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201703282148.v2SLmm1R003978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 28 Mar 2017 21:48:48 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-user@freebsd.org Subject: svn commit: r50097 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng X-SVN-Group: doc-user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for doc experimental trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2017 21:48:50 -0000 Author: gjb Date: Tue Mar 28 21:48:48 2017 New Revision: 50097 URL: https://svnweb.freebsd.org/changeset/doc/50097 Log: - Add a note about some considerations when writing the release schedule. - Replace a tag with . - Fix a path in a Subversion reference. - Describe the scheme and rationale behind configuration files. - Fix a BETA1 reference when branching head to stable/X. - Add high-level notes about how the release.sh wrapper works. Sponsored by: The FreeBSD Foundation Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml ============================================================================== --- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml Tue Mar 28 20:26:18 2017 (r50096) +++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml Tue Mar 28 21:48:48 2017 (r50097) @@ -308,6 +308,16 @@ &branch.stable; branches. + When writing the release cycle schedule, a number of things + need to be taken into consideration, in particular milestones + where the target date depends on predefined milestones upon + which there is a dependency. For example, the Ports Collection + release tag originates from the active quarterly branch at the + time of the last RC. This in part defines + which quarterly branch is used, when the release tag can happen, + and what revision of the ports tree is used for the final + RELEASE build. + After general agreement on the schedule, the &team.re; emails the schedule to the &os; Developers. @@ -322,7 +332,7 @@ approvals, the length of time for the blanket approval should be made clear. For example, a &os; developer may request blanket approvals from the start of the code slush until the - start of the RC builds. + start of the RC builds. Depending on the underlying set of code in question, and the overall impact the set of code has on &os; as a whole, such Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml ============================================================================== --- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml Tue Mar 28 20:26:18 2017 (r50096) +++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml Tue Mar 28 21:48:48 2017 (r50097) @@ -79,7 +79,7 @@ KERNEL="GENERIC64" The wrapper script is called thermite.sh, which is available in the &os; Subversion repository at - svn://svn.freebsd.org/user/gjb/thermite/, + svn://svn.freebsd.org/base/user/gjb/thermite/, in addition to configuration files used to build &branch.head; and &branch.stablex; development snapshots. @@ -87,13 +87,79 @@ KERNEL="GENERIC64" Using thermite.sh is covered in and . + + Each architecture and individual kernel have their own + configuration file used by release.sh. + Each branch has its own defaults-X.conf + configuration which contains entries common throughout each + architecture, where overrides or special variables are set + and/or overridden in the per-build files. + + The per-build configuration file naming scheme is in the + form of + ${revision}-${TARGET_ARCH}-${KERNCONF}-${type}.conf, + where the uppercase variables are equivalent to what + &man.make.1; uses in the build system, and lowercase variables + are set within the configuration files, mapping to the major + version of the respective branch. + + Each branch also has its own + builds-X.conf configuration, which is + used by thermite.sh. The + thermite.sh script iterates through each + ${revision}, ${TARGET_ARCH}, + ${KERNCONF}, and ${type} value, creating + a master list of what to build. However, a given + combination from the list will only be built if the + respective configuration file exists, which is where the + naming scheme above is relevant. Building &os; Development Snapshots -   + The official release build machines have a specific + filesystem layout, which using ZFS, + thermite.sh takes heavy advantage of with + clones and snapshots, ensuring a pristine build + environment. + + The build scripts reside in /releng/scripts-snapshot/scripts + or /releng/scripts-release/scripts + respectfully, to avoid collisions between an + RC build from a releng branch versus + a STABLE snapshot from the respective stable + branch. + + A separate dataset exists for the final build images, + /snap/ftp. This + directory contains both snapshots and releases directories. + They are only used if the EVERYTHINGISFINE + variable is defined in main.conf. + + + The EVERYTHINGISFINE variable name was + chosen to avoid colliding with a variable that might be + possibly set in the user environment, accidentally enabling + the behavior that depends on it being defined. + + + As thermite.sh iterates through the + master list of combinations and locates the per-build + configuration file, a ZFS dataset is created + under /releng, such as + /releng/12-amd64-GENERIC-snap. + The src/, ports/, and + doc/ trees are checked out to separate + ZFS datasets, such as /releng/12-src-snap, which are + then cloned and mounted into the respective build datasets. + This is done to avoid checking out a given tree more than + once. Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml ============================================================================== --- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Tue Mar 28 20:26:18 2017 (r50096) +++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Tue Mar 28 21:48:48 2017 (r50097) @@ -94,7 +94,7 @@ stable/11/sys/conf/newvers.sh Update the BRANCH value to - reflect PRERELEASE + reflect BETA1