Start:
    Freeze cocos directory, except for obvious, simple, robust fixes.
    Freeze existing code in samples and test directories
    Additions after the freeze should should be listed somewhere so they
    get tested before release.

Early:
 - Be sure all examples in test dir runs
 - If possible, unit test in utest should all pass.

Finishing:

- Proper updated license header, care to not target files which needs
  other license header

- decide version and date; write it down.
  They should be consistent with previous releases, to not confuse
  users and installers like easy_install or pip
  
  update version and date in
      cocos/__init__.py
      setup.py
	  documentation gets version from docgen/conf.py, which gets from cocos/__init__.py
      CHANGELOG
	  INSTALL

- in cocos/__init__.py update / uncoment the pyglet version check
  (while preparing cocos 0.6.7 is commented out because pyglet 1.4.3 is not out)
  
- new big capabilities should be updated in
    cocos/__init__.py docstring
    README    
    docgen/programming_guide/introduction.txt
    
- initial test 'build sdist' and 'install' with setup.py and pip;

	- update pip and setuptools before starting build & install tests
	- don't bother with docs generation at this stage
    - adjust dependencies if needed, remember to mention in INSTALL
	- adjust MANIFEST.in if needed (usually when something is missed in the generated .zip)
	- test installation with pip, fix if necessary
	- check that the dependencies pulled from Pypi come at the expected versions 

- Update text files in the top trunk directory
	- CHANGELOG
	- LICENSE
	- INSTALL
	- README		

Keep in mind that
  - README it is also used as reST for the pypi page
	(see 1 in building_release_notes.txt), and also is rendered
	in the github project landing page

  - INSTALL is also used as docgen/programming_guide/installation.txt
	(manual copy atm), so use reST- sphinx compatible markup
	Keep the markup at a minimun, so the plain text is readable

- copy INSTALL to docgen/programming_guide/installation.txt

- build the docs (see 2 in building_release_notes.txt)
  currently (0.6.5) the docs build produces 8 warnings (before was 7), keep fixing while your number is higher. 

- build the final package that includes the docs
  (see tools/build_release_notes.txt for details)

- verify that non-code resources are included (currently docs\html, cocos\resources)

- verify install works, see 4 in building_release_notes.txt

- Update cocos2d.org site and the backup( see 6 in building_release_notes.txt)

- upload to pypi ( see 7 in building_release_notes.txt )
  For Release Candidates, alphas, betas and RC we can upload to pypi (pip will differentiate between stable or unstable releases, and by default will install the stable; setuptools (easy_install) seems to not diferentiate and will pick the latest, seen that in testing with the dependency pyglet)

  - for best results, try first uploading to https://test.pypi.org/ , a test instance for pypi, and if all goes well then proceed to the real upload.

  - check how the pypi page looks, download the zip / tar and binary compare with the originals.

- tag the release in the repo (see 8 in building_release_notes.txt)

- Update release_checklist_template.txt and or building_release_notes.txt if necessary.

- Announce the release.
	cocos list
	pyar list
	pyglet list
	
- Congratulate yourself and relax :-)
