Release process
***************

This is the release process for agate:

1. Verify all unit tests pass with fresh environments: "tox -r".

2. Verify 100% test coverage: "nosetests --with-coverage tests".

3. Ensure any new modules have been added to setup.py’s "packages"
   list.

4. Ensure any new public interfaces have been added to the
   documentation.

5. Ensure TableSet proxy methods have been added for new Table
   methods.

6. Make sure the example script still works: "python example.py".

7. Ensure "python charts.py" works and has been run recently.

8. Ensure "CHANGELOG.rst" is up to date. Add the release date and
   summary.

9. Create a release tag: "git tag -a x.y.z -m "x.y.z release.""

10. Push tags upstream: "git push --tags"

11. If this is a major release, merge "master" into "stable": "git
    checkout stable; git merge master; git push"

12. Upload to PyPI: "python setup.py sdist bdist_wheel upload".

13. Flag the release to build on RTFD.

14. Update the “default version” on RTFD to the latest.

15. Rev to latest version: "docs/conf.py", "docs/tutorial.rst",
    "setup.py", "CHANGELOG.rst" need updates.

16. Find/replace "en/[old version]" to "en/[new version]" in
    "tutorial.ipynb".

17. Commit revision: "git commit -am "Update to version x.y.z for
    development."".
