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, commend
+ '-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
.