File:  [DragonFly] / doc / notes / release.txt
Revision 1.1: download - view: text, annotated - select for diffs
Mon Jan 2 16:41:53 2006 UTC (8 years, 3 months ago) by dillon
Branches: MAIN
CVS tags: HEAD
Add a text file describing the release engineering required to roll a
new release.

$DragonFly: doc/notes/release.txt,v 1.1 2006/01/02 16:41:53 dillon Exp $

			Rolling a DragonFly release

(I) Precursor work in HEAD, done anywhere from a few weeks to a few days
    before the branch.

    * Start running nrelease builds, typically as shown below.  Burn the
      ISO(s) and install a machine from scratch.  Extract or mount the
      sources on the machine and make sure it can build the release.

	cd /usr/src/nrelease; make installer_release

    * Bump the sub-version for HEAD and synchronize current work tags.

	cd /usr/src
	vi sys/sys/param.h	(bump DragonFly_version)
	vi sys/conf/subvers-DEVELOPMENT_x_y
	cvs commit ...
	make update_preview_tag

    * Add a target to /usr/src/Makefile that will update the SLIP tag for
      the new release.  'update_release{a}_{b}_slip_tag'.  Use prior 
      similar targets as your template.

    * Create a cvsup example file for the new release version in
      /usr/src/share/examples/cvsup/

    * Do any additional work in HEAD leading up to the branch point.

(II) Branch

    * Execute the cvs operation to branch the tree.

	cvs rtag -a -b -R DragonFly_RELEASE_a_b src

(III) Adjust HEAD's version.

    * Edit and commit appropriate files

	cd /usr/src
	vi sys/sys/param.h
	vi sys/conf/subvers-DEVELOPMENT_x_y
	vi sys/conf/newvers.sh		(adjust default version for HEAD)
	vi gnu/usr.bin/groff/tmac/mdoc.local (adjust version for man pages)
	cvs commit ...
	make update_preview_tag

(IV) Adjust the new branch.

     * Edit and commit appropriate files on the new RELEASE branch.

	[ON DEDICATED TEST MACHINE]
	Create ~/.cvsrc in root containing:

	cvs -q
	diff -u
	update -Pd
	checkout -P

	[ON DEDICATED TEST MACHINE]

	cd /usr
	rm -rf /usr/src (or whatever... clean it out).
	cvs -d .... checkout -P -rDragonFly_RELEASE_a_b src
	cd /usr/src
	vi sys/sys/param.h
	vi sys/conf/subvers-RELEASE_a_b
	vi sys/conf/newvers.sh		(no changes are needed)
	vi gnu/usr.bin/groff/tmac/mdoc.local (adjust version for man pages)
	cvs commit ...

(V) Set the initial slip tag on the release branch.

	cd /usr/src
	make update_release_1_4_slip_tag

(VI) Build the ISO on the release branch.  Follow any directions the make
     gives to obtain required pieces to generate the ISO:

	[ON TEST MACHINE]
	[NEW RELEASE CHECKED OUT]
	cd /usr/src/nrelease
	make installer_release

    Then burn and test the ISO.  Repeat as necessary through release 
    engineering.

(VII) RELEASE ENGINEERING

    * All work goes to the release branch
    * Update the slip tag using the slip tag update target when all finished.
    * Generate ISOs for wide-spread testing, make them available, etc.
    * Make sure the release can be built on a machine freshlyl installed from
      the ISO.
    * The sub-version is not usually updated during this testing
    * Bump the sub-version to 1 for the release.