OpenSCAD Release Checklist
--------------------------

o Pre-release preparations
  - Merge MCAD
    o In MCAD clone:
      $ git fetch upstream
      $ git merge upstream/master
      $ git push
    o In OpenSCAD:
      $ cd libraries/MCAD
      $ git pull
      $ cd ../..
      $ git commit -m "Updated MCAD" libraries/MCAD
      $ git push

(See bottom of this file for how to build release binaries)

o Set VERSION and VERSIONDATE environment variable
  (VERSIONDATE is new and used to identify releases. VERSION is for humans.
   For development builds, set VERSION and VERSIONDATE to the same value)

  export VERSION=2013.01
  export VERSIONDATE=2013.01.17

  It will be used by the commands below, as well as these files: 

  scripts/release-common.sh
  scripts/publish-macosx.sh
  scripts/publish-mingw-x.sh

o Update manpage: doc/openscad.1
o Update releases/$VERSION.md
o scripts/makereleasenotes.sh

o Update version number in doc/openscad.1
o Update copyright year in AboutDialog.html and mainwin.cc

o Tag release
  git tag "openscad-$VERSION"

o build source package
  scripts/git-archive-all.py --prefix=openscad-$VERSION/ openscad-$VERSION.src.tar.gz

o Sanity check; build a binary or two and manually run some tests

o git push --tags master

o Upload Source package
  $ scp openscad-$VERSION.src.tar.gz openscad@files.openscad.org:www

o Remove VERSION environment variable
  $ unset VERSION

o Build binaries for all platforms and wait for upload

o Announce:
o ./scripts/github-release.sh $VERSION
o Write release email/blog entry
o Update web page
  - news.html
  - inc/src_release_links.js
o Update external resources:
  - http://en.wikipedia.org/wiki/OpenSCAD
o Write to mailing list
o Tweet as OpenSCAD
o Notify package managers
  - Ubuntu: https://launchpad.net/~chrysn
  - Fedora: Miro Hrončok <miro@hroncok.cz> or <mhroncok@redhat.com>
  - OpenSUSE: Pavol Rusnak <prusnak@opensuse.org>
  - MacPorts: Frank Schima <macports2000@gmail.com>
  - Arch Linux: Kyle Keen <keenerd@gmail.com>

Build and Upload Release Binaries
---------------------------------

$ export VERSIONDATE=<date of release in YYYY.MM.DD format, e.g. 2013.01.17>
$ export VERSION=<openscad version, e.g. 2013.01> # If development snapshot, you don't need version is the same as VERSIONDATE
$ tar xzf openscad-$VERSION.src.tar.gz
$ cd openscad-$VERSION

Mac OS X:

    $ ./scripts/publish-macosx.sh -> OpenSCAD-$VERSION.dmg

Linux:
    32-bit: run on a 32-bit machine or VM
    64-bit: run on a 64-bit machine or VM

    $ ./scripts/release-common.sh -> openscad-$VERSION.x86-ARCH.tar.gz
    (where ARCH will be detected and set to 32 or 64)
    $ ./scripts/googlecode_upload.py -s 'Linux Binaries' -p openscad openscad-$VERSION.x86-ARCH.tar.gz -l Featured,OpSys-Linux,Type-Archive openscad-$VERSION.x86-ARCH.tar.gz
    o Update web page with download links

Windows mingw cross-build:

FIXME: Adapt scripts/builder.sh to build release binaries
