Annotation of wikisrc/releng/release-prep.mdwn, revision 1.8

1.1       wiki        1: This file contains various information about doing releng-y stuff.
                      2: 
                      3: ==========
                      4: 
                      5: Creating a branch:
                      6: 
1.2       wiki        7:         cvs rtag -a netbsd-5-base xsrc src
                      8:         cvs rtag -a -b -rnetbsd-5-base netbsd-5 src xsrc
1.1       wiki        9: 
1.2       wiki       10: On the newly-created branch:
                     11: 
                     12: * Add doc/CHANGES-5.0
                     13: * Adjust doc/README.files and doc/LAST_MINUTE 
                     14: * Adjust gnu/usr.bin/groff/tmac/mdoc.local and sys/sys/param.h
                     15: 
                     16: On the trunk:
                     17: 
                     18: * Update doc/BRANCHES
                     19: * Move doc/CHANGES to CHANGES.prev
                     20: * Update mdoc.local and param.h for .99.1.
1.1       wiki       21: 
                     22: ==========
                     23: 
                     24: Cutting release candidates and releases:
                     25: 
                     26: 1. Make sure release notes are updated in distrib/notes
                     27: 
                     28:    A good starting point is to generate notes for a sample port
1.2       wiki       29:    (<code>cd distrib/notes/amd64; make USETOOLS=no</code>), read the HTML file, and look
1.1       wiki       30:    for things that need updating.
                     31: 
                     32:    Stuff you'll definitely need to do:
                     33:    - Brace yourself.  The sheer amount of useless information from days
                     34:      of yore will blow you away.  You'll even start to think "you know, it's
                     35:      possible someone actually _does_ want to read about splitting
                     36:      distribution sets so they'll fit on floppies."
                     37:    - Update Dd (should be the day the release is tagged)
                     38:    - Update version numbers
                     39:    - Add mention of the latest CHANGES-<version> file in the "Release
                     40:      Contents" section
                     41:    - List changes present in this release
                     42:    - Adjust known issues section as necessary
                     43:    - Adjust compatibility issues section as necessary
                     44:    - Check the {core,portmasters,releng,developers} lists (while grumbling 
                     45:      bout how you really ought to just remove this ridiculous self-indulgent
                     46:      section from the notes entirely).
                     47: 
                     48:    Note: the "changes" part of this should be taken from an mdoc file that
1.2       wiki       49:    is generated from <code>htdocs/releases/formal-<BLAH>/changes<VERSION>.xml</code>.
1.1       wiki       50:    Look for ".Ss Changes Between the NetBSD" in distrib/notes/common/main
                     51:    and paste away!  You may have to make a few markup changes to the contents
                     52:    of the mdoc file, because the XML -> mdoc converter sucks.  Always check to
                     53:    make sure things are formatted as intended.
                     54: 
1.2       wiki       55:    Basically, in htdocs/releases/formal-\<blah>, copy the previous release's
1.1       wiki       56:    XML files, adjust Makefile as necessary, and start the dull process of
                     57:    adding content.  Beware that this is a soul-sucking task, and you MUST
                     58:    RESIST THE TEMPTATION TO MENTION EVERY LITTLE CHANGE.  Try to keep it
                     59:    to a list of things that people will be excited about and will sell
                     60:    NetBSD.  Release notes != changelog.
                     61: 
1.2       wiki       62:    Don't forget to edit <code>htdocs/layout.xml</code> and add an entry for the new page.
1.1       wiki       63: 
1.2       wiki       64: 2. Update version numbers in <code>gnu/usr.bin/groff/tmac/mdoc.local</code> and
1.1       wiki       65:    sys/sys/param.h.  Add new CHANGES file to doc/README.files, updating
1.2       wiki       66:    release numbers while there.  Make sure <code>doc/LAST_MINUTE</code> is zeroed out
1.1       wiki       67:    and adjust version number.
                     68: 
1.2       wiki       69: 3. Note changes from step 2 in doc/CHANGES-\<whatever>
1.1       wiki       70: 
1.2       wiki       71: 4. <code>cvs -f rtag -a -rnetbsd-5 netbsd-5-0-RELEASE src xsrc</code>
1.1       wiki       72: 
                     73:    If something needs to be retagged after the fact:
1.2       wiki       74: 
                     75:    - Change \<file> on the netbsd-5 branch.
                     76:    - <code>cvs tag -d netbsd-5-0-RELEASE \<file></code>
                     77:    - <code>cvs tag -rnetbsd-5 netbsd-5-0-RELEASE \<file></code>
                     78: 
                     79: 5. Add tag (netbsd-5-0-RELEASE) to <code>~builds/etc/archlist</code> on build.netbsd.org
                     80:    Add tag to <code>AB_STICKY_TAG_LIST</code> in <code>~builds/etc/autobuild.conf</code>.  Note that
                     81:    these files are revision controlled (<code>localsrc/releng/autobuild/etc</code>), so
1.1       wiki       82:    the proper order is to commit your changes in localsrc and then cvs up
                     83:    (it pulls from anoncvs@nbcvs) on build.netbsd.org.
                     84: 
1.2       wiki       85: 6. Add tag to <code>~builds/etc/build_order</code> like: <code>netbsd-5-0-RELEASE:N:N</code>
1.1       wiki       86:    This means the tag will only be built once, and it won't be uploaded
                     87:    after it finishes building.  Put it at the top.  You'll have to kill
1.7       riz        88:    <code>run_builds.sh</code> and restart the builds to get this to
                     89:    take effect, or you could insert it *after* the top line and it will be
                     90:    the next build (which doesn't require killing <code>run_builds.sh</code>.
1.1       wiki       91: 
                     92: 7. Spend the next few hours worrying about some unforeseen or sporadic problem
                     93:    causing one or more ports to fail.  Cross your fingers and hope that you're
                     94:    spared the hassle.  If you're not so lucky, dig around and manually rebuild
                     95:    a port on one of b[678], copying the build.sh line from logs, mainly to
                     96:    preserve the -B flag's argument.  Copy the results back to build.netbsd.org
                     97:    and proceed.
                     98: 
                     99: 8. Create ISOs (macppc, mac68k, source).  See below for instructions.
1.2       wiki      100:    Rename ISOs to blahcd-\<release>.iso
                    101:    Create hashes for ISOs (<code>cksum -a 512 *iso > SHA512</code>)
1.1       wiki      102: 
1.6       snj       103: 9. rsync to nbftp.  It goes to a staging dir in /pub/NetBSD/misc/releng first.
1.1       wiki      104: 
1.6       snj       105:         rsync -avu --progress --port 874 --password-file /home/builds/.rsync \<path-to-top-level-release-dir> builds@ftp.netbsd.org::builds/
                    106: This will upload the files to <code>ftp.NetBSD.org:/pub/NetBSD/misc/releng/</code>.
1.2       wiki      107:    After that, get admins to create <code>/pub/NetBSD/NetBSD-\<release></code> and
                    108:    <code>/pub/NetBSD/iso/<release></code> directories for you, owned by builds:builds.
1.3       wiki      109:    Once these have been made, move images/* to the iso directory and symlink to "iso" and "images" in the main release directory, and move the rest
1.1       wiki      110:    to the main release directory.
                    111: 
1.2       wiki      112: 10. create torrents
                    113: 
1.8     ! wiki      114:     In the images directory:
1.3       wiki      115: 
                    116:         for i in NetBSD-* ; do
1.2       wiki      117:         maketorrent-console http://tracker.netbsd.org:6969/announce $i
                    118:         done
1.8     ! wiki      119: 
        !           120: 11.    Get admins@ to add the torrent directory to <code>~torrent/runbt</code>.  
        !           121:     *NOTE FROM SPZ, 2010-11-15:*
        !           122:     >it turns out that bittorrent can't do more than one 'allowed_dir'.
        !           123:     >
        !           124:     >Thus, we now have /ftp/pub/NetBSD/torrent. Please keep the permissions
        !           125:     >so that mirrors can't read the contents, since the contents are duplicate.
        !           126:     >
        !           127:     >(This should go into releng docs probably:)
        !           128:     >If you add a file that should be picked up by torrents, put it and its
        !           129:     >torrent control file where it belongs and hard-link the two into the
        !           130:     >appropriate directory in the torrent tree.
        !           131:     >Please note that the torrent tree cannot be used to publish the torrent
        !           132:     >control file via http or ftp.
1.1       wiki      133: 
                    134: 12. Get security-officer@ to sign binaries and ISOs.
1.2       wiki      135:     <code>localsrc/security/programs/rel-hashes.sh</code>
1.1       wiki      136: 
                    137: 13. Give mirror-maintainers a heads up that new release binaries are available.
                    138:     This should be done 3ish days prior to the expected announce date.
                    139: 
                    140: 14. Have admins update sup.  Wonder if anyone still uses sup anyway.
                    141: 
                    142: 15. Update the website.
                    143: 
1.2       wiki      144: 16. Update <code>/pub/NetBSD/README</code> to mention the new release
1.1       wiki      145: 
                    146: 17. Announce the release on netbsd-announce@ and the blog.
                    147: 
1.2       wiki      148: ============ 
                    149: 
1.1       wiki      150: BUILDING ISOs
                    151: 
                    152: The following stuff should be done on build.netbsd.org as the 'builds'
                    153: user.
                    154: 
                    155: Images that need to be built manually: macppc, mac68k, source
                    156: 
                    157: Needs to be cdrtools 2.01 (but not newer!).  The binary in ~/bin/mkisofs
                    158: will work.
                    159: 
1.2       wiki      160:         cd ~/scratch
                    161:         tar xzvpf /home/builds/ab/HEAD/ab-src.tgz (note -- "HEAD" is always used)
1.1       wiki      162: 
                    163: Building in src/distrib/cdrom:
                    164: 
                    165: Copy and fiddle with some ridiculous .mk and .conf files, adjusting for the
                    166: relevant release.
                    167: 
                    168: Do the following three times, changing TARGET_CD_IMAGE to macppccd, mac68kcd,
                    169: and sourcecd.
                    170: 
1.2       wiki      171:         make MKISOFS=/home/builds/bin/mkisofs USETOOLS=no RELEASE=5.0 TARGET_CD_IMAGE=macppccd DISTRIBDIR=/home/builds/ab/netbsd-5-0-RC4/release/netbsd-5-0-RC4/200904142015Z all
1.1       wiki      172: 
                    173: post-release:
                    174: 
1.2       wiki      175: * change name to 5.0_STABLE
                    176: * 5-0 branch becomes 5.0.0_PATCH
1.1       wiki      177: 
                    178: create netbsd-5-0 branch:
1.2       wiki      179: 
                    180:         cvs rtag -a -b -rnetbsd-5 netbsd-5-0 src xsrc

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb