lemur/docs/doing-a-release.rst

87 lines
3.1 KiB
ReStructuredText
Raw Permalink Normal View History

2015-12-01 18:15:53 +01:00
Doing a release
===============
2021-03-12 20:49:17 +01:00
Doing a release of ``lemur`` is now mostly automated and consists of the following steps:
2015-12-01 18:15:53 +01:00
2021-03-12 20:49:17 +01:00
* Raise a PR to add the release date and summary in the :doc:`/changelog`.
* Merge above PR and create a new `Github release <https://github.com/Netflix/lemur/releaes>`_: set the tag starting with v, e.g., v0.9.0
The `publish workflow <https://github.com/Netflix/lemur/actions/workflows/lemur-publish-release-pypi.yml>`_ uses the git
tag to set the release version.
The following describes the manual release steps, which is now obsolete:
Manually Bumping the version number
2021-03-12 21:10:38 +01:00
-----------------------------------
2015-12-01 18:15:53 +01:00
The next step in doing a release is bumping the version number in the
software.
* Update the version number in ``lemur/__about__.py``.
* Set the release date in the :doc:`/changelog`.
2020-11-17 00:27:17 +01:00
* Do a commit indicating this, and raise a pull request with this.
2015-12-01 18:15:53 +01:00
* Wait for it to be merged.
2021-03-12 20:49:17 +01:00
Manually Performing the release
2021-03-12 21:10:38 +01:00
-------------------------------
2015-12-01 18:15:53 +01:00
The commit that merged the version number bump is now the official release
2020-11-17 00:27:17 +01:00
commit for this release. You need an `API key <https://pypi.org/manage/account/#api-tokens>`_,
which requires permissions to maintain the Lemur `project <https://pypi.org/project/lemur/>`_.
2015-12-01 18:15:53 +01:00
2020-11-17 01:31:50 +01:00
For creating the release, follow these steps (more details `here <https://packaging.python.org/tutorials/packaging-projects/#generating-distribution-archives>`_)
* Make sure you have the latest versions of setuptools and wheel installed:
``python3 -m pip install --user --upgrade setuptools wheel``
* Now run this command from the same directory where setup.py is located:
``python3 setup.py sdist bdist_wheel``
* Once completed it should generate two files in the dist directory:
.. code-block:: pycon
$ ls dist/
lemur-0.8.0-py2.py3-none-any.whl lemur-0.8.0.tar.gz
* In this step, the distribution will be uploaded. Youll need to install Twine:
2020-11-17 00:27:17 +01:00
``python3 -m pip install --user --upgrade twine``
2020-11-17 01:31:50 +01:00
* Once installed, run Twine to upload all of the archives under dist. Once installed, run Twine to upload all of the archives under dist:
2020-11-17 00:27:17 +01:00
``python3 -m twine upload --repository pypi dist/*``
2015-12-01 18:15:53 +01:00
2020-11-17 01:31:50 +01:00
The release should now be available on `PyPI Lemur <https://pypi.org/project/lemur/>`_ and a tag should be available in
2015-12-01 18:15:53 +01:00
the repository.
2020-11-17 01:31:50 +01:00
Make sure to also make a github `release <https://github.com/Netflix/lemur/releases>`_ which will pick up the latest version.
2015-12-01 18:15:53 +01:00
Verifying the release
---------------------
You should verify that ``pip install lemur`` works correctly:
.. code-block:: pycon
>>> import lemur
>>> lemur.__version__
'...'
Verify that this is the version you just released.
Post-release tasks
------------------
* Update the version number to the next major (e.g. ``0.5.dev1``) in
``lemur/__about__.py`` and
* Add new :doc:`/changelog` entry with next version and note that it is under
active development
* Send a pull request with these items
* Check for any outstanding code undergoing a deprecation cycle by looking in
``lemur.utils`` for ``DeprecatedIn**`` definitions. If any exist open
a ticket to increment them for the next release.