diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000..1ee399b --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,64 @@ +# Release Checklist + +- [ ] Get master to the appropriate code release state. + [Travis CI](https://travis-ci.org/hugovk/humanize) and + [GitHub Actions](https://github.com/jmoiron/humanize/actions) should be running + cleanly for all merges to master. + [![Build Status](https://travis-ci.org/hugovk/humanize.svg?branch=master)](https://travis-ci.org/hugovk/humanize) + [![GitHub Actions status](https://github.com/jmoiron/humanize/workflows/Test/badge.svg)](https://github.com/jmoiron/humanize/actions) + +https://github.com/hugovk/pypistats/commit/801ed41823e96e2511444dac4dfceb3bdcb37201#diff-60cd2f42437b5cb3c2c09391a6f4c54a + +* [ ] Start from a freshly cloned repo: + +```bash +cd /tmp +git clone https://github.com/jmoiron/humanize +cd humanize +``` + +* [ ] (Optional) Create a distribution and release on **TestPyPI**: + +```bash +pip install -U pip setuptools wheel twine keyring +rm -rf build +python3 setup.py sdist --format=gztar bdist_wheel +twine check dist/* +twine upload --repository-url https://test.pypi.org/legacy/ dist/humanize-1.0.0* +``` + +- [ ] (Optional) Check **test** installation: + +```bash +pip uninstall -y humanize +pip install -U -i https://test.pypi.org/simple/ humanize +``` + +* [ ] Tag with the version number: + +```bash +git tag -a 1.0.0 -m "Release 1.0.0" +``` + +* [ ] Create a distribution and release on **live PyPI**: + +```bash +pip install -U pip setuptools wheel twine keyring +rm -rf build +python3 setup.py sdist --format=gztar bdist_wheel +twine check dist/* +twine upload -r pypi dist/humanize-1.0.0* +``` + +* [ ] Check installation: + +```bash +pip uninstall -y humanize +pip install -U humanize +``` + +* [ ] Push tag: + ```bash +git push --tags +``` +* [ ] Edit GitHub release: https://github.com/jmoiron/humanize/releases