================
Project release
================

this module releases a buildout, by copying the current one
into a release branch and making a few changes over the .cfg files.

Let's release our buildoutn located in tests::

    >>> buildout_folder = os.path.join(test_dir, 'data', 'buildout')
    >>> import os
    >>> os.chdir(buildout_folder)

Let's release it::

    >>> from project import make_release

    >>> make_release('0.1', release=False, verbose=True)
    svn path was existing, removed
    copied http://xxx/my.package/trunk to http://xxx/my.package/releases/0.1
    Added version file to buildout.

You can also release more than one egg at once::

    >>> eggs_folder = os.path.join(test_dir, 'eggs')
    >>> os.chdir(eggs_folder)

    >>> from project import release_eggs
    >>> eggs = release_eggs(version='0.1', filter_eggs=['collective.*'], verbose=True)
    Running python setup.py release -a --version=0.1
    Running python setup.py release -a --version=0.1
    
    >>> eggs = release_eggs(version='0.2', filter_eggs=['my.*', 'collective.test'], verbose=True)
    Running python setup.py release -a --version=0.2
    Running python setup.py release -a --version=0.2
    
If you are in a collective.releaser project you can run the command in your buildout::

    >>> buildout_folder = os.path.join(test_dir, 'eggs', 'buildout')
    >>> os.chdir(buildout_folder)

    >>> from project import release_eggs
    >>> eggs = release_eggs(version='0.3', interactive=False, verbose=True)
    - collective.test=0.5
    - collective.test1=0.3
    - my.test=0.3
    Is your prod.cfg up to date ? [Y/n] 
    Running python setup.py release -a --version=0.3
    <BLANKLINE>
    Running python setup.py release -a --version=0.3
    <BLANKLINE>
    collective.test is already at version 0.5. skipping

