spirit.releaser 0.8
Plugins for release automation with zest.releaser.
License: BSD
Keywords: diazo,packaging,releasing

spirit.releaser
===============

``spirit.releaser`` provides several plugins for `zest.releaser`_.
The plugins are registered globally and can be activated if needed.


Available Plugins
=================


Exporting Diazo Themes as ZIP files
-----------------------------------

Plone allows us to upload diazo themes as zip files.
This can be used when we don't have the permission to install our theme on the server as a python package (e.g. within a shared hosting environment).
``spirit.releaser`` provides a hook which is run after the release has been done.
Use the following options in your ``setup.cfg`` to enable the ZIP file export::

    [spirit.releaser]
    diazo_export.enabled = true
    diazo_export.path = src/my/package/theme
    diazo_export.adjust_title = true
    diazo_export.adjust_theme_version = true
    diazo_export.theme_name = mypackage
    diazo_export.exclude =
        node_modules
        _less

diazo_export.adjust_title
    Append the version number of the package to the title in the zipped ``manifest.cfg`` file.

diazo_export.adjust_theme_version
    Add or update the ``theme_version`` parameter with the current version number of the package.

diazo_export.enabled
    Activate or deactivate the export.
    It can be used in the default and multi-theme settings.

diazo_export.exclude
    Exclude the listed folders/files from the diazo export.

diazo_export.multi
    Define multiple subsections for diazo themes.
    Multi-theme sections must start with `spirit.releaser:`, followed by the identifier for that theme.

diazo_export.path
    Path relative from the package root to the folder containing the diazo resource files.
    It can be used in the default and multi-theme settings.

diazo_export.theme_name
    Add a custom name for the theme folder and exported zip file.
    Use this is you have a different name (id) for your theme, e.g. 'mypackage' instead of 'my.package'.
    It can be used in the default and multi-theme settings.

To export more than one diazo theme from a package you can use the `diazo_export.multi` option::

    [spirit.releaser]
    diazo_export.multi =
        theme
        custom
    diazo_export.enabled = true
    diazo_export.adjust_title = true
    diazo_export.adjust_theme_version = true

    [spirit.releaser:theme]
    diazo_export.path = src/my/package/theme
    diazo_export.theme_name = mypackage

    [spirit.releaser:custom]
    diazo_export.path = src/my/package/theme-custom
    diazo_export.theme_name = mypackage-custom


Installation
============

Use in a buildout
-----------------

::

    [buildout]
    parts += releaser

    [releaser]
    recipe = zc.recipe.egg:scripts
    dependent-scripts = true
    eggs =
        spirit.releaser
        my.package

If you want to use the latest development version from GitHub, add ``spirit.releaser`` to your ``mr.developer`` source section::

    [buildout]
    extensions += mr.developer

    [sources]
    spirit.releaser = git git@github.com:it-spirit/spirit.releaser.git


This creates the ``zest.releaser`` executables in your bin-directory.
Create a release as you're used to::

    $ ./bin/fullrelease


Installation in a virtualenv
----------------------------

You can also install ``spirit.releaser`` in a virtualenv.::

    $ pip install spirit.releaser

You can also install the latest version of ``spirit.releaser`` directly from GitHub::

    $ pip install -e git+git@github.com:it-spirit/spirit.releaser.git#egg=spirit.releaser

Now you can use it like this (when releasing your package)::

    $ fullrelease


.. _`zest.releaser`: http://zestreleaser.readthedocs.org/en/latest/


Changelog
=========

0.8 (2019-12-02)
----------------

- Fix open mode.
- Python3 compatibility.


0.7.1 (2017-11-30)
------------------

- Set correct initial value for exclude list.
  [tmassman]


0.7 (2017-11-20)
----------------

- Add support for multiple diazo themes in one package.
  [tmassman]
- Add support for excluding files/folders from zipped diazo themes.
  [tmassman]


0.6.2 (2017-11-03)
------------------

- Use correct version number within a release.
  [tmassman]


0.6.1 (2017-11-03)
------------------

- Set correct folder name before doing zip export.
  [tmassman]


0.6 (2017-10-31)
----------------

- Add postrelease hook to change 'theme_version' param back to development version.
  [tmassman]
- Add option 'diazo_export.theme_name' to adjust the theme name if this one is different from the package name.
  [tmassman]


0.5.1 (2017-10-11)
------------------

- Fix return value check.
  [tmassman]


0.5 (2017-10-11)
----------------

- Add new prerelease hook to update the 'theme_version' param.
  [tmassman]


0.4 (2017-10-03)
----------------

- Save zip file in parent directory.
  [tmassman]
- Add option to update the 'theme_version' param.
  [tmassman]


0.3 (2017-10-03)
----------------

- Change directory again after file has been created.
  [tmassman]


0.2 (2016-12-21)
----------------

- Added console script to only release diazo theme as zip.
  [tmassman]


0.1 (2015-11-23)
----------------

- Initial release.
  [tmassman]