ipywidgets 5.0

On April 19, 2016, we released ipywidgets 5.0. The ipywidgets package provides interactive HTML & JavaScript widgets (such as sliders, checkboxes, text boxes, charts, and more) for the Jupyter architecture that combine front-end controls coupled to a Jupyter kernel. It also ships a Python implementation of the kernel-side APIs to be used by the IPython kernel.

Altogether, 17 authors contributed to 205 pull requests to make this release.

This release features several major changes and a myriad of smaller changes and bugfixes.

The main change in this release is the split and refactoring of the old package into two packages:
a pure Javascript package, jupyter-js-widgets, published on npm (version 1.0), at https://www.npmjs.com/package/jupyter-js-widgets
the Python backend, ipywidgets.

This separation decouples widget display views from language specific kernel operations of a widget. Kernel authors benefit from being able to more easily implement backends for other language kernels, like R, Julia, Ocaml or Haskell, while at the same time using a stable target version of jupyter-js-widgets. We intend to follow the semantic versioning convention for future releases of jupyter-js-widgets. A runtime compatibility check between frontend and backend is also implemented for user convenience.

The stabilization of Javascript APIs in this release provides a path for custom widget authors to update efficiently to future versions.

Another important new feature, use of Jupyter widgets outside of the notebook context, gives new possibilities for information control and display. Live interactive widgets can now be embedded into static web pages or blogs by inserting an html snippet containing the serialized widget state. This also works with custom widget libraries. See http://jupyter.org/embed-jupyter-widgets.html.

A major change to the Javascript widget code will affect authors of custom Javascript widgets. The Javascript widget code in ipywidgets 5.0 is backward incompatible with previous releases. Three popular custom widget libraries (pythreejs, bqplot, and ipyleaflet) are being released today with the required updates and changes. We can assist authors of Javascript custom widget libraries to make the changes required to migrate their libraries to this new version. Python APIs continue to be backward compatible.

Smaller changes in this release include the addition of a new 'selection slider' and making the layout of interactive widgets on the page much easier.

A more detailed document on the changes is available here:https://github.com/ipython/ipywidgets/wiki/ipywidgets-5.0-Release-Document

Using this release of ipywidgets requires a Jupyter notebook 4.2 installation which uses the notebook's new nbextension installation and enabling features. If you have an older version of the notebook and you upgrade ipywidgets, the ipywidgets upgrade will also install for you an updated version of the notebook.

Thank you to the entire Jupyter and IPython team for making this a possibility. An extra big thank you to Sylvain Corlay for working many late hours and weekends to make this happen.