General release procedure¶
In setup.py, Make sure the version is correct, by checking MAJOR, MINOR and MICRO, and that ‘dev’ is removed from VERSION.
Releases should be made from the master branch. Make sure that Nansat works on all operating systems (Windows, Linux and OS X), with all combinations of python (py27, py35, py36) before releasing.
When you are ready to release a new version, create a tag for the release and push it. The following creates a tag for version 0.6.17 and pushes it.
git tag "v0.6.17" git push origin --tags
Go to https://github.com/nansencenter/nansat/releases and click “Draft a new release”.
Select the tag version you just created, create a release title, for consistency, use the format of Nansat-0.6.17
Write some release notes that describes the changes done in this release.
Releasing on PiPy¶
First, wait until Nansat passes all tests on Travi-CI, Appveyor and Coverals. Then execute:
conda create -n release_nansat -c conda-forge -y python pythesint scipy basemap netcdf4 gdal pillow mock nose urllib3 twine source activate release_nansat python setup.py sdist # Check the dist file that was just created ls dist # Should be a file on this format 'nansat-1.0.20.tar.gz' twine upload dist/nansat-1.0.20.tar.gz
Packaging documentation is found at PyPA Packaging and Distributing Projects
To avoid having to enter password when uploading, you can set $HOME/.pypirc as described in the above link.
Releasing on Anaconda¶
We are releasing Nansat through the conda-forge channel on Anaconda. First, wait until Nansat passes all tests on Travi-CI, Appveyor and Coverals. Then execute:
# install (or update) conda-smithy conda install -n root -c conda-forge conda-smithy git clone email@example.com:conda-forge/nansat-feedstock.git cd nansat-feedstock conda smithy rerender -c auto git push
Information how to use Conda-Smithy can be found at The tool for managing conda-forge feedstocks
Releasing on Docker¶
To build an image with stable version of Nansat you need to build the image and push it to Docker Hub:
# build the base image with conda docker build . -t nansat:conda –target conda # build the image for compiling Nansat docker build . -t nansat:dev –target dev # build the image for distributing Nansat docker build . -t nansat:latest –target latest # find the ide of the nansat:latest image (e.g. bb38976d03cf) docker images # tag the image (bb38976d03cf is the id of the nansat:latest image) docker tag bb38976d03cf akorosov/nansat:latest # authenticate on Docker Hub docker login –username=yourhubusername –firstname.lastname@example.org # push the image to Docker Hub docker push akorosov/nansat:latest