Developer Release Procedure

To release a new version of the widgets on PyPI and npm, first checkout master and cd into the repo root. Make sure the version of jupyter-js-widgets matches the semver range __frontend_version__ specified in ipywidgets/

Publish jupyter-js-widgets

# nuke the  `dist` and `node_modules`
git clean -fdx
npm version [patch/minor/major]
npm install
npm publish --tag next


Edit package.json to point to new jupyter-js-widgets version npm version [patch/minor/major]

Edit widgetsnbextension/ (Remove dev from the version. If it’s the first beta, use b1, etc...)

python sdist
python bdist_wheel --universal
twine upload dist/*


Edit the package.json to have jupyter-js-widgets point to the correct version.

npm version patch/minor/major
npm install
npm run build
npm publish
python sdist
python bdist_wheel --universal
twine upload dist/*


edit ipywidgets/ (remove dev from the version and update the frontend version requirement to match the one of jupyter-js-widgets)

Change install_requires parameter to point to new widgetsnbextension version

python sdist
python bdist_wheel --universal
twine upload dist/*

Push changes back

commit and tag (ipywidgets) release

Back to dev

edit ipywidgets/ (increase version and add dev tag)
edit widgetsnbextension/widgetsnbextension/ (increase version and add dev tag)
git add ipywidgets/
git add widgetsnbextension/widgetsnbextension/
git commit -m "Back to dev"
git push [upstream master]
git push [upstream] --tags

On GitHub

  1. Go to and click “Close” for the released version.
  2. Make sure patch, minor, and/or major milestones exist as appropriate.