How to make a release

Olivier Grisel edited this page Jul 13, 2017 · 54 revisions
  • Write the changelog (doc/whats_new.rst). Commit counts can be generated using git log <last_release>.. | git shortlog -s -n for sorting by commits or git log ..HEAD | git shortlog -s | cut -c 8- for sorting by names (and not showing commit counts)

  • Fix Milestone issues

  • Compile documentation, make sure all examples compile.

  • Run the tests from the last release to see that all deprecations have been taken care of.

  • Make sure that both travis and appveyor tests pass on master

  • Tag master with X.X-branching

  • Create a new branch X.X. Next step for both branches separately (once for master, once for the release branch)

  • Update the docs to build the new version of the stable website (final release only):

    • Change the version number hardcoded in web page: doc/documentation.rst, and change the links on doc/documentation.rst to "other versions".

    • Add the previous stable to doc/support.rst

    • Change the links inside the menu bar in doc/themes/scikit-learn/layout.html

    • Update the news on doc/index.rst.

  • Change the version number in sklearn/

  • Check on python 2.6, 2.7, 3.4, 3.5, 3.6

  • Tag X.X branch as X.X. (use 'git tag -a' to annotate the tag, it make downstream packager's life easier)

  • Trigger the build of the wheel packages for Linux, Windows and macOS by following the instructions of the readme of the MacPython/scikit-learn-wheels repo and check the results on travis at:

  • Fetch the build artifacts of the release:

    pip install wheelhouse-uploader
    python fetch_artifacts
  • clean the generated docs: cd doc && make clean to avoid including all the images generated for the HTML website in the source distribution (otherwise the generate archive is much to big).

  • then python sdist will create a .tar.gz in the dist/ directory.

  • untar and test it

  • Upload both the tarball and the wheel packages to PyPi with python upload_all (you might need to python register first)

  • hide the old version on the PyPi website

  • Update the mloss page: (right now, Fabian and Andy are the only ones that can do that).

  • remove all deprecated features from dev that are to be removed in the next version.

  • Update the wikipedia page with the latest stable version (should we?)

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.