# Making a release as a maintainer

This document guides a maintainer through creating a release of the Jupyter console.

## Clean the repository

Remove all non-tracked files with:

    git clean -xfdi

This will ask you for confirmation before removing all untracked files. Make sure the `dist/` folder is clean and does not contain any stale builds from previous attempts.

## Create the release

1. Set Environment variables

   > Set environment variables to document current release version, and git tag:

   >     VERSION=4.1.0

2. Update version number in `jupyter_console/_version.py`. Make sure that a valid PEP 440 version is being used.

3. Commit and tag the release with the current version number:

       git commit -am "release $VERSION"
       git tag $VERSION

4. You are now ready to build the `sdist` and `wheel`:

       python setup.py sdist --formats=gztar
       python setup.py bdist_wheel

5. You can now test the `wheel` and the `sdist` locally before uploading to PyPI. Make sure to use twine to upload the archives over SSL.

       twine upload dist/*

6. If all went well, change the `jupyter_console/_version.py` to the next release.

7. Push directly on master, not forgetting to push `--tags` too.