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. You’ ll 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.