<commit_before>.. vim: set filetype=rst

===========================
How to make a khmer release
===========================

<NAME> is the current release maker. This is his checklist.

#. The below should be done in a clean checkout::

        cd `mktemp -d`
        git clone <EMAIL>:ged-lab/khmer.git
        cd khmer

#. (Optional) Check for updates to ``ez_setup.py`` and versioneer::

        wget -N https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
        wget -N https://raw.github.com/warner/python-versioneer/master/versioneer.py
        git diff ez_setup.py
        
        git add ez_setup.py
        git commit -m "new version of ez_setup.py"
        # or
        git checkout -- ez_setup.py
        git diff versioneer.py
        
        git add versioneer.py
        ./setup.py update_files
        git commit -m "new version of versioneer.py"
        # or
        git checkout -- versioneer.py

#. Review the git logs since the last release and diffs (if needed) and ensure
   that the ``Changelog`` is up to date::

        git log --minimal --patch `git describe --tags --always --abbrev=0`..HEAD

#. Review the issue list for any new bugs that will not be fixed in this
   release. Add them to ``doc/known-issues.txt``

#. Verify that the build is clean: http://ci.ged.msu.edu/job/khmer-multi/

#. Tag the branch with the release candidate version number prefixed by the
   letter 'v'::

        new_version=0.8
        git tag v${new_version}-rc1

#. Test the release candidate. Bonus: repeat on Mac OS X::

        virtualenv testenv1
        virtualenv testenv2
        virtualenv testenv3
        # Does the tag work?
        
        cd testenv1
        source bin/activate
        git init git+https://github.com/ged-lab/khmer.git
        git checkout v${new_version}-rc1
        make test
        
        # What about from pip?
        
        cd testenv2
        source bin/activate
        pip install -e git+https://github.com/ged-lab/khmer.git@v${new_version}-rc1#egg=khmer
        cd khmer* 
        make dist
        cp dist/khmer* ../../testenv3
        
        # Is the distribution in testenv2 complete enough to build another
        # functional distribution?
        
        cd ../../testenv3
        source bin/activate
        pip install khmer*
        tar xzf khmer*
        cd khmer*<commit_msg>push release canditate tag too<commit_after>.. vim: set filetype=rst

===========================
How to make a khmer release
===========================

<NAME> is the current release maker. This is his checklist.

#. The below should be done in a clean checkout::

        cd `mktemp -d`
        git clone <EMAIL>:ged-lab/khmer.git
        cd khmer

#. (Optional) Check for updates to ``ez_setup.py`` and versioneer::

        wget -N https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
        wget -N https://raw.github.com/warner/python-versioneer/master/versioneer.py
        git diff ez_setup.py
        
        git add ez_setup.py
        git commit -m "new version of ez_setup.py"
        # or
        git checkout -- ez_setup.py
        git diff versioneer.py
        
        git add versioneer.py
        ./setup.py update_files
        git commit -m "new version of versioneer.py"
        # or
        git checkout -- versioneer.py

#. Review the git logs since the last release and diffs (if needed) and ensure
   that the ``Changelog`` is up to date::

        git log --minimal --patch `git describe --tags --always --abbrev=0`..HEAD

#. Review the issue list for any new bugs that will not be fixed in this
   release. Add them to ``doc/known-issues.txt``

#. Verify that the build is clean: http://ci.ged.msu.edu/job/khmer-multi/

#. Tag the branch with the release candidate version number prefixed by the
   letter 'v'::

        new_version=0.8
        git tag v${new_version}-rc1
        git push --tags <EMAIL>:ged-lab/khmer.git

#. Test the release candidate. Bonus: repeat on Mac OS X::

        virtualenv testenv1
        virtualenv testenv2
        virtualenv testenv3
        # Does the tag work?
        
        cd testenv1
        source bin/activate
        git init git+https://github.com/ged-lab/khmer.git
        git checkout v${new_version}-rc1
        make test
        
        # What about from pip?
        
        cd testenv2
        source bin/activate
        pip install -e git+https://github.com/ged-lab/khmer.git@v${new_version}-rc1#egg=khmer
        cd khmer* 
        make dist
        cp dist/khmer* ../../testenv3
        
        # Is the distribution in testenv2 complete enough to build another
        # functional distribution?
        
        cd ../../testenv3
        source bin/activate
        pip install khmer*
        tar xzf khmer*
        cd khmer*
{'fraction_non_alphanumeric': 0.1098350386301942, 'fraction_numerical': 0.005846732094382961, 'mean_word_length': 1.986284289276808, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3658419', 'n_tokens_mistral': 1464, 'n_tokens_neox': 1381, 'n_words': 481}