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

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.1       wiki      112:    Once these have been made, move iso/* to the iso diectory, and the rest
                    113:    to the main release directory.
                    114: 
1.2     ! wiki      115: 10. create torrents
        !           116: 
        !           117:         for i in *.iso ; do
        !           118:         maketorrent-console http://tracker.netbsd.org:6969/announce $i
        !           119:         done
        !           120: 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