Revision: 55780
          http://sourceforge.net/p/brlcad/code/55780
Author:   brlcad
Date:     2013-06-14 16:06:38 +0000 (Fri, 14 Jun 2013)
Log Message:
-----------
automation and reduction.  there are steps we're not doing, reflect on why and 
adjust:  too many compiles.  once we pass tests on trunk, make the latter 
checks be more simple.  provide even more automation to include lines for 
creating new binary dirs and uploading release notes into them.  also 
*automatically* update the README and NEWS files with a little bit of regex 
magic.  release is almost fully automatable into a script now...

Modified Paths:
--------------
    brlcad/trunk/HACKING

Modified: brlcad/trunk/HACKING
===================================================================
--- brlcad/trunk/HACKING        2013-06-14 14:41:17 UTC (rev 55779)
+++ brlcad/trunk/HACKING        2013-06-14 16:06:38 UTC (rev 55780)
@@ -1169,15 +1169,25 @@
     svn2cl --break-before-msg --include-rev --stdout -r HEAD:{$LAST} > 
ChangeLog
     svn commit -m "update log with commits through $LAST" ChangeLog
 
-4) Verify a successful build and distcheck on at least two platforms.
+4) Verify a successful build and distcheck ON AT LEAST TWO PLATFORMS.
 Passing regression tests, benchmark, and two build configurations are
-critically required.  Manually test mged and archer.
+required for syncing to STABLE.  Manually test mged and archer.
 
-    mkdir -p .release && cd .release
-    cmake .. && make distcheck && rm -rf ../.release/*
-    cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make 
distcheck && cd .. && rm -rf .release
+    mkdir -p .verify && cd .verify
+    cmake .. && make distcheck && rm -rf ../.verify/*
+    cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make 
distcheck && make
 
-5) Sync trunk with the STABLE branch.  Make sure all changes since the
+    # manaully test
+    bin/rt        # should report usage with correct library versions
+    bin/benchmark run TIMEFRAME=1            # completes without ERROR
+    bin/mged -c test.g "make sph sph ; rt"   # pops up a sphere
+    bin/rtwizard  # displays gui
+    bin/mged      # displays gui, run: opendb test2.g ; make sph sph ; rt
+
+    # clean up
+    cd .. && rm -rf .verify
+
+5) Sync trunk onto the STABLE branch.  Make sure all changes since the
 previous sync are included and that STABLE matches trunk.
 
     # review the log and obtain the last trunk merge revision number from 
comments
@@ -1190,7 +1200,12 @@
     # merge that range of changes into STABLE and make sure it works
     svn co https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE 
brlcad.STABLE && cd brlcad.STABLE
     svn merge https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@$PREV 
https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@HEAD .
-    mkdir .release && cd .release && cmake .. -DBRLCAD_BUNDLED_LIBS=ON 
-DCMAKE_BUILD_TYPE=Release && make distcheck && cd .. && rm -rf .release
+
+    # compile the merge
+    mkdir .merge && cd .merge
+    cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make && cd 
.. && rm -rf .merge
+
+    # commit the merge
     CURR=`svn log --xml https://svn.code.sf.net/p/brlcad/code/brlcad/trunk | 
grep 'revision=' | head -n 1 | sed 's/.*="\([0-9][0-9]*\)".*/\1/g'`
     echo "CURR=$CURR"
     svn commit -m "merging trunk to STABLE from r$PREV to HEAD r$CURR"
@@ -1203,59 +1218,64 @@
     echo "Tagging rel-$MAJOR-$MINOR-$PATCH"
     svn cp https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE 
https://svn.code.sf.net/p/brlcad/code/brlcad/tags/rel-$MAJOR-$MINOR-$PATCH
 
-7) Obtain a tagged version of the sources from the repository
-(required to ensure the tagging and source distribution is correct):
+7) Increment and commit the next BRL-CAD release numbers to SVN.
+Update the include/conf/(MAJOR|MINOR|PATCH) version files immediately
+to an odd-numbered minor version or a new patch developer version
+(e.g. 7.11.0 or 7.4.1).  Update README and NEWS version to next
+_expected_ release number (e.g. 7.12.0 or 7.4.2).
 
-    svn checkout 
https://svn.code.sf.net/p/brlcad/code/brlcad/tags/rel-$MAJOR-$MINOR-$PATCH 
brlcad-$MAJOR.$MINOR.$PATCH
+    echo "`expr $PATCH + 1`" > include/conf/PATCH
+    NEXT="`expr $PATCH + 2`"
+    perl -pi -e "s/Release [0-9]+\.[0-9]+\.[0-9]+/Release 
$MAJOR.$MINOR.$NEXT/" README
+    
EXPR="s/(@---[[:space:]@-]*[0-9]{4}-)([0-9]{2}-[0-9]{2})([[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.)(${PATCH})([[:space:]@-]*-@)/\$1XX-XX\${3}${NEXT}\$5@*
 TBD@@\1\2\3\4\5/"
+    cat NEWS | tr '\n' '@' | perl -pi -e "$EXPR" | tr '@' '\n' > NEWS
+    svn commit -m "bump to next development revision after tagging the 
$MAJOR.$MINOR.$PATCH release" ../include/conf/PATCH
 
-8) Perform a distcheck on the exported/updated sources to generate
-distributable compressed source tarballs:
+8) Obtain a tagged version of the sources from the repository, make
+final distribution tarballs:
 
-    cd brlcad-$MAJOR.$MINOR.$PATCH
-    mkdir -p .build && cd .build
-    cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make && 
make distcheck
+    svn checkout 
https://svn.code.sf.net/p/brlcad/code/brlcad/tags/rel-$MAJOR-$MINOR-$PATCH 
brlcad-$MAJOR.$MINOR.$PATCH
+    cd brlcad-$MAJOR.$MINOR.$PATCH-build && mkdir .build && cd .build
+    cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make 
distcheck
 
-9) Use one of the source distribution tarballs to verify a binary
-build.  Use the NAMING A BINARY RELEASE section above if the binary
-build will be distributed.  Minimally test:
+9) Upload the source distributions and release notes.  Use source
+tarballs to create binaries.  Use the NAMING A BINARY RELEASE section
+above to name them.
 
-    rt        # should report usage with correct library versions
-    benchmark run TIMEFRAME=1            # completes without ERROR
-    mged -c test.g "make sph sph ; rt"   # pops up a sphere
-    rtwizard  # displays gui
-    mged      # displays gui, run: opendb test2.g ; make sph sph ; rt
-
-10) Upload the source distributions and release notes:
-
-    # create a shell session
+    # create a shell session and source dir
     SFUSERNAME=`ls ~/.subversion/auth/svn.simple/* | xargs -n 1 grep -A4 
sourceforge | tail -1`
     echo "SFUSERNAME=$SFUSERNAME MAJOR=$MAJOR MINOR=$MINOR PATCH=$PATCH"
     ssh -v $SFUSERNAME,[email protected] create
     ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
 
-    # upload source dist
+    # create binary dirs (as needed)
+    ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
+    ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
+    ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
+    ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
+    ssh -v $SFUSERNAME,[email protected] mkdir 
"/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
+
+    # upload source dist and any binaries
     scp brlcad-$MAJOR.$MINOR.$PATCH* 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ 
Source/$MAJOR.$MINOR.$PATCH/."
 
-    # Extract and upload the release notes:
+    # extract and upload release notes to source dir
     cat ../NEWS | tr '\n' '@' | perl -pi -e 
"s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/"
 | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
     echo "Release notes for $MAJOR.$MINOR.$PATCH" && echo "==="
     cat README-$MAJOR-$MINOR-$PATCH.txt && echo "==="
     scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ 
Source/$MAJOR.$MINOR.$PATCH/."
 
-    # upload any binary dists as needed then close shell session
+    # upload release notes to binary dirs (as needed)
+    scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ 
Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
+    scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ 
BSD/$MAJOR.$MINOR.$PATCH/."
+    scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ 
Linux/$MAJOR.$MINOR.$PATCH/."
+    scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ 
Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
+    scp README-$MAJOR-$MINOR-$PATCH.txt 
"$SFUSERNAME,[email protected]:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ 
Windows/$MAJOR.$MINOR.$PATCH/."
+
+    # be sure to mark binaries as default download, then close shell session
     ssh -v $SFUSERNAME,[email protected] shutdown
 
-11) Increment and commit the next BRL-CAD release numbers to SVN;
-update the include/conf/(MAJOR|MINOR|PATCH) version files immediately
-to an odd-numbered minor version or a new patch developer version
-(e.g. 7.11.0 or 7.4.1).  Update README and NEWS version to next
-_expected_ release number (e.g. 7.12.0 or 7.4.2).
+10) Notify binary platform maintainers:
 
-    echo "`expr $PATCH + 1`" > ../include/conf/PATCH
-    svn commit -m "bump to next development revision after tagging the 
$MAJOR.$MINOR.$PATCH release" ../include/conf/PATCH
-
-12) Notify binary platform maintainers:
-
     T2 package maintainer
        http://t2-project.org/packages/brlcad.html
 
@@ -1277,7 +1297,7 @@
     Slackware maintainer
        http://slackbuilds.org/result/?search=brlcad
 
-13) Announce the new release.
+11) Announce the new release.
 
 The NEWS file should generally be used as a basis for making release
 announcements though the announcements almost always require

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to