Making an nbconvert release

This document guides a contributor through creating a release of nbconvert.

Assign all merged PRs to milestones

Go to GitHub and assign all PRs that have been merged to milestones. This will be helpful when you update the changelog. If you go to this GitHub page you will find all the PRs that currently have no milestones.

Check installed tools

Review CONTRIBUTING.md, particularly the testing and release sections.

Clean the repository

You can remove all non-tracked files with:

git clean -xfdi

This would ask you for confirmation before removing all untracked files.

Make sure the dist/ folder is clean and avoid stale builds from previous attempts.

Create the release

  1. Update the changelog to account for all the PRs assigned to this milestone.

  2. Update version number in notebook/_version.py.

  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
    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/*
    

Release the new version

Push directly on master, including –tags separately

git push upstream
git push upstream --tags

Update nbviewer

On nbviewer-deploy run invoke trigger_build and then once it’s built on dockerhub run invoke doitall.

Return to development state

If all went well, change the notebook/_version.py back adding the
.dev suffix.