=========
releasing
=========

Let's set the curdir to the package we work on, because releaser uses
the current working directory to work::

    >>> import os
    >>> os.chdir(package_dir)

To release a package, just call make_package_release::

    >>> from collective.releaser.commands import make_package_release
    >>> make_package_release(auto=True)
    This package is version 0.1
    Raising the version...
    Commiting changes...
    Creating tag...
    ...

That's the default behavior. We also have a `iw-releaser.cfg` 
file that can be written in the home folder to give the command 
collective.releaser should run::

    >>> conf = """\
    ... [release]
    ... commands = 
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ...
    ...
    ... [ingeniweb-private]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     .*
    ...
    ... [ingeniweb-public]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     iw.*
    ...
    ... [pypi]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     plone.*
    ...     collective.*
    ... """
    >>> from collective.releaser.commands import CONF_FILE 
    >>> open(join(package_dir, CONF_FILE), 'w').write(conf)

Now let's try::

    >>> make_package_release(auto=True)
    This package is version 0.2
    Raising the version...
    Commiting changes...
    Creating tag...
    ...
    Running "mregister sdist bdist_egg mupload -r ingeniweb-private"
    0.3 released 

Again, should be pushed in two repos. Let's try with regexps::

    >>> conf = """\
    ... [release]
    ... commands = 
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ...
    ...
    ... [ingeniweb-private]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     \.*
    ...
    ... [ingeniweb-public]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     iw\.*
    ...     my\.package     
    ...
    ... [pypi]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     plone\.*
    ...     collective\.*
    ... """
    >>> from collective.releaser.commands import CONF_FILE 
    >>> open(join(package_dir, CONF_FILE), 'w').write(conf)
    >>> make_package_release(auto=True)
    This package is version 0.3
    ...    
    Running "mregister sdist bdist_egg mupload -r ingeniweb-private"
    Running "mregister sdist bdist_egg mupload -r ingeniweb-public"
    0.4 released

Now let's try to use glob-style patterns::

    >>> conf = """\
    ... [release]
    ... commands = 
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ... 
    ... glob-style = true
    ...
    ... [ingeniweb-private]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     *
    ...
    ... [ingeniweb-public]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     iw.*
    ...     my.package     
    ...
    ... [pypi]
    ... command = mregister sdist bdist_egg mupload
    ... packages = 
    ...     plone.*
    ...     collective.*
    ... """
    >>> from collective.releaser.commands import CONF_FILE 
    >>> open(join(package_dir, CONF_FILE), 'w').write(conf)
    >>> make_package_release(auto=True)
    This package is version 0.4
    ...    
    Running "mregister sdist bdist_egg mupload -r ingeniweb-private"
    Running "mregister sdist bdist_egg mupload -r ingeniweb-public"
    0.5 released


