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

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:    - Check to make sure that the IP addresses of ftp.NetBSD.org are current
                     48: 
                     49:    Note: the "changes" part of this should be taken from an mdoc file that
1.2       wiki       50:    is generated from <code>htdocs/releases/formal-<BLAH>/changes<VERSION>.xml</code>.
1.1       wiki       51:    Look for ".Ss Changes Between the NetBSD" in distrib/notes/common/main
                     52:    and paste away!  You may have to make a few markup changes to the contents
                     53:    of the mdoc file, because the XML -> mdoc converter sucks.  Always check to
                     54:    make sure things are formatted as intended.
                     55: 
1.2       wiki       56:    Basically, in htdocs/releases/formal-\<blah>, copy the previous release's
1.1       wiki       57:    XML files, adjust Makefile as necessary, and start the dull process of
                     58:    adding content.  Beware that this is a soul-sucking task, and you MUST
                     59:    RESIST THE TEMPTATION TO MENTION EVERY LITTLE CHANGE.  Try to keep it
                     60:    to a list of things that people will be excited about and will sell
                     61:    NetBSD.  Release notes != changelog.
                     62: 
1.2       wiki       63:    Don't forget to edit <code>htdocs/layout.xml</code> and add an entry for 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.2       wiki       70: 3. Note changes from step 2 in doc/CHANGES-\<whatever>
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: 
                     76:    - Change \<file> on the netbsd-5 branch.
                     77:    - <code>cvs tag -d netbsd-5-0-RELEASE \<file></code>
                     78:    - <code>cvs tag -rnetbsd-5 netbsd-5-0-RELEASE \<file></code>
                     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:    If building for a branch older than <code>netbsd-5-0</code>, set <code>-j1</code> so that set sharing
1.1       wiki       87:    works better, and don't forget to undo it later!  This is configured in
1.2       wiki       88:    autobuild.conf with the <code>AB_SLAVE_OPTS_b[678]</code> variables.
1.1       wiki       89: 
1.2       wiki       90: 6. Add tag to <code>~builds/etc/build_order</code> like: <code>netbsd-5-0-RELEASE:N:N</code>
1.1       wiki       91:    This means the tag will only be built once, and it won't be uploaded
                     92:    after it finishes building.  Put it at the top.  You'll have to kill
1.2       wiki       93:    <code>run_builds.sh</code> and restart the builds to get this to take effect.
1.1       wiki       94: 
                     95: 7. Spend the next few hours worrying about some unforeseen or sporadic problem
                     96:    causing one or more ports to fail.  Cross your fingers and hope that you're
                     97:    spared the hassle.  If you're not so lucky, dig around and manually rebuild
                     98:    a port on one of b[678], copying the build.sh line from logs, mainly to
                     99:    preserve the -B flag's argument.  Copy the results back to build.netbsd.org
                    100:    and proceed.
                    101: 
                    102: 8. Create ISOs (macppc, mac68k, source).  See below for instructions.
1.2       wiki      103:    Rename ISOs to blahcd-\<release>.iso
                    104:    Create hashes for ISOs (<code>cksum -a 512 *iso > SHA512</code>)
1.1       wiki      105: 
1.2       wiki      106: 9. rsync to nbftp.  Has to go to a staging dir in /pub/NetBSD-daily first.
1.1       wiki      107: 
1.2       wiki      108:         rsync -avu --progress --port 874 --password-file /home/builds/.rsync \<path-to-top-level-release-dir> builds@ftp.netbsd.org::builds/priv/
                    109: This will upload the files to <code>ftp.NetBSD.org:/pub/NetBSD-daily/priv/</code>.
                    110:    After that, get admins to create <code>/pub/NetBSD/NetBSD-\<release></code> and
                    111:    <code>/pub/NetBSD/iso/<release></code> directories for you, owned by builds:builds.
1.3     ! wiki      112:    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      113:    to the main release directory.
                    114: 
1.2       wiki      115: 10. create torrents
                    116: 
1.3     ! wiki      117: In the images directory:
        !           118: 
        !           119:         for i in NetBSD-* ; do
1.2       wiki      120:         maketorrent-console http://tracker.netbsd.org:6969/announce $i
                    121:         done
                    122: Get admins@ to add the torrent directory to <code>~torrent/runbt</code>.  
                    123: *NOTE FROM SPZ, 2010-11-15:*
                    124: >it turns out that bittorrent can't do more than one 'allowed_dir'.
                    125: >
                    126: >Thus, we now have /ftp/pub/NetBSD/torrent. Please keep the permissions
                    127: >so that mirrors can't read the contents, since the contents are duplicate.
                    128: >
                    129: >(This should go into releng docs probably:)
                    130: >If you add a file that should be picked up by torrents, put it and its
                    131: >torrent control file where it belongs and hard-link the two into the
                    132: >appropriate directory in the torrent tree.
                    133: >Please note that the torrent tree cannot be used to publish the torrent
                    134: >control file via http or ftp.
1.1       wiki      135: 
                    136: 12. Get security-officer@ to sign binaries and ISOs.
1.2       wiki      137:     <code>localsrc/security/programs/rel-hashes.sh</code>
1.1       wiki      138: 
                    139: 13. Give mirror-maintainers a heads up that new release binaries are available.
                    140:     This should be done 3ish days prior to the expected announce date.
                    141: 
                    142: 14. Have admins update sup.  Wonder if anyone still uses sup anyway.
                    143: 
                    144: 15. Update the website.
                    145: 
1.2       wiki      146: 16. Update <code>/pub/NetBSD/README</code> to mention the new release
1.1       wiki      147: 
                    148: 17. Announce the release on netbsd-announce@ and the blog.
                    149: 
1.2       wiki      150: ============ 
                    151: 
1.1       wiki      152: BUILDING ISOs
                    153: 
                    154: The following stuff should be done on build.netbsd.org as the 'builds'
                    155: user.
                    156: 
                    157: Images that need to be built manually: macppc, mac68k, source
                    158: 
                    159: Needs to be cdrtools 2.01 (but not newer!).  The binary in ~/bin/mkisofs
                    160: will work.
                    161: 
1.2       wiki      162:         cd ~/scratch
                    163:         tar xzvpf /home/builds/ab/HEAD/ab-src.tgz (note -- "HEAD" is always used)
1.1       wiki      164: 
                    165: Building in src/distrib/cdrom:
                    166: 
                    167: Copy and fiddle with some ridiculous .mk and .conf files, adjusting for the
                    168: relevant release.
                    169: 
                    170: Do the following three times, changing TARGET_CD_IMAGE to macppccd, mac68kcd,
                    171: and sourcecd.
                    172: 
1.2       wiki      173:         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      174: 
                    175: post-release:
                    176: 
1.2       wiki      177: * change name to 5.0_STABLE
                    178: * 5-0 branch becomes 5.0.0_PATCH
1.1       wiki      179: 
                    180: create netbsd-5-0 branch:
1.2       wiki      181: 
                    182:         cvs rtag -a -b -rnetbsd-5 netbsd-5-0 src xsrc

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