Skip to content

ipywidgets 5.0 Release Document

Jonathan Frederic edited this page Jan 21, 2016 · 9 revisions

What’s New?

This release of ipywidgets focuses heavily on the Javascript portion of the widget framework, decoupling the widgets from the notebook frontend. It is now possible to embed widgets in a non-notebook context. Not only that, but said widgets can be made “live” (connected to a kernel) by integrating them with jupyter-js-services. The goal of these features is to enable complex widgets to be made into standalone applications.

Changes have been made to the backend to reduce the surface area of the API. More specifically, most of the widget styling API as it existed in 4.x has be deprecated in favor of a new API, the Layout API, where every widget has a mutable instance of a Layout object that allows box and flex box model attributes to be set on the widget. The reason for minimizing the API is to prepare for the “Small Split” (ipywidgets 6.0), in which the Javascript will be separated from the Python and then refactored and released as “jupyter-js-widgets” on NPM.

Additionally, widget alignment and styling has been improved.

Migration to ipywidgets 5.0

Most of the widget code from the ipywidgets 4.x series should still work in ipywidgets 5.0. However, much of the API has been deprecated and using it will invoke noisey warning messages.

  • For IPython 3.x widgets to ipywidgets 4.x (the first standalone release of the widgets), see this wiki page
  • For IPython 2.x widgets to IPython 3.x widget, see this wiki page

User Focused

TODO

Widget Author Focused

TODO

Kernel Author Focused

TODO

Release Statistics

TODO

Index of Pull Requests

#288 Interact API support for selection widgets
#286 Fix issues with shorthand css properties
#285 Hyphen-separated css attribute names and flexbox
#284 Call base ctor
#283 Updated docs on running tests in README
#282 Fix checkbox design
#278 Alleviate silent install failure problems
#276 some docstrings docs
#273 Create Sphinx documentation for project
#272 Style changes
#271 Bring back on_some_change
#270 Notify front-end first
#268 Remaining require("ipywidget")
#266 WidgetModel.super.constructor should be called last
#265 Remove skipStateRequest attribute and switch to comm-less models
#264 Create basic comm API shim for jupyter-js-services
#262 Yet another awesome test suite
#261 Move package.json into ipywidgets
#260 Fix SVG className access
#258 Remove jqueryui shim
#256 DOM widget controller
#254 Remove path changes
#250 Deserialize Style widget for containers too
#248 Make _css stateful!
#247 Use require-css for widget styling
#246 Use backbone 1.2.0 to avoid backward-incompatible change between 1.2.0 and 1.2.3
#245 Use AMD instead of commonjs
#243 Apply Python .style to el only
#240 Create loadClass method in widget manager to allow overloading
#239 Download widget manager state
#236 Use numbers abstract base class
#234 Start testing on 3.5
#232 Always serialize Bytes with binary messages
#231 fixes for binary state
#225 Adding widget alignment notebook
#224 Fix styling of slider and progress bars (alignment with other widgets, baselines)
#222 Adding MD style button shading
#221 Resize Dropdown and Colopicker to their full width
#219 Add a Style widget
#217 Remove functions that were deprecated in 4.0.0
#216 Add 2px margin to all widgets but containers
#212 Defining border-radius-base
#211 Cleaning up the padding/margin on the widget-subarea
#210 Remove useless overloaded method
#208 Fix button width issue
#207 Fix issue with Text ant Textarea not resizing
#205 Assume most sizes are in pixels if not specified otherwise.
#203 Update the README docs
#201 Fix the margin and padding of the DropDown,
#193 Decouple
#190 Comm info dummy widget
#175 Remove workaround for comm_info message

Clone this wiki locally