First, make sure everything is upto date in GitHub.
We are going to call this release version 4.0 and we will have release candidates, starting at rc1
First, create a release on GitHub. Strictly speaking you don’t need to do that but it is a great thing to do.
The PyPi instructions cover this, but I have abstracted out the parts we need to focus on (since we have a setup.py already!) Lets start by ensuring we are upto date (note that I do this as root)
pip3 install --upgrade setuptools wheel
As a regular user we switch back to the PhiSpy directory and build everything. This make a new release that we will upload
python3 setup.py sdist
This will create the tarball and the wheel file in the
dist directory. Then we need to upload those to PyPi.
We are going to use the PyPi test interface to make sure that everything is OK. Do not skip this step!
If you need an API key, navigate to the PyPi login page . However, if you have done this before, you probably don’t need to save it again 😉
python3 -m twine upload --repository testpypi dist/PhiSpy-4.0.0rc1.tar.gz
Note that you can not upload the wheel. Binary wheels from linux are not supported.
Now we are going to test it out. Lets make a virtual environment and install it there
virtualenv test_phispy cd test_phispy source bin/activate which pip
This should tell you that the current pip is from your virtual environment. If it is not, solve that problem!
For PhiSpy, we have a couple of dependencies that you should install with regular
pip before you can install your new release candidate:
pip3 install scikit-learn biopython
This will install other things like
numpy that you need.
Now you can install your new release.
pip install -i https://test.pypi.org/simple/ PhiSpy==4.0.0rc1
If you are not sure exactly the URL, logging into the PyPi test login page will show your available repositories, including the newly uploaded repository. If you click on the version you want, you can get the link to download and install that.
Once you are happy and have run some tests, login to the real PyPi page (good to do anyway, even if you have an API key)
Now you can upload the final version to PyPi for everyone to access
python3 -m twine upload dist/PhiSpy-4.0.0.tar.gz
Its worth logging into the real PyPi page to make sure that you can download it!
Making a CONDA release
It turns out that for PhiSpy all you have to do is wait! The conda bots will take care of incrementing to the next version and running the continuous integration tests for you.