Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > a4b1b0defea0ad9cba50684a498961ee > files > 19

plplot-5.9.9-3mdv2010.2.i586.rpm

INDEX
(1) Install and test a local copy of the PLplot website.
(2) Upload the local website to SourceForge.
(3) Creating a PLplot Release.
(4) Publicity for the release announcement.
(5) Immediate preparation for next release cycle

(A1) GNU Privacy Guard (gpg)
(A2) Creating a test tarball from trunk
(A3) Correct computer time

(1) Install and test a local copy of the PLplot website:

(N.B. this step needs to be done first to insure the associated source tree
updates get into the release tarball, the svn tags version of the release,
and associated commit messages get into the ChangeLog for the
release.)

You should always generate and install from scratch a local copy of the
PLplot website on some ssh-accessible machine (normally your local machine).

If necessary, update the examples list in
scripts/htdocs-gen_plot-examples.sh. That list is used to generate the
website example-related files and copy the results to the website. The list
automatically controls what example source code is configured (for source
code that needs that), as well as what example plots and example thumbnails
are generated.  The list also automatically 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).

Run (on a Linux host that is capable of building the documentation
for the source tree that has all local changes)

scripts/generate_website.sh

with no arguments.  The script asks you four questions, gives you a chance
to verify your answers, then does all the rest of it (downloading a
throwaway copy of the PLplot source code, building the documentation,
generating the announcements that are part of the base website, uploading
the base website, uploading the documentation, building the examples,
running the examples, uploading the example source code and example results)
automatically.  I (AWI) tested this script using the four answers

Summary:
USERNAME = irwin
GROUPNAME = irwin
HOSTNAME = raven
WEBSITE_PREFIX = /home/irwin/public_html/plplot

(raven is my local computer name, and /home/irwin/public_html is a location
where I can put various websites).  You can check for errors (e.g., due
to missing commands that need to be installed) by running

find /tmp/plplotdoc -name '*.out' |xargs grep -i error

You should install both apache and PHP on your computer.  For Debian Testing
(a.k.a. squeeze) that is done (as root) by installing libapache2-mod-php5
and enabling user directories using the command

a2enmod userdir

and editing /etc/apache2/mods-available/php5.conf as indicated in that
file to allow user directories for php.  I am not sure, but I believe
from some google results I found that editing of that file is also
necessary on modern versions of Ubuntu in order to allow php-based websites
like that of PLplot to work when installed in local user directories.

You will also need to install "xml-to" (in the xml-to debian package).

(When user directories are enabled this way, for the above case
/home/irwin/public_html/plplot/htdocs, browses as
http://raven/~irwin/plplot/htdocs/.)

I test http://raven/~irwin/plplot/htdocs/ by clicking on most links, checking
the documentation looks good, checking the examples look good and the
source code for each language for examples is accessible, etc.

N.B. scripts/generate_website.sh uses the local source tree where that
script resides (including all local changes) as the source tree for
generating the local website.  So there is no need to commit every
above example and version change until you are completely satisfied
with the local website.  But after you _are_ satisfied with the
local website you should commit all your changes so they are available
for generating the tarball and ChangeLog (see below) for this release.

(2) Upload the local website to SourceForge:

Once you are satisfied with the local website, you should upload it to
SourceForge with rsync.

For the above WEBSITE_PREFIX, here is what worked for me from my computer
with the hostname of raven where that WEBSITE_PREFIX directory was
created.

rsync -av --delete \
/home/irwin/public_html/plplot/htdocs/ \
airwin,plplot@web.sourceforge.net:htdocs 

Adjust for your username and WEBSITE_PREFIX.  The ",plplot" part of the
username makes sure you have the right group permissions and default website
directory location for PLplot.  

N.B. the trailing slash on the source directory is essential and means rsync
the contents of this directory with the contents of the destination htdocs
directory.  Without the trailing slash you would rsync the the contents of
the source directory with the contents of the htdocs/htdocs destination
directory which is not what you want to do.  

N.B. the --dry-run option for rsync is a god-send and tells you exactly what
will happen without actually doing it.

(3) Creating a PLplot Release:

Update the README.release file.

Update the docbook documentation to reflect any new drivers or new 
functionality that has been added to PLplot. Or alternatively, press those
who made the changes to update the documentation.

Update cmake/module/plplot_version.cmake to reflect the current version. Also,
follow the instructions in this file for updating the SOVERSION, the minor
number and the patch number.

IMPORTANT: commit all local changes to the repository so they
will be reflected in the ChangeLog, tagged version of the release,
and release tarball.

Prepare the ChangeLog.release file to keep track of all changes
made for the release.  (This destroys the ChangeLog.release file
from the previous release.)

# This makes the BASE used below correct.
svn update
svn log --revision BASE:<LAST_RELEASE_REVISION> --verbose  >| ChangeLog.release

where <LAST_RELEASE_REVISION> stands for the last revision number of
the previous release which can be found, e.g., by browsing
http://plplot.svn.sourceforge.net/viewvc/plplot/tags

Check that ChangeLog.release is in the appropriate date range (i.e. only the
changes that were made since the last release should be included) then
(IMPORTANT) commit it so it will also be available for the tagged
release version, the release tarball, etc.

Based on suggestions in the svn manual, the PLplot svn archive is configured
as follows:

/trunk/plplot
/tags/older_plplot_versions
/branches/??

For the release, you will be creating (and eventually committing) what is
essentially a branch of PLplot that is a record of the project at the time
of the release. This branch will be located in the /tags directory and
should follow the current naming convention, vX_Y_Z (v5_7_0 for example).

The easiest way to get started is to make a directory on your computer
called, for example plplot_releases. Then in this directory enter the
following command:

svn co https://plplot.svn.sourceforge.net/svnroot/plplot plplot

This will check out the *entire* plplot project, including all the old
versions. Strictly speaking this is not necessary, all you really need
are the trunk and the tags directories, but you'll only have to do this
once and hard drives are pretty big these days.

If you already have this directory, you will need to make sure that
trunk is up to date. In the trunk directory, type:

svn update

Now to create the branch for the new PLplot release, type the following
command in the root plplot directory:

svn copy trunk/ tags/vX_Y_Z

The commit the new tag:

cd tags/vX_Y_Z
svn commit -m "Adding a tag for the X.Y.Z release."

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
long periods of time (at least on a slower computer). Be patient. When the
script is finished, the release tarball will be available in the directory
/tmp/plplot-dist-prep/

The "-c" option says to unpack the created tarball, build it with "cmake" and
"make", then test that result with ctest.

The "-i /tmp/vX_Y_Z" specifies the install prefix for the tarball
test configure and runs "make install" after cmake, make and ctest. When the
above command finishes executing you should go to this directory and verify
that the examples build and that plplot_test.sh executes without errors.

The build will fail (without any warning messages on the console) if you 
do not have the necessary tools to build the documentation. It is a good 
idea to verify that you can build the documentation (-DBUILD_DOC=ON).

In the event that problems are found in PLplot during the release
process, corrections should be made to trunk/, the ChangeLog.release
file recreated and committed (see instructions above).  Then merge the
trunk version into the tags/vX_Y_Z branch as follows:

cd tags/vX_Y_Z
svn merge -r A:B /path/to/trunk

Where A and B specify the range of revisions in trunk to be applied
to tags/vX_Y_Z in the merge process. These can be determined by commit
messages.

Sign the release with your plplot Release Manager gpg key:
gpg --default-key YYYYYYYY --detach-sign --armor /tmp/plplot-dist-prep/plplot-X.X.X.tar.gz

A list of your GPG keys can be obtained using the command "gpg --list-keys".

Prepare a file release:

Login to sf.net.
Go to the PLplot SourceForge project page.

Upload the Release:
Select Files.
Click on the plplot folder & select "Add folder".
Enter the release name as the "New folder name:", e.g. X.Y.Z Source.
Click on the release folder pop-up menu & select "upload", upload the
release and the gpg signature file from /tmp/plplot-dist-prep/. This can
take a few minutes without much feedback.
Concatenate the README.release and ChangeLog.release files into a single 
README.release file.
Upload the concatenated README.release file.
Click on the "i" or "info" button to mark the tar.gz file as the default 
file to download for all platforms.


Create a news item for the Release:
Select Develop / News
Click "Admin", select any older News Item and copy the test.
Click "Submit"
  Enter "PLplot Release X.Y.Z" as the subject.
  Paste in the text from the older release as the Details.
    Be sure to update the text as appropriate, particularly
    the release numbers.


(4) Publicity for the release announcement.

Jerry: macresearch.org

Barbara Irwin: linuxtoday.com, lwn.net, lxer.com

(5) Immediate preparation for 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
     significant changes between versions of PLplot.
  b. Update README.release file to reflect significant changes made between
     the current release and the last release.



--- Appendix ---

(A1) GNU Privacy Guard (gpg)
A brief summary of developer relevant gpg commands, see also:
http://dewinter.com/gnupg_howto/english/GPGMiniHowto.html
man gpg

create a new key:
gpg --gen-key

list keys so that you can find the ID of the key you created:
gpg --list-keys

upload your (public) key to GPG key server so that others can obtain it to
verify your signature on the release tarball.
gpg --send-keys 6C58D1AC
(where 6C58D1AC is replaced with the appropriate value from the list-keys
command)


(A2) (Optional) Creating a test tarball from trunk

This step is only required if you have some concerns about how
recent changes may have affected the generated source tarball, and you want
to generate that tarball and test it _before_ you create a tag for the
release.  (The release process for the tag below also generates a tarball
from the tag directory and tests it which is why this trunk version of the
same is optional.)

cd /tmp
/path-to-trunk-source/scripts/make_tarball.sh \
-w https://plplot.svn.sourceforge.net/svnroot/plplot
-c -i /tmp/trunk_install -t trunk 2>&1 | tee build.log

The above exports the current trunk
and uses 

/tmp/plplot-dist-prep/build_dir

to build the distribution source tarball

and uses

/tmp/plplot-dist-prep/ctest_build_dir

to configure and build PLplot from the unpacked tarball, ctest the build
tree, and install the built PLplot in /tmp/trunk_install

Here are the *.out files generated by this process which should be checked.

/tmp/plplot-dist-prep/build_dir/cmake.out
/tmp/plplot-dist-prep/build_dir/make_prebuild_dist.out
/tmp/plplot-dist-prep/build_dir/make_package_source.out
/tmp/plplot-dist-prep/ctest_build_dir/cmake.out
/tmp/plplot-dist-prep/ctest_build_dir/make.out
/tmp/plplot-dist-prep/ctest_build_dir/ctest.out
/tmp/plplot-dist-prep/ctest_build_dir/make_install.out

Here is how the install location should be checked:

cd /tmp/trunk_install/share/plplotX.Y.Z/examples
make >& make_examples.out
./plplot-test.sh --help  #to see what kinds of tests can be run
./plplot-test.sh --device=psc
./plplot-test.sh --device=pscairo
./plplot-test.sh --device=pngcairo
./plplot-test.sh --device=png

etc.  Check the results with, e.g.,

display x01c.pngcairo.01
display x08c.pscairo

where "display" is the general image viewer from the imagemagick suite
of programmes.

(A3) Correct computer time

(While it is useful to have the correct time on your computer, this is no 
longer strictly necessary).
Verify that your computer has the right date and time using the command date.
The easiest way to make sure the time and date are correct is to do the 
following:
1. Install the debian ntpdate package.
2. Execute the command "/usr/sbin/ntpdate pool.ntp.org", which you will
   have to do as root.
This will immediately change your system clock. It is not recommended if you
have other apps running on your system that expect time to increase in a
smooth and linear fashion.

If you would like your computer to always have the correct time and date, you 
can install the debian ntp package, which must be properly configured to work.
Some notes about how to do this can be found in the PLplot mailing list 
archive. Look for the thread titled "PLplot 5.7.2 is now available" dated 
Jan 22/23 2007.