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

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

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