How to Make a Release¶
Make sure ProDy imports and passes all unit tests both Python 2 and Python 3, and using nose nosetests command:
$ cd ProDy $ nosetests $ nosetests3
See Testing ProDy for more on testing.
Update the version number in:
prody/__init__.py
./PKG-INFO
Also, comment
+ '-dev'
out, so that documentation will build for a stable release.Update the most recent changes and the latest release date in:
docs/release/vX.Y_series.rst
.
If there is a new incremental release, start a new file.
Make sure the following files are up-to-date.
README.txt
MANIFEST.in
setup.py
If there is a new file format, that is a new extensions not captured in
MANIFEST.in
, it should be included.If there is a new C extension, it should be listed in
setup.py
.After checking these files, commit change and push them to GitHub.
Generate the source distributions:
$ cd .. $ python setup.py sdist --formats=gztar,zip
Prepare and test Python Wheels on Windows (see Making Windows Installers).
Wheels should be prepared for the following versions of Python:
$ C:\Python27\python setup.py bdist_wheel $ C:\Python35\python setup.py bdist_wheel $ C:\Python36\python setup.py bdist_wheel
Alternatively, use bdist_wheel.bat to run these commands. When there is a newer Python major release, it should be added to this list. Don’t forget to pull most recent changes to your Windows machine.
A good practice is installing ProDy using all newly created installers and checking that it works. ProDy script can be used to check that, e.g.:
$ C:\Python33\Scripts\prody.bat anm 1ubi
If this command runs for all supported Python versions, release is good to go.
Put all installation source and executable in dist directory.
Upload the new release files to the PyPI using twine (NOTE: this step is irreversible! If there were to be a change to ProDy after this step, then it needs to be prepared as a whole new release):
$ twine upload dist/*
This will offer a number of options. ProDy on PyPI is owned by user
prody.devel
.Commit final changes, if there are any:
$ cd .. $ git commit -a
Tag the repository with the current version number and push new tag:
$ git tag vX.Y $ git push --tags
Rebase
devel
branch tomaster
:$ git checkout master $ git rebase devel $ git push
Update the documentation on ProDy website. See Documenting ProDy.
Now that you made a release, you can go back to development. You may start with appending
'-dev'
to__release__
inprody/__init__.py
.