HOW TO MANAGE A NEW RELEASE =========================== This file is intended for the project's maintainers and it describes how to update, build and upload a new release. SEMANTIC VERSIONING ------------------- The tqdm repository managers should regularly bump the version number in the VERSION file to follow the [Semantic Versioning](http://semver.org/) convention. Tools can be used to automate this process, such as [bumpversion](https://github.com/peritus/bumpversion) or [python-semanticversion](https://github.com/rbarrois/python-semanticversion/) to automate this task. The managers should take care of this instead of users to avoid PR conflicts solely due to the VERSION file bumping. CHECKING SETUP.PY ----------------- To check that the setup.py is OK for PyPi (eg, version number, reStructuredText in README.rst intelligible for PyPi, which uses a awkward RST lib, etc.) you can use the following command to make sure everything's ok: ``` python setup.py check --restructuredtext --strict ``` Also, if you happen to mistakenly upload a broken release to PyPi, you can fix the metadata by using: `python setup.py register`. BUILDING A RELEASE AND UPLOADING TO PYPI ---------------------------------------- First, check `setup.py` and `MANIFEST.in`, which define the packaging process and info that will be uploaded to [pypi](pypi.python.org). Check the result by using the following commands: ``` python setup.py develop --uninstall python setup.py develop ``` Secondly, build tqdm into a distributable python package: ``` python setup.py sdist --formats=gztar,zip bdist_wininst --plat-name=win32 python setup.py sdist bdist_wheel --plat-name=win32 ``` This will generate several builds in the `dist/` folder. Finally, we can upload everything to pypi. Uploading to pypi can be done easily using the [twine](https://github.com/pypa/twine) module: ``` twine upload dist/* ``` NOTE: - you can also test on the pypi test servers `testpypi.python.org/pypi` before the real deployment - in case of a mistake, you can delete an uploaded release on pypi, but you cannot re-upload another with the same version number! - in case of a mistake in the metadata on pypi (like the long description README getting garbled because of a silent error), you can use the following command to update the metadata: `python setup.py register` Also, the new release can be added to the Github by creating a new release from the web interface.