This document guides a contributor through creating a release of
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.
Gather all PRs related to milestone
ghpro can be used to extract the pull requests by call the following from nbconvert directory (will ask for an API token the first time):
github-stats --milestone=$VERSION --since-tag $LAST_VERSION --links
Manually categorize tickets
Group the tickets by these general categories (or others if they are relevant). This usually a manual processes to evaluate the changes in each PR.
- New Features
- Fixing Problems
- Testing, Docs, and Builds
Collect major changes
From the tickets write up any major features / changes that deserve a paragraph to describe how they work.
Copy these changes with the new version to the top of changelog.rst. Prior release changelogs can be used to pick formatting of the message.
Check installed tools
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
build/ folders are clean and avoid stale builds from
Create the release
Update the :doc:`changelog <changelog>` to account for all the PRs assigned to this milestone.
Update version number in
.devfrom dev_info. Note that the version may already be on the dev version of the number you're releasing.
Commit and tag the release with the current version number:
git commit -am "release $VERSION" git tag $VERSION
You are now ready to build the
python setup.py sdist python setup.py bdist_wheel
You can now test the
sdistlocally before uploading to PyPI. Make sure to use twine to upload the archives over SSL.
twine upload dist/*
The conda-forge bot will automatically add a PR on your behalf to the nbconvert-feedstock repo. You may want to review this PR to ensure conda-forge will be updated cleanly.
Release the new version
Push directly on main, including --tags separately
git push upstream git push upstream --tags
Return to development state
- If all went well, change the
notebook/_version.pyback by adding the
.devsuffix and moving the version forward to the next patch release number.
Email googlegroup with update letter
Make sure to email firstname.lastname@example.org with the subject line of "[ANN] NBConvert $VERSION -- ..." and include at least the significant changes, contributors, and individual PR notes (if not many significant changes).