-
Notifications
You must be signed in to change notification settings - Fork 62
Guide to Making A Release
This can probably be streamlined and automated...
Steps to follow:
-
Pre-release checklist. Ensure the release notes have what you want in them, ensure all the issues you want closed are closed, all the relevant PRs are merged, check all the tests pass, etc.
- If updating the webbpsf data files, do that using the scripts in webbpsf/dev_utils/master_data_release.sh.
- Unzip the resulting zip file someplace. Manually set $WEBBPSF_DATA_PATH to that. Test that stuff works.
- Update webbpsf/__init__.py to set DATA_VERSION_MIN to that version.
-
Optional: Create release branch and get ready to release, following http://nvie.com/posts/a-successful-git-branching-model/
- Dec 2018 update: I think this is an outdated idea and not necessary right now? We haven’t so far been keeping persistent open branches for each version.
-
Do the following:
- git pull # ensure you have latest master!
- Update version numbers
- in setup.py
- for webbpsf, in the data file download URLs in docs/installation.rst
- PROBABLY UPDATE WEBBPSF’s setup.py TO DEPEND ON LATEST POPPY RELEASE TOO
- python setup.py clean
-
python setup.py sdist
- This makes the ‘sdist’ zip file that will be uploaded to PyPI
-
Test installing from that file and make sure it works
- cd dist
- pip install <name of dist file>
- python
- >>> import poppy
- >>> poppy.__path__, poppy.__version__ # check these are as desired
- >>> poppy.test() # checks functionality of the installed package
- cd ..
-
Tag the release in git:
git commit -m “Release 1.2.3"
git tag -a “v1.2.3"
git push
git push —tags
- Add a release via the Github web interface. See https://help.github.com/articles/creating-releases/
-
Update PyPI
- You need to have accounts on both PyPI and TestPyPI. Register there if you haven't already. An owner (admin) of webbpsf and poppy will need to add you to the list of maintainers there.
- Ensure you have twine installed and set up. See https://pypi.org/project/twine/
- Upload a test file to TestPYPI:
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
- Look at test.pypi.org and verify things seem ok.
- Assuming they are,
twine upload dist/*
-
Readthedocs should automatically build the latest docs from the push to GitHub. But verify this has taken place, and if necessary kick off a manual build.
-
For the astroconda-contrib repository, submit a PR updating the poppy, webbpsf, and webbpsf-data versions appropriately