How to make a new release of ``skimage`` ======================================== - Check ``TODO.txt`` for any outstanding tasks. - Update release notes. 1. Review and cleanup ``doc/release/release_dev.txt`` - To show a list of merges and contributors, run ``doc/release/contribs.py ``. 2. Rename to ``doc/release/release_X.txt`` 3. Copy ``doc/release/release_template.txt`` to ``doc/release/release_dev.txt`` for the next release. - Update the version number in ``skimage/__init__.py`` and ``bento.info`` and commit - Update the docs: - Edit ``doc/source/_static/docversions.js`` and commit - Build a clean version of the docs. Run ``python setup.py install`` in the root dir, then ``rm -rf build; make html`` in the docs. - Build using ``make gh-pages``. - Update the symlink to ``stable``. - Push upstream: ``git push origin gh-pages`` in ``doc/gh-pages``. - Add the version number as a tag in git:: git tag -s v0.X.0 (If you do not have a gpg key, use -m instead; it is important for Debian packaging that the tags are annotated) - Push the new meta-data to github:: git push --tags origin master - Publish on PyPi:: python setup.py register python setup.py sdist upload Go to https://travis-ci.org/scikit-image/scikit-image-wheels, select the "Current" tab, and click (on the right) on the "Restart Build" icon. After the wheels become available at http://wheels.scikit-image.org/ (approx 15 mins), execute ``tools/osx_wheel_upload.sh``. Note that, if you rebuild the same wheels, it can take up to 15 minutes for the the files in the http directory to update to the versions that Travis-CI uploaded. You may want to check the timestamps in the http directory listing to check that you will get the latest version. - Increase the version number - In ``setup.py``, set to ``0.Xdev``. - In ``bento.info``, set to ``0.X.dev0``. - Update the web frontpage: The webpage is kept in a separate repo: scikit-image-web - Sync your branch with the remote repo: ``git pull``. If you try to ``make gh-pages`` when your branch is out of sync, it creates headaches. - Add release date to ``index.rst`` under "Announcements". - Add previous stable version documentation path to disallowed paths in `robots.txt` - Build using ``make gh-pages``. - Push upstream: ``git push origin master`` in ``gh-pages``. - Update the development docs for the new version ``0.Xdev`` just like above - Post release notes on mailing lists, blog, G+, etc. - scikit-image@googlegroups.com - scipy-user@scipy.org - scikit-learn-general@lists.sourceforge.net - pythonvision@googlegroups.com Debian ------ - Tag the release as per instructions above. - git checkout debian - git merge v0.x.x - uscan <- not sure if this step is necessary - Update changelog (emacs has a good mode, requires package dpkg-dev-el) - C-C C-v add new version, C-c C-c timestamp / save - git commit -m 'Changelog entry for 0.x.x' - git-buildpackage -uc -us -rfakeroot - Sign the changes: debsign skimage_0.x.x-x_amd64.changes - cd ../build-area && dput mentors skimage_0.x.x-x_amd64.changes - The package should now be available at: http://mentors.debian.net/package/skimage For the last lines above to work, you need ``~/.gbp.conf``:: [DEFAULT] upstream-tag = %(version)s [git-buildpackage] sign-tags = True export-dir = ../build-area/ tarball-dir = ../tarballs/ As well as ``~/dput.cf``:: [mentors] fqdn = mentors.debian.net incoming = /upload method = http allow_unsigned_uploads = 0 progress_indicator = 2 # Allow uploads for UNRELEASED packages allowed_distributions = .*