zestsoftware / zest.releaser

Python software releasing made easy and repeatable
https://zestreleaser.readthedocs.io
GNU General Public License v2.0
199 stars 62 forks source link

Package releasing made easy: zest.releaser overview and installation

zest.releaser is collection of command-line programs to help you automate the task of releasing a Python project.

It does away with all the boring bits. This is what zest.releaser automates for you:

Most important URLs

First the three most important links:

Compatibility / Dependencies

.. image:: https://img.shields.io/pypi/pyversions/zest.releaser? :alt: PyPI - Python Version .. image:: https://img.shields.io/pypi/implementation/zest.releaser? :alt: PyPI - Implementation

zest.releaser works on Python 3.8+, including PyPy3. Tested until Python 3.11, but see tox.ini for the canonical place for that.

To be sure: the packages that you release with zest.releaser may very well work on other Python versions: that totally depends on your package.

We depend on:

Since version 4.0 there is a recommended extra that you can get by installing zest.releaser[recommended] instead of zest.releaser. It contains a few trusted add-ons that we feel are useful for the great majority of zest.releaser users:

.. wheel: https://pypi.org/project/wheel .. check-manifest: https://pypi.org/project/check-manifest .. _pyroma: https://pypi.org/project/pyroma .. _readme_renderer: https://pypi.org/project/readme_renderer

Installation

Just a simple pip install zest.releaser or easy_install zest.releaser is enough. If you want the recommended extra utilities, do a pip install zest.releaser[recommended].

Alternatively, buildout users can install zest.releaser as part of a specific project's buildout, by having a buildout configuration such as::

[buildout]
parts =
    scripts

[scripts]
recipe = zc.recipe.egg
eggs = zest.releaser[recommended]

Version control systems: git

Of course you must have a version control system installed. Since version 7, zest.releaser only supports git.

If you use Subversion (svn), Mercurial (hg), Git-svn, or Bazaar (bzr), please use version 6. If you really want, you can probably copy the relevant parts from the old code to a new package, and release this as an add-on package for zest.releaser. I suspect that currently it would only work with a monkey patch. If you are planning something, please open an issue, and we can see about making this part pluggable.

Available commands

Zest.releaser gives you four commands to help in releasing python packages. They must be run in a version controlled checkout. The commands are:

Note: markdown files should use the "underline" style of headings, not the "atx" style where you prefix the headers with # signs.

There are some additional tools: