Anaconda Enterprise: Documentation

# 0.11.0 (Jan 2016)

Bokeh Version `0.11.0` is a large release with many new improvements

- New Tornado and websocket-based Bokeh Server
  - `bokeh` command line tool for creating applications
  - expanded docs including deployment guidance
  - video demonstrations and tutorials
  - supports async, periodic, timeout and model event callbacks
  - python client API
- User-Defined Models allowing anyone to extend Bokeh
- GeoJSON data source and map tiles renderer
- WebGL support for rendering lines
- Python -> JS compilation for CustomJS callbacks (Py3 only for now)
- New general push_notebook() based on Jupyter comms
- Updates to charts
  - all legacy charts converted
  - more examples and expanded docs
- UX improvements
  - configurable and “auto” range bounds
  - wheel zoom scroll capture turned off by default
  - hover policy for glyphs
  - responsive improvements
- Known issues
  - annulus glyph does not render correctly on IE and Edge
- many small bug fixes

## Known Issues

Server output in the Jupyter notebook with output_server is currently not functioning correctly, and will be fixed in a follow on 0.11.1 release shortly. However, new notebook comms can enable many of the same kinds of interactions and notebook-based apps without a Bokeh server.

The Image glyph does not currently work with the Bokeh server, and will be fixed in a follow on 0.11.1 release shortly.

## Migration Guide

The previous Flask-based `bokeh-server` has been completely removed and replaced with the new `bokeh serve` based on Tornado and a websocket protocol. If you require to use `bokeh-server` you will have to remain on Bokeh version `0.10.0` or lower.

All “old-style” charts in `bokeh._legacy_charts` have been updated to use the more consistent and powerful `bokeh.charts` interface, and `bokeh._legacy_charts` has been removed.

Bokeh deprecation warnings, which are not enabled by default python, have now been unconditionally enabled and are always displayed.

`ColumnDataSource.push_notebook()` has been deprecated (but still works) in favor of the more general `bokeh.io.push_notebook()` base on Jupyter notebook websocket comms.

The following modules have been deprecated (but still work), with new counterparts as described in this table:

Old location | New location
--- | ---
`bokeh.browserlib` | `bokeh.util.browser`
`bokeh.properties` | `bokeh.core.properties`
`bokeh.mixins` | `bokeh.core.property_mixins`
`bokeh.plotting_helpers` | `bokeh.plotting.helpers`
`bokeh.templates` | `bokeh.core.templates`

Additionally, the following modules that should not be of interest to general users have been moved immediately, without deprecation:

Old location | New location
--- | ---
`bokeh._json_encoder` | `bokeh.core.json_encoder`
`bokeh.compat` | `bokeh.core.compat`
`bokeh.enums` | `bokeh.core.enums`
`bokeh.query` | `bokeh.core.query`
`bokeh.state` | `bokeh.core.state`
`bokeh.validation` | `bokeh.core.validation`

If you have been using `file_html` and manually passing in `js_resources` or `css_resources`, your call will no longer work. You can still do this, but you pass a tuple to the `resources` argument.

Before:

> `html = file_html(layout, None, title=title, template=template, js_resources=js_resources, css_resources=css_resources)`

v0.11:

> `html = file_html(layout, resources=(js_resources, css_resources), title=title, template=template)`

Note you can pass `None` in place of either `js_resources` or `css_resources`.