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

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
1.9       snj        39:    - Add mention of the latest CHANGES-&lt;version&gt; file in the "Release
1.1       wiki       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.9       snj        49:    is generated from <code>htdocs/releases/formal-&lt;BLAH&gt;/changes&lt;VERSION&gt;.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.9       snj        55:    Basically, in htdocs/releases/formal-&lt;blah&gt;, copy the previous
                     56:    release's XML files, adjust Makefile as necessary, and start the dull
                     57:    process of adding content.  Beware that this is a soul-sucking task,
                     58:    and you MUST RESIST THE TEMPTATION TO MENTION EVERY LITTLE CHANGE.  Try
                     59:    to keep it to a list of things that people will be excited about and
                     60:    will sell NetBSD.  Release notes != changelog.
1.1       wiki       61: 
1.9       snj        62:    Don't forget to edit <code>htdocs/layout.xml</code> and add an entry for
                     63:    the new page.
1.1       wiki       64: 
1.2       wiki       65: 2. Update version numbers in <code>gnu/usr.bin/groff/tmac/mdoc.local</code> and
1.1       wiki       66:    sys/sys/param.h.  Add new CHANGES file to doc/README.files, updating
1.2       wiki       67:    release numbers while there.  Make sure <code>doc/LAST_MINUTE</code> is zeroed out
1.1       wiki       68:    and adjust version number.
                     69: 
1.9       snj        70: 3. Note changes from steps 1 and 2 in doc/CHANGES-&lt;whatever&gt;
1.1       wiki       71: 
1.2       wiki       72: 4. <code>cvs -f rtag -a -rnetbsd-5 netbsd-5-0-RELEASE src xsrc</code>
1.1       wiki       73: 
                     74:    If something needs to be retagged after the fact:
1.2       wiki       75: 
1.9       snj        76:    - Change &lt;file&gt; on the netbsd-5 branch.
                     77:    - <code>cvs tag -d netbsd-5-0-RELEASE &lt;file&gt;</code>
                     78:    - <code>cvs tag -rnetbsd-5 netbsd-5-0-RELEASE &lt;file&gt;</code>
1.2       wiki       79: 
                     80: 5. Add tag (netbsd-5-0-RELEASE) to <code>~builds/etc/archlist</code> on build.netbsd.org
                     81:    Add tag to <code>AB_STICKY_TAG_LIST</code> in <code>~builds/etc/autobuild.conf</code>.  Note that
                     82:    these files are revision controlled (<code>localsrc/releng/autobuild/etc</code>), so
1.1       wiki       83:    the proper order is to commit your changes in localsrc and then cvs up
                     84:    (it pulls from anoncvs@nbcvs) on build.netbsd.org.
                     85: 
1.2       wiki       86: 6. Add tag to <code>~builds/etc/build_order</code> like: <code>netbsd-5-0-RELEASE:N:N</code>
1.1       wiki       87:    This means the tag will only be built once, and it won't be uploaded
                     88:    after it finishes building.  Put it at the top.  You'll have to kill
1.7       riz        89:    <code>run_builds.sh</code> and restart the builds to get this to
                     90:    take effect, or you could insert it *after* the top line and it will be
                     91:    the next build (which doesn't require killing <code>run_builds.sh</code>.
1.1       wiki       92: 
                     93: 7. Spend the next few hours worrying about some unforeseen or sporadic problem
                     94:    causing one or more ports to fail.  Cross your fingers and hope that you're
                     95:    spared the hassle.  If you're not so lucky, dig around and manually rebuild
                     96:    a port on one of b[678], copying the build.sh line from logs, mainly to
                     97:    preserve the -B flag's argument.  Copy the results back to build.netbsd.org
                     98:    and proceed.
                     99: 
                    100: 8. Create ISOs (macppc, mac68k, source).  See below for instructions.
1.9       snj       101:    Rename ISOs to blahcd-&lt;release&gt;.iso
1.2       wiki      102:    Create hashes for ISOs (<code>cksum -a 512 *iso > SHA512</code>)
1.1       wiki      103: 
1.6       snj       104: 9. rsync to nbftp.  It goes to a staging dir in /pub/NetBSD/misc/releng first.
1.1       wiki      105: 
1.9       snj       106:         rsync -avu --progress --port 874 --password-file /home/builds/.rsync &lt;path-to-top-level-release-dir&gt; builds@ftp.netbsd.org::builds/
1.6       snj       107: This will upload the files to <code>ftp.NetBSD.org:/pub/NetBSD/misc/releng/</code>.
1.9       snj       108:    After that, get admins to create <code>/pub/NetBSD/NetBSD-&lt;release&gt;</code> and
                    109:    <code>/pub/NetBSD/iso/&lt;release&gt;</code> directories for you, owned by builds:builds.
1.3       wiki      110:    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      111:    to the main release directory.
                    112: 
1.2       wiki      113: 10. create torrents
                    114: 
1.8       wiki      115:     In the images directory:
1.3       wiki      116: 
                    117:         for i in NetBSD-* ; do
1.2       wiki      118:         maketorrent-console http://tracker.netbsd.org:6969/announce $i
                    119:         done
1.8       wiki      120: 
                    121: 11.    Get admins@ to add the torrent directory to <code>~torrent/runbt</code>.  
                    122:     *NOTE FROM SPZ, 2010-11-15:*
                    123:     >it turns out that bittorrent can't do more than one 'allowed_dir'.
                    124:     >
                    125:     >Thus, we now have /ftp/pub/NetBSD/torrent. Please keep the permissions
                    126:     >so that mirrors can't read the contents, since the contents are duplicate.
                    127:     >
                    128:     >(This should go into releng docs probably:)
                    129:     >If you add a file that should be picked up by torrents, put it and its
                    130:     >torrent control file where it belongs and hard-link the two into the
                    131:     >appropriate directory in the torrent tree.
                    132:     >Please note that the torrent tree cannot be used to publish the torrent
                    133:     >control file via http or ftp.
1.1       wiki      134: 
                    135: 12. Get security-officer@ to sign binaries and ISOs.
1.2       wiki      136:     <code>localsrc/security/programs/rel-hashes.sh</code>
1.1       wiki      137: 
                    138: 13. Give mirror-maintainers a heads up that new release binaries are available.
                    139:     This should be done 3ish days prior to the expected announce date.
                    140: 
                    141: 14. Have admins update sup.  Wonder if anyone still uses sup anyway.
                    142: 
                    143: 15. Update the website.
                    144: 
1.10    ! snj       145:   - Commit release's HTML file in htdocs/releases/formal-&lt;blah&gt;
        !           146:   - Add htdocs/support/security/patches-&lt;blah&gt;
        !           147:   - Update htdocs/releases/formal-&lt;blah&gt;/index.xml
        !           148:   - Update htdocs/mirrors/torrents/
        !           149:   - Update htdocs/share/xml/misc.ent (release.*)
        !           150:   - Update htdocs/index.html
        !           151:   - Update htdocs/releases/formal.xml
        !           152:   - Update htdocs/changes/index.xml
        !           153:   - Top-level regen of everything
1.9       snj       154: 
1.2       wiki      155: 16. Update <code>/pub/NetBSD/README</code> to mention the new release
1.1       wiki      156: 
                    157: 17. Announce the release on netbsd-announce@ and the blog.
                    158: 
1.2       wiki      159: ============ 
                    160: 
1.1       wiki      161: BUILDING ISOs
                    162: 
                    163: The following stuff should be done on build.netbsd.org as the 'builds'
                    164: user.
                    165: 
                    166: Images that need to be built manually: macppc, mac68k, source
                    167: 
                    168: Needs to be cdrtools 2.01 (but not newer!).  The binary in ~/bin/mkisofs
                    169: will work.
                    170: 
1.2       wiki      171:         cd ~/scratch
                    172:         tar xzvpf /home/builds/ab/HEAD/ab-src.tgz (note -- "HEAD" is always used)
1.1       wiki      173: 
                    174: Building in src/distrib/cdrom:
                    175: 
                    176: Copy and fiddle with some ridiculous .mk and .conf files, adjusting for the
                    177: relevant release.
                    178: 
                    179: Do the following three times, changing TARGET_CD_IMAGE to macppccd, mac68kcd,
                    180: and sourcecd.
                    181: 
1.2       wiki      182:         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      183: 
                    184: post-release:
                    185: 
1.2       wiki      186: * change name to 5.0_STABLE
                    187: * 5-0 branch becomes 5.0.0_PATCH
1.1       wiki      188: 
                    189: create netbsd-5-0 branch:
1.2       wiki      190: 
                    191:         cvs rtag -a -b -rnetbsd-5 netbsd-5-0 src xsrc

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