From: <ai...@us...> - 2013-09-30 22:57:24
|
Revision: 12557 http://sourceforge.net/p/plplot/code/12557 Author: airwin Date: 2013-09-30 22:57:22 +0000 (Mon, 30 Sep 2013) Log Message: ----------- This may be the final version of this file for this release. Modified Paths: -------------- trunk/README.Release_Manager_Cookbook Modified: trunk/README.Release_Manager_Cookbook =================================================================== --- trunk/README.Release_Manager_Cookbook 2013-09-30 21:46:24 UTC (rev 12556) +++ trunk/README.Release_Manager_Cookbook 2013-09-30 22:57:22 UTC (rev 12557) @@ -1,33 +1,38 @@ INDEX -(1) Prepare documentation +(1) Prepare and test the documentation (2) Check and potentially fix internal consistency (3) Update website-related files -(4) Preliminary install and test of a local copy of the PLplot website -(5) Prepare a preliminary version of the ChangeLog file for this release -(6) Prepare the README.release file or press those who have made -(7) Version changes. -(8) Install and test a local copy of the PLplot website -(9) Comprehensive test of PLplot. -(10) Upload the local website to SourceForge: -(5) Prepare a file release: -(4) Publicity for the release announcement. -(5) Immediate preparation for next release cycle +(4) Install and test a (preliminary) local copy of the PLplot website +(5) Prepare a (preliminary) version of the ChangeLog file for this release +(6) Prepare the README.release file and/or press those who have made +(7) Update Release date and versions +(8) Create (a preliminary version of) the release tarball and check the result +(9) Do comprehensive test of PLplot. +(10) Install and test a local copy of the PLplot website +(11) Create ChangeLog.release +(12) Create the PLplot Release +(13) Upload the local website to SourceForge +(14) Prepare a file release +(15) Publicize the release announcement +(16) Prepare immediately for the next release cycle - (A1) GNU Privacy Guard (gpg) (A2) Creating a test tarball from trunk (A3) Correct computer time -N.B. the order of steps below is important because of the -dependencies between the steps. +N.B. the order of steps below is important because of the dependencies +between the steps which are noted (except for the generation of the +final release tarball and ChangeLog which depend on virtually all +prior steps). -(1) Prepare documentation +(1) Prepare and test the documentation This step does not depend on other steps. The steps below entitled "Check and potentially fix internal consistency" and +"Install and test a (preliminary) local copy of the PLplot website" "Install and test a local copy of the PLplot website" depend on this step. @@ -36,23 +41,22 @@ documentation (in doc/docbook/src) to reflect any changes (new drivers or new PLplot functionality) in the current release cycle. Or alternatively, press those who made the changes to update the -documentation. +documentation. Generate and test our doxygen form of documentation +following the instructions in doc/README.doxygen. -Generate and test our doxygen form of documentation following the -instructions in doc/README.doxygen. Generate and test our Docbook -documentation following the instructions in -doc/docbook/README.developers. +Update, generate and test our Docbook documentation following the +instructions in doc/docbook/README.developers. (2) Check and potentially fix internal consistency This step depends on the step above entitled -"Prepare documentation". +"Prepare and test the documentation". This step potentially affects the swig-generated bindings and -the f95, tcl, and ocaml bindings. Thus, the steps below entitled +the f95, tcl, and ocaml bindings. Thus, the step below entitled -"" +"Comprehensive test of PLplot" may depend on this step. @@ -106,9 +110,12 @@ This step does not depend on other steps. -The step below entitled +The steps below entitled +"Install and test a (preliminary) local copy of the PLplot website" "Install and test a local copy of the PLplot website" +"Create (a preliminary version of) the release tarball and check the result" +"Create the release tarball and check the result" depends on this step. @@ -121,9 +128,9 @@ controls what examples-related files are copied to the website. Update the project web page, including the examples: edit -www/examples.php to reflect the forthcoming release version number and -any changes to the examples themselves (i.e. pages added or removed -from an existing example or entirely new examples). +www/examples.php to reflect any changes to the examples themselves +(i.e. pages added or removed from an existing example or entirely new +examples). Note, the xmlto package that must be installed in order to generate the DocBook documentation (see doc/docbook/README.developers referred @@ -132,66 +139,15 @@ present release announcements for the website if desired. See www/announce/README for just how easy this step would be. -(4) Preliminary install and test of a local copy of the PLplot website +(4) Install and test a (preliminary) local copy of the PLplot website This step depends on the steps above entitled -"Prepare documentation" and +"Prepare and test the documentation" and "Update website-related files" but does not depend on any steps below. -Follow the directions in the step below entitled - -"Install and test a local copy of the PLplot website" - -exactly which should produce a final tested local version of the -website except that the RELEASE_DATE might be wrong. - -(5) Prepare a preliminary version of the ChangeLog file for this release - -# This makes the BASE used below correct. -svn update - -svn log --revision BASE:<LAST_RELEASE_REVISION> --verbose >| ChangeLog.release_preliminary - -where <LAST_RELEASE_REVISION> stands for the last revision number of -the previous release which can be determined e.g., by viewing the -ChangeLog.release file from the previous release. Note the "_preliminary" -suffix to distinguish this from the final result below. - - -(6) Prepare the README.release file or press those who have made -changes in this release cycle to update that file. - -To double-check that file is complete with regards to all major -developments during this release cycle, skim all the commit messages in -ChangeLog.release_preliminary determined above. - -(7) Version changes. - -Version of PLplot updated above in www/examples.php. In addition, -update cmake/modules/plplot_version.cmake to reflect the current -RELEASE_DATE (which affects the documentation build) and -version. Also, follow the instructions in that file for updating the -SOVERSION, the minor number and the patch number for each versioned -library created by the PLplot build. - -(8) Install and test a local copy of the PLplot website - -This step depends on the steps above entitled - -"Prepare documentation", -"Update website-related files", and -"Version changes" (since the documentation build depends on the -release date). - -The step below entitled - -"" - -depends on this one. - To build the local form of the website (including both the doxygen and DocBook forms of our documentation) run (on a Linux host that is capable of building the documentation for the source tree that has all @@ -246,7 +202,7 @@ examples is accessible, etc. Some iterations with the steps above entitled -"Prepare documentation" and +"Prepare and test the documentation" and "Update website-related files" will likely be required. @@ -259,9 +215,98 @@ local website you should commit all your changes so they are available for generating the tarball and ChangeLog (see below) for this release. -(9) Comprehensive test of PLplot. +N.B. The iterated result should be identical to the final result (see +below) except that the release date (configured as RELEASE_DATE) and +the PLplot version in www/example.php will be wrong. Those +issues are addressed in "Update release date and versions" below. -Do comprehensive test of the interactive results then the noninteractive +(5) Prepare a (preliminary) version of the ChangeLog file for this release + +# This makes the BASE used below correct. +svn update + +svn log --revision BASE:<LAST_RELEASE_REVISION> --verbose >| ChangeLog.release_preliminary + +where <LAST_RELEASE_REVISION> stands for the last revision number of +the previous release which can be determined e.g., by viewing the +ChangeLog.release file from the previous release. Note the +"_preliminary" suffix to distinguish this from the final result below +which will contain (if all goes well in the steps below) a record of +all but the last commit (of the ChangeLog itself) for this release. + +(6) Prepare the README.release file and/or press those who have made +changes in this release cycle to update that file. + +This step depends on the step above entitled + +"Prepare a (preliminary) version of the ChangeLog file for this release". + +To double-check that file is complete with regards to all major +developments during this release cycle, skim all the commit messages in +ChangeLog.release_preliminary determined above. + +(7) Update Release date and versions + +This step depends on no others. + +The following steps entitled + +"Create (a preliminary version of) the release tarball and check the result +for errors." +"Install and test a local copy of the PLplot website" +"Comprehensive test of PLplot" + +depend on this step. + +Update PLplot version in www/examples.php. In addition, +update cmake/modules/plplot_version.cmake to reflect the current +RELEASE_DATE (which affects the documentation build) and +version. Also, follow the instructions in that file for updating the +SOVERSION, the minor number and the patch number for each versioned +library created by the PLplot build. + +(8) Create (a preliminary version of) the release tarball and check the result +for errors. + +This step depends on the steps above entitled + +"Prepare and test documentation" +"Check and potentially fix internal consistency" + +The -c option runs ctest on the directory tree unpacked from the +release tarball, and the -i option installs a build from that +directory tree + +scripts/make_tarball.sh -c -i /tmp/plplot_install + +find /tmp/plplot-dist-prep -name "*.out" |xargs grep -i error + +If the above find command discovers any errors, then those errors +need to be fixed and this step needs to be repeated. + +Browse the following install locations that were generated from the +tarball: + +/tmp/plplot_install/share/doc/plplot/html/index.html +/tmp/plplot_install/share/doc/plplot/plplot-5.9.10.pdf +/tmp/plplot_install/share/doc/plplot/plplot-5.9.10.ps.gz + +Look at a few man pages that were generated from the tarball, e.g., + +nroff -man /tmp/plplot_install/share/man/man3/pllegend.3plplot |less + +Look at the info pages that were generated from the tarball using + +info /tmp/plplot_install/share/info/plplotdoc.info + +(9) Do comprehensive test of PLplot. + +This step depends on the steps above entitled + +"Check and potentially fix internal consistency" +"Update date/versions" + +Do a comprehensive test of the interactive and noninteractive results. scripts/comprehensive_test.sh --do_ctest no --do_test_noninteractive no @@ -270,15 +315,32 @@ Enter results of these and all other tests of this release into README.release. -(10) Create ChangeLog.release +(10) Install and test a local copy of the PLplot website +This step depends on the steps above entitled + +"Prepare and test the documentation" +"Update website-related files" +"Update release date and versions" + +The step below entitled + +"Upload the local website to SourceForge" + +depends on this one. + +Follow the exact steps given above in "Install and test a +(preliminary) local copy of the PLplot website" but this time with the +correct RELEASE_DATE and VERSION. + +(11) Create ChangeLog.release + N.B. commit all local changes to the repository so they will be -reflected in the ChangeLog, tagged version of the release, and release -tarball. And if there are committed changes after this one (except -possibly for commits of this file, README.Release_Manager_Cookbook), +reflected in the ChangeLog, tagged version of the release, and the release +tarball. And if there are committed changes after this one repeat this step so the ChangeLog.release commit is the last trunk -commit for this release cycle (with the exception of the current -file). +commit for this release cycle (with the possible exception of the current +file, README.Release_Manager_Cookbook). Prepare the ChangeLog.release file to keep track of all changes made for the release. Use the following commands: @@ -299,7 +361,8 @@ last commit for the trunk version of PLplot (see remarks above about when it is necessary to repeat this step). -(11) Creating a PLplot Release: +(12) Create the PLplot Release + Based on suggestions in the svn manual, the PLplot svn archive is configured as follows: @@ -340,8 +403,6 @@ cd to tags/ and enter the following commands: -export WWW_USER=your_sf_user_name -../trunk/scripts/make_tarball.sh -c -i /tmp/vX_Y_Z -t vX_Y_Z 2>&1 | tee build.log This script will take a several minutes to execute and does not otherwise provide a lot of feedback so it will appear as if it is doing nothing for @@ -378,7 +439,7 @@ A list of your GPG keys can be obtained using the command "gpg --list-keys". -(2) Upload the local website to SourceForge: +(13) Upload the local website to SourceForge Once you are satisfied with the local website, you should upload it to SourceForge with rsync. @@ -404,7 +465,7 @@ N.B. the --dry-run option for rsync is a god-send and tells you exactly what will happen without actually doing it. -(5) Prepare a file release: +(14) Prepare a file release Login to sf.net. Go to the PLplot SourceForge project page. @@ -433,13 +494,13 @@ the release numbers. -(4) Publicity for the release announcement. +(15) Publicize the release announcement Jerry: macresearch.org Barbara Irwin: linuxtoday.com, lwn.net, lxer.com -(5) Immediate preparation for next release cycle +(16) Prepare immediately for the next release cycle a. Append the README.release file from the current release onto the front of the OLD-README.release file. This is done to preserve a record of the @@ -447,8 +508,6 @@ b. Update README.release file to reflect significant changes made between the current release and the last release. - - --- Appendix --- (A1) GNU Privacy Guard (gpg) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |