================
.pypirc samples
================

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)
    >>> from collective.releaser.testing import HOME_DIR

To release a package, just call `make_package_release`::

    >>> from collective.releaser.commands.release import release
    >>> from setuptools.dist import Distribution
    >>> dist = Distribution()
    >>> cmd = release(dist)
    >>> cmd.ensure_finalized()
    >>> cmd.auto = 1
    >>> cmd.run()
    This package is version 0.1
    Raising the version...
    Commiting changes...
    Creating tag...
    ...

It will just create a tag, and
That's the default behavior. We can also have a `.pypirc`
file that can be written in the home folder to give the command
collective.releaser should run::

    >>> conf = """\
    ... [distutils]
    ... index-servers =
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ...
    ... [ingeniweb-private]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     .*
    ...
    ... [ingeniweb-public]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     iw\.*
    ...
    ... [pypi]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     plone\.*
    ...     collective\.*
    ... """
    >>> open(join(HOME_DIR, '.pypirc'), 'w').write(conf)

In that case, we provide a command to run.

Now let's try::

    >>> from collective.releaser.commands.release import release
    >>> from setuptools.dist import Distribution
    >>> dist = Distribution()
    >>> cmd = release(dist)
    >>> cmd.ensure_finalized()
    >>> cmd.auto = True
    >>> cmd.run()
    This package is version 0.2
    Raising the version...
    Commiting changes...
    Creating tag...
    ...
    Running "egg_info -RD mregister sdist mupload -r ingeniweb-private"
    0.3 released

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

    >>> conf = """\
    ... [distutils]
    ... index-servers =
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ...
    ...
    ... [ingeniweb-private]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     \.*
    ...
    ... [ingeniweb-public]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     iw\.*
    ...     my\.package
    ...
    ... [pypi]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     plone\.*
    ...     collective\.*
    ... """
    >>> open(join(HOME_DIR, '.pypirc'), 'w').write(conf)
    >>> cmd.remove_dev_tag = False
    >>> cmd.run()
    This package is version 0.3
    ...
    Running "mregister sdist mupload -r ingeniweb-private"
    Running "mregister sdist mupload -r ingeniweb-public"
    0.4 released

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

    >>> conf = """\
    ... [distutils]
    ... index-servers =
    ...     ingeniweb-private
    ...     ingeniweb-public
    ...     pypi
    ...
    ... glob-style = true
    ...
    ... [ingeniweb-private]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     *
    ...
    ... [ingeniweb-public]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     iw.*
    ...     my.package
    ...
    ... [pypi]
    ... release-command = mregister sdist mupload
    ... release-packages =
    ...     plone.*
    ...     collective.*
    ... """
    >>> open(join(HOME_DIR, '.pypirc'), 'w').write(conf)
    >>> cmd.remove_dev_tag = False
    >>> cmd.run()
    This package is version 0.4
    ...
    Running "mregister sdist mupload -r ingeniweb-private"
    Running "mregister sdist mupload -r ingeniweb-public"
    0.5 released

