Instructions

From cclib

Contents

Checking cclib out of subversion

cclib is hosted by the fantastic people at Sourceforge. The development version of cclib is stored in a Subversion (SVN) repository at Sourceforge (you can read some background material on this at [1]). The following command will download the current development version into a folder called cclib:

svn checkout https://cclib.svn.sourceforge.net/svnroot/cclib/trunk cclib

To install, follow the guidelines described on the Install page.

Releasing a version

  • Update the CHANGELOG and ANNOUNCE
  • Make sure that setup.py has the right version number, as well as __version__ in __init__.py.
  • Run manifest.py to update the MANIFEST if necessary.
  • Do a final merge of the trunk to release branch
  • Create the source distributions
python setup.py sdist --formats=gztar,zip
python setup.py bdist_wininst # rename from cclib-0.x.win32.exe to cclib-0.x-py2.3.exe
python2.4 setup.py bdist_wininst                       # rename to cclib-0.x-py2.4.exe
  • Run the tests for a final time after removing cclib (rm -rf $PYTHONDIR/Lib/site-packages/cclib) and reinstalling from the source distribution.
  • Tag the release.
  • Use releaseforge to make a new release
  • Update the download instructions on the wiki
  • Wait 24 hours (for the sourceforge mirrors to get a copy)
  • Email the users and developers mailing list with the ANNOUNCE
  • Create a news item and copy and paste ANNOUNCE into it
  • Update http://www.freshmeat.net (click "Add release" - summarise the changelog in changes, and give the link to the changelog in the appropriate box)
  • Update the Python cheeseshop
python setup.py register
  • For a major release, if appropriate, send an email to the CCL list, the GAMESS users list and the ADF users list.

Creating a logfile release

Although all of the regression log files are stored on the web server, for the convenience of users we make periodic releases of all of these as one large .tar file (no point in .gz as they are already zipped).

  • To create a release:
cd data
tar -c -f logfiles.tar -T regressionfiles.txt
  • Create a new release in package logfiles called logfiles-rnnn, where nnn is the current SVN revision.
  • You can use a variation of the following text in the release notes: "A release of test logfiles for use with rnnn of the cclib code."

Copying a logfile to sourceforge

Use scp or winscp to connect to "USERNAME,cclib@web.sf.net". The logfiles are in htdocs/data. For interactive shell access, you will need to first type "ssh -t USERNAME,cclib@shell.sf.net create". After about 10 seconds, your own private shell will be created at SourceFroge which you can then log into.

Release branches

Historically, branches were managed by hand (as described below). I've now started using svnmerge.py, which keeps track of what's already been merged, and what's already been marked as 'not to merge'.

  • Created a prerelease branch for cclib-0.5 at revision 139.
svn copy https://svn.sourceforge.net/svnroot/cclib/trunk
  https://svn.sourceforge.net/svnroot/cclib/branches/cclib-0.5-prerelease
  • Applying changes to the trunk since revision 139 to the branch (revision 147):
cd $branch
svn merge -r139:146 https://svn.sourceforge.net/svnroot/cclib/trunk
# Fix conflicts
svn commit -m "Applying changes in the trunk from r139:146" 
  • Applying changes to the trunk since revision 147 to the branch (revision 159)
  • Applying changes to the trunk since revision 159 to the branch (revision 192)
  • Applying changes to the trunk since revision 192 to the branch (revision 200)
  • Tagged cclib-0.5b
svn copy https://svn.sourceforge.net/svnroot/cclib/branches/cclib-0.5-prerelease
  https://svn.sourceforge.net/svnroot/cclib/tags/cclib-0.5b -m "Tagged cclib-0.5b"
  • Applying changes to the trunk since revision 200 to the branch (revision 240)
  • Applying changes to the trunk since revision 240 to the branch (revision 243)
  • Tagged cclib-0.5 (revision 244)
  • Created a release branch for cclib-0.6 at revision 337.
svn copy https://svn.sourceforge.net/svnroot/cclib/trunk
  https://svn.sourceforge.net/svnroot/cclib/branches/cclib-0.6
  -m "Creating a release branch for cclib 0.6"
  • Applying changes to the trunk since revision 337 to the branch (revision 361)
  • Tagged cclib-0.6b (revision 362)
  • Applying changes to the trunk since revision 361 to the branch (revision 364)
  • Tagged cclib-0.6b (again!! revision 365)
  • Applying changes to the trunk since revision 364 to the branch (revision 387)
  • Applying changes to the trunk since revision 387 to the branch (revision 392)
  • Tagged cclib-0.6 (revision 393)