Product Release Script

Version 0.1

Purpose

Product Release Script is a shell script to release gzip-tar-archive from a product. The script packages products' redistributable files to a version numbered archive file, making product release roll-outs easy. This script is aimed to Plone developers who don't have much experience on making a release and it should take care of things which would go unnoticed without experience about making product release archives.

Copyright and licence

Copyright 2006 Mikko Ohtamaa.

html2text.py module Copyright 2004 Aaron Swartz.

Licenced under GPL.

Usage

Script is unix shell script e.g. a script containing list of terminal commands  to be executed. On Windows platform you need Cygwin to run it. Linux/Unix platforms supports shell scripts natively.

Copy script to your product's folder and run it there. An release archive is built. The name of the archive is product's folder name. The topmost level of the archive contains one folder which is your product folder. There should be no spaces in the path of your product folder. Because commands use spaces a separator character, spaces break command line syntax.

Syntax

In your Products/MyCustomProduct folder, run the following Unix shell script:

sh release.sh [optional archive destination path, no trailing slash]

If no destination path is supplied, release.sh tries to build archive one level below current directory (usually Plone's Products folder).

Scripted actions

  1. Read product name from the current folder
  2. Read version number from version.txt. version.txt is Plone file which Plone product quick installer uses to determine product's version number. The contents of the file is a simply version number string. There must not be newline in the version.txt.
  3. Generate plain text file README.txt from Read me.html. It's polite to have plain text read me files for those server admins guys installing the product through SSH terminal.
  4. Archive is build
    1. Excluded folders and files are specified in release.sh. By default they are
      • .svn folders (Subversion versioning information)
      • .cvs folders (CVS versioning information)
      • *.tmp (Temporary files)
      • *.pyc (Compiled Python code. Contains hardcoded paths, cannot be redistributed)
      • *.pyd (Compiled Python debug code. Contains hardcoded paths, cannot be redistributed)
      • *.jbf (JASC Paint Shop Pro image browser thumbnail database)

The future

I am currently working on Plone as hobby basis. This means there won't regular updates. I will be accepting patches and ideas.

History

I didn't find obvious example for building Plone product tarball archives. Then I messed with Unix access rights in tar. I don't want anyone fall to the same trap.

Resources

Contact

Mikko Ohtamaa

www.redinnovation.com

Oulu, Finland

Nick Moo (Moo- or Moo^) at #plone channel in irc.freenode.net