Maintenance information
=======================

.. note::

   This is internal documentation for Zope developers having
   to create official Zope releases.

Release process
---------------

Maintainers
+++++++++++

The following persons have access to the ``Zope2`` package on PyPI
(in order to release new versions):

- Hanno Schlichting
- Michael Howitz
- Tres Seaver

Steps for creating a new Zope release
+++++++++++++++++++++++++++++++++++++

- Check the versions.cfg file for outdated or updated
  packages and update version information where necessary.

- Update version information:

  - setup.py (remove dev postfix)
  - versions-prod.cfg (pin Zope2)
  - requirements-full.txt (pin Zope2)

- The requirements-full.txt is autogenerated on each bin/buildout run.
  So instead of manually adjusting it, you can update versions-prod.cfg
  and then run bin/buildout once.

- Update docs/CHANGES.rst with a release date.

- Run all tests::

   bin/tox

- Run all tests for all dependencies::

   bin/alltests-py27
   bin/alltests-py34
   ...
   bin/alltests-pypy3

- Tag the release.

- Upload the tagged release to PyPI::

    python2.7 setup.py egg_info -RDb '' sdist register upload

- Update version information:

  - setup.py (bump version number, add dev postfix)
  - versions-prod.cfg (remove Zope2 pin)
  - requirements-full.txt (replace Zope2 pin by git reference, either manually
    or run bin/buildout).

- Check the visible releases on readthedocs.org at (should default to
  showing the active branches)::

    https://readthedocs.org/dashboard/zope/versions/
