pydicom release checklist
* write ReleaseNotes by going through revision history - best seen at Source tab summary of committed changesets
   * update the docs/release-notes.txt file
* review issue list for any other changes that should be in the release
* edit __init__.py version number
* edit setup.py -- version number, description, license if necessary, etc
* remove extra debug statements (e.g. in data_element_generator) and extra print statements
* run test/performance/time_test.py to check performance hasn't degraded

* (? is this necessary or just use reindent.py? -- run tabnanny to check for bad indentation::
    python -m tabnanny .
* run reindent.py to fix the tab/space mixes, trailing whitespace, etc
    reindent.py -rv dicom   # use -d for dry-run
* run pep8 to warn of PEP-8 style issues (pep8 is available on pypi for pip install)
    cd <'source' directory>
    pep8 dicom   # various ignores in .pep8 config file, should fix most of those eventually
    To see source for particular problems:
    pep8 --select E101 --show-source dicom   # e.g. E101 is mixed tab/space
          etc as above to show source for each  kind of error

* run each example file and clean up any output files created
* doctest interactive_session.txt and interactive_session_downsize_image.txt::
    First, temporarily edit interactive_session.txt and add <BLANKLINE> in the help blank lines,
    if you want to ensure no errors.
    (switch to testfiles directory; cp mr1_unc.dcm from external testsuite for downsize example)
    python
    >>> import doctest
    >>> doctest.testfile("../examples/interactive_session.txt")  # , verbose=True if desired
    >>> doctest.testfile("../examples/interactive_session_downsize_image.txt")
    >>> doctest.testfile("../examples/simple_interactive_example.txt")
    >>> doctest.testfile("../examples/user_guide_doctest.txt")
    >>> doctest.testfile("../examples/working_with_sequences_doctest.txt")
    
    First can fail if help() function as goes into reader mode needing q to exit
* run python26 -Qwarn to check for integer division problems.
* run test/all.bat on windows to test with all supported python versions
* run test/shell_all on linux/mac to test all supported python versions

* hg commit all changes
* tag the release -- hg tag "release-X.X.X". Auto-commits.
* hg push to repository
* loop back to running all tests if any changes to main code made
   (can hg tag --remove release-X.X.X if needed)
* check back out to a clean directory -- that way sure to not include extra files in the build
* build the package files
    * on windows, python setup.py bdist_wininst --> get windows installer exe in dist directory
    * on linux, python setup.py sdist  --> get .tar.gz source file (also used by easy_install) in dist directory
* use the dist files to install the package on
  * windows -- 32-bit  / 64-bit using Windows installer
  * linux   -- 32-bit  / 64-bit
  and run the tests in at least one python version on each system
* upload dist files to googlecode site
* run pip or easy_install (retrieve from pypi) again on clean system and make sure it works:
* verify that source install has _all_ directories and subdirectories included
* update documentation:
  * update Release Notes page
  * special attention to deprecated modules, classes, etc
  * look for references to specific versions
  * any changes related to version of python itself
  * read all pages quickly
* update News page with quick synopsis of major features
* announce on pydicom google group
* update info on medphysfiles.com
* register with pypi -- python setup.py register
* others -- freshmeat? idoimaging.com? macports?
