2025-08-29      3.8:
--------------------
  * bugfixes:
    - #12430 [component: bokehjs] [BUG] Step glyphs do not support linked brushing
    - #12994 [component: bokehjs] [BUG] Patch does not output under certain conditions
    - #13616 [component: bokehjs] [BUG] DateRangePicker value does not reflect value in browser when selection is aborted
    - #14334 js_on_change not firing when range is updated in range tool
    - #14352 [component: bokehjs] Log Axis and Range1d < 1 failing
    - #14383 [component: bokehjs] `SerializationError: circular reference` When Passing List of Renderers to CustomJS Callbacks, but not when passing renderers sperately.
    - #14396 [component: examples] Remove context from time of day in span example
    - #14399 Bad typings for `list_attr_splat` (e.g. `Plot.axis`)
    - #14413 [component: bokehjs] `ValueRef` `formatter` does not handle datetime nullable well
    - #14420 [component: bokehjs] Enhance performance of WebGL multi_marker
    - #14422 [component: bokehjs] Legend renderer not correctly positioned when saved with SaveTool
    - #14424 [component: bokehjs] Patches with no data does not show plot with Bokeh 3.7+
    - #14458 [component: bokehjs] Removing and re-adding DOM nodes causes React problems
    - #14461 [component: tests] The regression test for issue #14207 is unreliable
    - #14468 [component: docs] Try on CodePen link does not work in documentation /docs/user_guide/advanced/bokehjs.html
    - #14469 [component: bokehjs] Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true
    - #14476 Improve handling of pd.NA in Property.matches
    - #14497 mypy 1.15.0 fails in CI but not locally
    - #14499 [component: docs] IndexError on importing bokeh.sphinxext.bokeh_plot
    - #14520 [component: bokehjs] BokehJS complains about categorical factors for the BoxAnnotation widget
    - #14536 Flex layouts need to apply `min_width` and `min_height` selectively
    - #14540 [component: tests] Tests are failing on Windows and Python 3.10 after PR #14531
    - #14541 New SVG icons have inconsistent line widths
    - #14554 Add support for scalar uint32 color input.
    - #14565 [component: bokehjs] DataTable source update broken
    - #14574 [component: build] grammar build script failing with whitespace in path
    - #14597 [component: bokehjs] `document_ready` even trigger twice with Bokeh 3.4.0.dev4
    - #14602 [component: bokehjs] Layoutable components in side panels don't appear in exported images
    - #14620 Re-connect race condition on page reload

  * features:
    - #2603 [component: bokehjs] Add a SizeBar guide to label relative scatter glyph sizes
    - #7338 Setting areas for the activation of the hover.
    - #8608 [component: bokehjs] [Feature request] automatic reconnect to server
    - #9087 [component: bokehjs] Provide hit_filter property on HoverTool and TapTool
    - #9327 [component: bokehjs] [BUG] Not possible to disable multi-select behavior for DataTable
    - #12375 [FEATURE] Set axis label at a fixed distance from the axis
    - #14177 Define the initial set of common CSS variables
    - #14323 Allow to place layouts in `Plot`'s side and center panels
    - #14324 Allow to add `legend_labels` to legends by `legend_name`
    - #14398 Provide (tick) formatter for time deltas
    - #14440 Expose row entries of ColumnDataSource on Python side
    - #14460 [component: bokehjs] Large html output size when using image_rgba.
    - #14564 Notify about lost connection, etc. in the UI
    - #14585 Add `bokeh` command for displaying settings (all, set)
    - #14603 Re-connect behavior not configurable and potentially destroys unsaved state

  * tasks:
    - #9980 [component: tests] Migrate examples/integration to bokehjs' integration tests
    - #12282 [component: docs] Finalize migration from PNG to SVG icons
    - #12414 [BUG] Incorrect indentation with bokeh.embed.components
    - #12469 [component: server] [BUG] IndexError when using bokeh serve --dev without app directory or script
    - #14314 [component: bokehjs] Landing page for BokehJS test/devtools server
    - #14393 [component: examples] Color sliders example has inconsistent labeling
    - #14418 [component: bokehjs] Enhance performance with large scatter datasets - spatial
    - #14427 [component: bokehjs] Enhance performance of _paint in glyph_renderer
    - #14434 [component: build] Deprecated license specifiers
    - #14501 [component: docs] Make all Sphinx extensions except bokeh-plot be internal
    - #14513 [component: build] Update or replace boto release dependency
    - #14514 Update for mypy 1.16
    - #14521 [component: docs] [DOCS] Update docs pages with new SVG icons
    - #14525 `_ModelResolver.add()` is too strict when redefining a model
    - #14534 [component: tests] CI failure: Narwhals 1.43
    - #14555 [component: bokehjs] Improve color mapping performance
    - #14571 [component: build] Resolve `npm audit` complaints
    - #14580 [component: docs] Replace `save()` calls with `show()` in examples
    - #14582 [component: docs] rename `pygment_light_style` to `pygments_light_style`
    - #14586 [component: bokehjs] Micro optimizations multimarker
    - #14588 [component: build] Upgrade to TypeScript 5.9
    - #14591 [component: bokehjs] Update Flatbush
    - #14601 [component: docs] Update bokeh 3.8 release notes
    - #14622 Update `switcher.json` for 3.8 release

2024-09-26      3.6:
--------------------
  * bugfixes:
    - #4951 ModelExtensions - all resources from a whole module are loaded
    - #7524 GroupFilter only accepts strings
    - #13827 [component: bokehjs] [BUG] Lack of range expansion when there remains unbounded directions, even when `maintain_focus=False`
    - #13886 [component: bokehjs] [BUG] NPM package has types (*.d.ts) in incorrect location
    - #13957 [component: bokehjs] Explicit selection glyph example broken
    - #13959 [BUG] Reset Tool Error in Bokeh Gridplot with Single Plot
    - #13964 [component: bokehjs] [BUG] page won't render if CustomJS args has a dict with key "constructor"
    - #13965 [component: bokehjs] [BUG] CategoricalSlider shows ‘undefined’ value and skip that value
    - #13972 BOKEH_MINIFIED not working
    - #13984 [component: tests] [BUG] Deprecation warning treated as error in pytest hook
    - #14014 [component: bokehjs] [BUG] StringFormatter `nan_format` seems broken 
    - #14054 [component: bokehjs] [BUG] Custom hover tooltip on image plot shows all the image data.
    - #14058 [component: bokehjs] [BUG] Clearing selection with ESC only works on first selection tool
    - #14068 [component: bokehjs] [BUG] Unable to change figures displayed by altering children attribute of gridplot (or other layout classes) in JS callback
    - #14072 [component: bokehjs] [BUG] Spinner input not responding to wheel event
    - #13968 [component: docs] fix indentation in `offset` parameter for `Title`
    - #14038 [component: bokehjs] Allow `is_equal(0, -0)` to be true to match `===`
    - #14055 [component: docs] fix some typos
    - #14065 [component: build] Generate correct `*.d.ts` files for CSS modules

  * features:
    - #601 [component: bokehjs] Add support for click events on categorical axes
    - #11104 [component: bokehjs] [FEATURE] Option for DataTable column sorting to place NaNs last
    - #13130 [component: bokehjs] Add CustomJSTicker
    - #13893 [component: bokehjs] [FEATURE] Custom sorting of columns in a table
    - #13905 [component: bokehjs] [FEATURE] triangle relative size by data units
    - #13921 [FEATURE] Attach ScaleBar to subplot range
    - #14035 [component: bokehjs] Add WebGL implementation for Ngon glyph
    - #14031 [component: bokehjs] Add "open image in a new tab" mode to save tool
    - #14033 Add support for click-style pan tools

  * tasks:
    - #12303 [FEATURE] Improved error message on token expiry
    - #13835 [FEATURE] NumPy 2.0 support
    - #13960 [component: docs] Remove sampledata download in contributing guide
    - #13963 [FEATURE] Add a conda channel for rc releases 
    - #13969 [component: bokehjs] [BUG] Plots fail in Firefox 115.12.0esr (64-bit)
    - #13946 [component: build] Upgrade to TypeScript 5.5
    - #13977 [component: bokehjs] Make `GlyphRenderer` generic in glyph type and remove a lot of `any` types
    - #13992 Remove docker and old integration tests cruft
    - #14019 [component: docs] Python docstring argument fixes
    - #14021 [component: docs] Fix HTML/CSS warning for palette group detail
    - #14023 [component: docs] Remove outdated known issues list from BokehJS docs
    - #14024 [component: docs] Update setup and testing docs dev guide
    - #14037 [component: bokehjs] Clean up factor range and add factor method
    - #14048 [component: bokehjs] Add missing `abstract` modifier to classes
    - #14051 [component: bokehjs] Use pseudo type members to avoid casting
    - #14052 [component: bokehjs] Make `PaletteSelect` use stylehseets instead of inline styles
    - #14056 [component: bokehjs] Upgrade to TypeScript 5.6
    - #14064 [component: build] Add `script:watch` task for incremental builds
    - #14067 [component: build] Upgrade `@types/node` and fix npm audit's concerns
    - #14071 [component: docs] fix a typo
    - #14074 [component: docs] Bring 3.5.x point release notes to 3.6.0
    - #14075 [component: docs] Add release notes for bokeh 3.6.0

2024-07-04      3.5:
--------------------
  * bugfixes:
    - #8766 [component: bokehjs] box_select not working as active_drag for gridplot
    - #12638 [component: bokehjs] Make Slider and Image available in BokehJS (JS only)
    - #13515 [component: tests] CI unit-test on Python 3.9 fails systematically 
    - #13623 [component: bokehjs] [BUG] TextAreaInput resizable=False doesn't set resize: none
    - #13720 [component: docs] Explanation is part of the code block in the latex_axis_labels_titles_labels example
    - #13766 [component: bokehjs] [BUG] Dropdown doesnt update properly when .menu changed in 3.4
    - #13771 [component: bokehjs] GMap example not showing glyphs
    - #13787 [component: bokehjs] [BUG] DataTable inside Dialog
    - #13789 [component: docs] [BUG] JS errors on Bokeh docs page
    - #13824 [component: docs] activate pydata-sphinx-theme version banner
    - #13834 [component: build] bokehjs' build fails on Windows with no explanation
    - #13844 [component: build] [BUG] cannot build environment with pixi due to `firefox =>96` constraint
    - #13848 Can't build extensions on Windows
    - #13852 [component: bokehjs] [BUG] <b> and <strong> ignored in tooltips on Firefox
    - #13878 [component: bokehjs] Bokeh.Plotting.figure.circle in bokehjs can't find `x` and `y` in a ColumnDataSource
    - #13894 [component: bokehjs] `Tooltip` is initially attached to the DOM when it shouldn't be
    - #13895 [component: bokehjs] Inner canvas layers need `overflow: hidden` after PR #13863
    - #13897 [component: docs] [BUG] Typing of layouts.gridplot expects wrong type if ncols given
    - #13902 Release build fails after PR #13901
    - #13910 [component: tests] Tests/CI fail due to a regression in requests 2.32.0
    - #13912 [component: bokehjs] [BUG]  Dialog and Datatable don't get along well
    - #13919 [component: bokehjs] [BUG] Bokeh 3.5 no longer allow custom properties for HTMLAttr
    - #13923 [component: bokehjs] `Tooltip.content` doesn't rebuild views on change
    - #13948 [component: docs] Version banner warns about unknown version on latest docs after 3.4.2 release
    - #13951 [component: bokehjs] [BUG] Image Glyph causing tons of unnecessary calls to set_data
    - #13822 [component: docs] remove consecutive "the" and fix typos in touched files
    - #13879 [component: docs] Fix broken example in user guide advanced bokehjs
    - #13884 [component: docs] silence warning in `theme_glyphs.py`
    - #13908 [component: bokehjs] Fix `CartesianFrame`'s position and generalize `rendering_target()`
    - #13926 [component: docs] Remove `blob/main` and `tree/master` from references
    - #13927 [component: docs] update path in readme for server examples 
    - #13939 [component: docs] correct version string to match dev name from switcher.json
    - #13940 [component: bokehjs] Fix initialization of `AjaxDataSource` and add tests

  * features:
    - #8289 [component: bokehjs] Permanent labels on Networkx graph
    - #10439 [component: bokehjs] Activate wheel zoom by default with BokehJS
    - #12185 [component: bokehjs] [FEATURE] Legend click events
    - #12759 [component: bokehjs] [FEATURE] Support using CSS Variables in place of colors
    - #13599 [FEATURE] Support formatters when using Template as HoverTool
    - #13646 [FEATURE] Support BoxSelectTool-like range-setting for the RangeTool
    - #13652 [FEATURE] `HTMLLabel` to support `stylesheets` and `css_classes` 
    - #13673 [FEATURE] Add Carbon Theme
    - #13728 [FEATURE] Create option for wheel zoom tool to apply only to subplot nearest to the cursor position
    - #13792 [component: server] [FEATURE] Allow bokeh server embed script to forward credentials
    - #13861 [FEATURE] Support directory upload and clearing inputs from Python for `FileInput` widget
    - #13935 [FEATURE] Allow extensions to register server side events
    - #13936 [component: bokehjs] `AjaxDataSource.if_modified` not implemented
    - #13467 [component: bokehjs] Add scale up boundary to datetimetickformatter
    - #13810 Add support for `BoxAnnotation.inverted`
    - #13890 Add support for server sent bokeh/model/UI events
    - #13906 Add support for resize and drag handles to `BoxAnnotation`

  * tasks:
    - #11745 [component: docs] Need examples of callbacks with BokehJS
    - #13791 [component: docs] [DOC] Boxplot example: some whiskers and vbar are rendered slightly asymmetrically and boldly
    - #13831 [component: bokehjs] Tap tool default mode should select+unselect, but not append
    - #13856 [component: build] Move sampledata files to pip/conda installable package
    - #13634 Drop support for Python 3.9 and modernize the codebase
    - #13686 [component: examples] added metadata to spans and strips example
    - #13731 [component: examples] Add metadata to the data_models.py in plotting example
    - #13735 [component: bokehjs] Improve type safety of DOM elements on `core/dom`
    - #13747 [component: build] Upgrade to TypeScript 5.4
    - #13770 [component: bokehjs] Remove legacy font measurement logic
    - #13778 [component: bokehjs] Simplify eslint's configuration
    - #13802 [component: build] Update bokehjs' dependencies and clear dependabot alerts
    - #13839 [component: server] remove unnecessary code from ProtocolHandler.handle
    - #13840 Upgrade to mypy 1.10.0 and ruff 0.4.2
    - #13847 Upgrade CI actions to most recent versions
    - #13860 Remove unused code from `bokeh.models.plots`
    - #13862 [component: bokehjs] Redesign `CartesianFrame` as an internal model/view
    - #13863 [component: bokehjs] Generalize bbox handling in UI views (DOM and canvas)
    - #13877 [component: bokehjs] Replace `PlotView.renderer_view()` with generic `ViewQuery`
    - #13882 Remove old deprecations
    - #13889 [component: docs] Repository cloning issues
    - #13892 Unify definitions of enums in `bokeh.core.enums`
    - #13925 [component: build] Add `http://` to devtools server
    - #13961 Final preparations for 3.5.0 release

2024-03-14      3.4:
--------------------
  * bugfixes:
    - #6826 [component: bokehjs] Tap events not registering during MouseMove events 
    - #8508 [component: bokehjs] Tap event latency
    - #10782 [component: bokehjs] Typo in prelude.ts
    - #11794 `BOKEH_DEV=true` assumes file resources when using the server
    - #12088 [component: bokehjs] [BUG] Select widget has no value if only options are provided but the UI suggests otherwise
    - #12616 [component: bokehjs] [BUG] installing bokehjs from npm doesn't pull in dependencies
    - #12870 [component: bokehjs] [BUG] DatetimeTickFormatter strips leading 0 in "%H" format, works in " %H"
    - #13071 [component: bokehjs] [BUG] Pinching zoom-in on touch devices
    - #13131 [component: bokehjs] roots added in a callback are not displayed
    - #13157 [component: bokehjs] Prevent blink when updating ImageURL source
    - #13281 [component: bokehjs] font-size does not depend on --font-size css variable
    - #13293 [component: bokehjs] [BUG] _hit_point() is broken in VAreaStep
    - #13337 [component: bokehjs] [BUG] `output_notebook(resources=INLINE)` in jupyter lab does not load jquery
    - #13362 [component: bokehjs] [BUG] Inconsistent handling of background and border fill alpha
    - #13378 [component: bokehjs] [BUG] `Axis.major_label_overrides` being `{}` causing error in deserialization
    - #13389 Unable to clone models with readonly properties
    - #13421 `bokehjsdir(dev=True)` doesn't resolve `bokehjs/build` anymore
    - #13441 [component: bokehjs] [BUG]  filter.booleans doesn't trigger the re-render of the plot
    - #13483 [component: bokehjs] [BUG] RangeTool does not respect target `max_interval`
    - #13499 [BUG] Latex does not render in Notebook
    - #13500 [component: bokehjs] [BUG] Box edit tool using all supported glyphs
    - #13520 [component: bokehjs] [BUG]  Template does not seem to render correctly in Firefox
    - #13524 [component: docs] [BUG] Missing SRI hash for version 2.2.2
    - #13525 [component: docs] [BUG] Unexpected attribute 'size' to Circle
    - #13536 [component: bokehjs] ColumnDataSource.selected.indices incompatibility with CDSView.filter.indices [BUG] 
    - #13555 [component: bokehjs] [BUG] image hover value is wrong on inverted axes
    - #13558 [component: build] Release build CI workflow fails
    - #13563 [BUG] Return type of the Model.__new__ function is incorrect
    - #13583 [component: tests] `minimal-deps` CI job fails with "coroutine was never awaited"
    - #13598 [component: bokehjs] [BUG] Improve NaT support for HoverTool
    - #13607 [component: bokehjs] [BUG] Multiple inline math elements in different axes causing axis labels to disappear
    - #13611 [component: bokehjs] [BUG] Layout won’t update after curdoc().unhold()
    - #13637 [BUG] Regression handling glyph border_radius that is a dict
    - #13648 [component: bokehjs] [BUG] WebGL Rect with large corner radius rendered incorrectly
    - #13678 [component: bokehjs] [BUG] Using tap tool makes image glyph disappear with webgl enabled
    - #13679 [component: examples] Deprecation warning in notebook_embed.ipynb
    - #13688 Useless error formatting can be sometimes costly in on_change setup
    - #13698 [component: docs] Missing links in docs in "Third-party integrations" page
    - #13716 Errors related to MIN_PREFERRED_MAX_WIDTH while building the docs
    - #13717 [component: docs] Broken page in the docs
    - #13729 [component: docs] [BUG] Documentation Missing space character in the command to enable  jupyter server extension in jupyterLab docs. 
    - #13739 [component: docs] [BUG] Documentation: TypeScript in Custom Extensions section fails to compile
    - #13743 VBox is not working in 3.4.0rc1
    - #13755 [component: bokehjs] [BUG] Button does not updated when property is changed
    - #13756 [component: bokehjs] `Tooltip` node positioning is wrong when the target is offset
    - #13713 [component: build] Fix logic in plugin prelude
    - #13718 [component: docs] add MathTextGlyph to imports
    - #13737 [component: build] Include generated TS modules in extensions' build
    - #13741 [component: bokehjs] Avoid spurious warning about Py/Js version mismatch
    - #13758 [component: docs] fix broken link in first_steps_9.rst

  * features:
    - #2367 Different sizes not used for selection & nonselection glyphs
    - #4284 Add attribution annotation
    - #4416 Add support Title/Label bounding box padding
    - #8153 [component: bokehjs] Feature Request: Hide some (but not all) tools from toolbar
    - #8519 Overlapping attribution for labels tiles
    - #8898 [component: bokehjs] Allow Select to accept non-string option values
    - #9843 categorical slider
    - #10317 [BUG] Cannot deselect with TapTool
    - #10583 The empty_value property of EditTools needs generalizing
    - #12243 [FEATURE] DataTable from_dataframe() 
    - #12651 [BUG] bokeh.plotting.graph.from_networkx fails on graphs having nodes with string index values
    - #13291 [FEATURE] Inline widgets for data entry
    - #13349 [component: bokehjs] Tooltip for tab panels
    - #13682 [FEATURE] - DataTable - Conditional Formatting
    - #13697 [component: bokehjs] [BUG] HoverTool can't adress source with `ö`
    - #13612 Add support for math text glyphs
    - #13625 Allow users to provide custom units of measurement

  * tasks:
    - #3529 Unify dev and non-minified resources
    - #9684 [component: bokehjs] If BokehJS isn't available, error message should be displayed
    - #10157 [component: examples] Replacing Iris data with penguin data
    - #12941 [component: build] Don't upload ESM files to CDN
    - #13246 Complete the consolidation of scatter markers in bokeh.plotting
    - #13381 [component: docs] Document new-style (ESM) JS callbacks
    - #13387 [component: docs] [FEATURE] Improving the "Deployment scenario" section of the user guide
    - #13430 [component: build] Split up _sri.json
    - #13485 Update contour line calculations to use ContourPy's LineType.ChunkCombinedNan
    - #13533 Errors in codebase CI runs using MyPy 1.7.0
    - #13570 [component: docs] Add documentation and tests for non-visual overrides (PR #13554)
    - #13585 [component: bokehjs] [BUG] HTML `<label>` elements are not referencing the item they are labeling
    - #13629 Use globally unique and CSS safe IDs in `<script type="application/json">`
    - #13667 [BUG] Display Greek small letter mu
    - #13669 [component: examples] Stadia tiles not displaying
    - #13680 Remove year or year range from copyright notices
    - #13700 [component: docs] [BUG] Outdated link in warning for standalone Python callback
    - #13734 [component: docs] Typo in the documentation related to writing tests in the Contribute section
    - #13736 [component: docs] App README links are all old / bad
    - #13096 [component: examples] Show how to reference the same field multiple times in hover tool's formatters
    - #13448 Use `Never` type if function doesn't return
    - #13449 [component: bokehjs] Use curly brackets in bokehjs for all statements
    - #13450 [component: bokehjs] Remove `bokehjs/src/lib/testing.ts`
    - #13451 [component: bokehjs] Add support for function callbacks in bokehjs
    - #13465 [component: tests] Robustify type expectations greatly reduce `!` usage in tests
    - #13470 [component: examples] simplify and use more latex ticks
    - #13481 [component: bokehjs] Fix unawaited promises and modernize interactive tests
    - #13493 [component: tests] Optimize performance of loading visual baselines
    - #13537 Rename `ColorMap` to `PaletteSelect` and improve it
    - #13539 [component: docs] Update server example URLs
    - #13540 [component: bokehjs] Decouple `Tool` event handlers from state/active management
    - #13565 [component: build] Migrate bokehjs' bundles from ES2017 to ES2020
    - #13575 [component: examples] Added metadata to position_toolbar.py, position_toolbar_clash.py, and toolbar_autohide.py
    - #13582 [component: tests] Sort defaults' baseline by fully qualified names
    - #13586 [component: bokehjs] Added `for` tag to HTML `<label>` element to reference input fields
    - #13601 [component: bokehjs] Upgrade TypeScript to version 5.3 and upgrade other depenencies
    - #13605 [component: build] Relativize imports paths also in type declaration files (`*.d.ts`)
    - #13610 [component: build] Don't use implicit command-line arguments in bokehjs
    - #13651 [component: bokehjs] Use simpler shader for rect-like glyphs without rounded corners
    - #13689 Improve `PlainObjectProxy` and remove unnecessary `hasOwnProperty()`
    - #13693 Upgrade nodejs to 20.x (LTS) in CI
    - #13701 [component: bokehjs] Normalize enum definitions in bokehjs; remove redundancy
    - #13703 [component: bokehjs] Finalize migration to obligatory curly brackets
    - #13707 Upgrade mypy, pandas-stubs and ruff and fix issues
    - #13709 [component: docs] Update examples for legends
    - #13722 Rename property kinds that conflict with JS builtins
    - #13724 [component: tests] Ignore `pytest.PytestUnraisableExceptionWarning`
    - #13744 [component: docs] Update bokeh 3.4.0 release notes
    - #13746 [component: docs] remove double space in example code
    - #13753 [component: docs] Add documentation for `ScaleBar` annotation

2023-10-10      3.3:
--------------------
  * bugfixes:
    - #7671 [component: bokehjs] Tool tip remains while using a scroll tool
    - #11273 [component: bokehjs] [BUG] hover tooltip is cut off when the tooltip is tall and hover near the top of the plot
    - #13170 [component: server] [BUG] Static paths loaded always from localhost in Bokeh 3.1.1
    - #13195 [component: bokehjs] [BUG] WebGL with dashed line is not working when click_policy is muted
    - #13196 Setting readonly properties in model constructors shouldn't be allowed
    - #13257 [BUG] FileNotFoundError when setting icon for BoxSelectTool
    - #13284 [component: bokehjs] Reset WebGL changed flags on data glyph not visual glyphs
    - #13311 [component: tests] Bokeh build failing
    - #13315 [component: bokehjs] [BUG] RangeTool allows target plot to pan beyond explicit range bounds
    - #13323 [component: bokehjs] Layout is broken when using `RangeTool` and other weird behavior
    - #13347 [component: bokehjs] Long tooltip can trigger viewport scrollbars
    - #13369 [BUG] gridplot got multiple values for keyword argument 'logo'
    - #13377 [component: bokehjs] [BUG] `value_throttled` being `Unset` prevents serialization of some widgets
    - #13380 [component: tests] Examples tests are failing due to a missing dependency
    - #13400 [component: build] Release build fails with `FileNotFoundError`
    - #13407 [component: tests] Tests and CI is broken due to urllib3 incompatibility

  * features:
    - #2325 [component: bokehjs] Lasso select not working on patches
    - #11571 [FEATURE] Make AutocompleteInput more usable by providing an option to match any part of the input items
    - #11755 [FEATURE] Show scale in map
    - #13200 [FEATURE] Preserve category information for categorical colormapping
    - #13203 [FEATURE] Make BoxEditTool support Quad Model
    - #13210 Unable to plot a polars.Series with bokeh 3
    - #13211 [component: bokehjs] Allow inline LaTeX support
    - #13295 Non-specific error when the DataFrame Used to construct a ColumnDataSource contains non-string keys
    - #13339 [FEATURE] Allow zoom tools to scale subplots/subcoordinates
    - #13403 [FEATURE] Transparent use on JupyterHub
    - #13212 Add more options for specifying contour colors
    - #13269 Add support for `ColorMap` (palette selector) widget
    - #13366 Add stack_labels property to WeightedStackColorMapper

  * tasks:
    - #8807 Support scale factor for PNG output
    - #12548 [component: docs] Unpin Sphinx theme
    - #12625 export_png doesn't find chrome webdriver because it was installed as chromedriver-binary 
    - #13125 Replace utcnow and utcfromtimestamp function calls
    - #13136 [component: bokehjs] WebGL support for image glyphs
    - #13324 Selenium deprecation warning because of log_path  
    - #13329 Restore full top-menu in docs
    - #13330 Foward-port 3.2.2 SRI hashes and changelog
    - #13356 [component: docs] Update tutorials URL to new tutorial
    - #13360 [component: docs] Explicitly document conf.py changes for bokeh.sphinxext
    - #13385 [component: docs] [FEATURE] Document location of intersphinx file
    - #13392 [component: docs] [BUG] Interspinx link added by me in #13386 is wrong
    - #12068 [component: examples] Add a variant of ridgeplot example that uses sub-coordinates
    - #13175 [component: bokehjs] Implement WebGL multi_line glyph
    - #13193 [component: bokehjs] Hover tooltip for ImageStack glyph
    - #13215 Use PEP 673 `Self` type instead of `TypeVar(..., bound=...)`
    - #13227 Forward ports from 3.2
    - #13301 [component: bokehjs] Improve WebGL conversion to ReGL AttributeConfig
    - #13304 [component: tests] Allow to configure Chromium executable
    - #13309 [component: tests] Allow to serve bokeh examples from bokehjs' devtools server
    - #13327 [component: tests] Mark Test_webdriver_control and test_get_screenshot_as_png_* as selenium tests
    - #13333 [component: bokehjs] Don't `set_data()` when `FactorRange.{start,end}` changes
    - #13334 [component: bokehjs] Improve performance of invalidation of refs in bokehjs
    - #13342 Upgrade to ruff 0.0.285
    - #13343 [component: bokehjs] Control random (and np.random) seed in devtools' server
    - #13352 [component: build] Upgrade to TypeScript 5.2
    - #13353 [component: docs] 13276 fix issues in documentation part two
    - #13368 [component: docs] Add more examples in the gallery
    - #13376 [component: docs] added gallery json and png file to new example
    - #13398 [component: docs] Clarify CODE_OF_CONDUCT.md escalation section
    - #13399 [component: docs] Update 3.3.0 release notes
    - #13405 [component: docs] fix tile_providery.py
    - #13408 [component: examples] Correlogram example.
    - #13417 [component: docs] Update and restructure categorical chapter
    - #13418 Misc 3.3 docs changes
    - #13419 [component: build] Add Python 3.12 to CI

2023-08-13    3.2.2:
--------------------
  * bugfixes:
    - #13265 [BUG] Merging tools in `gridplot` leads to wrong active state next to tool icon
    - #13288 [BUG] construct_color_bar does not support ImageStack glyph
    - #13307 [component: tests] Incorrect file docstrings in tests/support/plugins directory
    - #13314 [BUG] CDS stream broken for larger rollover

  * tasks:
    - #13126 [component: examples] [BUG] Mismatch in GroupFilter documentation example between text and code
    - #13305 [component: docs] 13276 easy fixes in documentation
    - #13326 Backports for 3.2.2

2023-07-20    3.2.1:
--------------------
  * bugfixes:
    - #13139 [component: bokehjs] Error in downstream library when rendering WebGL canvas with width or height of zero
    - #13162 [component: docs] Broken link in docs/first_steps/first_steps_9.html
    - #13248 [component: bokehjs] [BUG] Browser freezes when deleting notebook cell containing plot with TileSource
    - #13252 [component: bokehjs] [BUG]  plots in png generated by SaveTool on gridplot layout overlap
    - #13255 [component: bokehjs] [BUG] Enabling/Disabled DatePickers does not work
    - #13262 [component: bokehjs] [BUG] Legend draws 3 columns but `ncols` is set to 2
    - #13254 [component: bokehjs] Use `../core/kinds` instead of `core/kinds` in imports
    - #13270 [component: docs] Update theme.py
    - #13274 [component: docs] fix unterminated string literals in example code [skip ci]

  * tasks:
    - #13226 [component: bokehjs] [FEATURE] make bokehjs ndarrays cloneable to enable client-side image transforms
    - #13272 [component: docs] update docs to show legend support for `nrows` and `ncols`
    - #13271 Backports for 3.2.1

2023-06-21      3.2:
--------------------
  * bugfixes:
    - #11852 [BUG] DataRange.renderers.append fails silently
    - #12078 [component: bokehjs] [BUG] Non-circle hover glyphs permanently rendered with vline/hline mode
    - #12718 [component: bokehjs] [BUG] Changing view's filter with group based legend causes redraw in canvas to be shifted
    - #12951 [component: bokehjs] [BUG] bokeh.models.Tooltip causes rendering error
    - #12956 [component: bokehjs] [BUG] DataTable requires custom scaling in Bokeh 3.1.0
    - #13015 [BUG] select(CategoricalColorMapper) returns an empty array
    - #13112 [component: bokehjs] [BUG] Setting source.selected.indices fails on glyphs that contain text
    - #13134 [component: bokehjs] [BUG] IndexFilter indices no longer accepts numpy.ndarray
    - #13150 [component: bokehjs] [BUG] Nodes of networkx graph not rendered using webgl backend
    - #13152 [component: tests] Tests fail due to `requests` and `urllib3` 2.x incompatibility
    - #13159 [component: docs] [BUG] Small typos in the docs
    - #13182 [component: bokehjs] [BUG] legend_field labels no longer update with CDS in Bokeh 3
    - #13187 [component: docs] [BUG] Missing import in minimal example in dom.rst
    - #13192 [component: bokehjs] [BUG] Cannot reset enabled_dates in DatePicker
    - #13197 Release deploy fails with `AccessDenied` when publishing documentation
    - #13217 [component: bokehjs] js_link is broken
    - #13222 [component: docs] Search bar is missing from dev docs
    - #13135 [component: docs] Fix typo
    - #13202 [component: docs] Update theme.py

  * features:
    - #7093 [component: bokehjs] A ColorBar needs a label, as a plot needs a ColorBar
    - #12062 [component: bokehjs] [FEATURE] Support varea with step lines
    - #12532 [FEATURE] Access to know whether user ctrl-clicks, shift-clicks, or command-clicks in CustomJS callback
    - #12829 [FEATURE] Independent extra ranges in a single figure
    - #13036 Ability to rotate axis labels by adding 'axis_label_orientation'
    - #12677 Add support for `HSpan`, `VSpan`, `HStrip` and `VStrip`
    - #12704 Add webgl support to `Annulus`, `Wedge` and `AnnularWedge`
    - #12812 Add support for ES module (`import`/`export` syntax) callbacks

  * tasks:
    - #7156 [component: build] Standalone mode: images referenced in CSS files are missing
    - #12278 [component: tests] Add a method for generating bokehjs' JSON tests assests
    - #12872 [BUG] ResourceWarning: unclosed file
    - #12936 [FEATURE] Update ruff to include W291 (trailing whitespace)
    - #13058 Check if sample data files are outdated before loading them
    - #13114 [BUG] bokeh.embed.file_html produces unhelpful error message if passing a Document with no root models
    - #13116 [component: examples] Burtin example has a bad tick format 
    - #13117 Update AWS CI role for docs deploy
    - #13122 [component: build] sdist builds require git tags
    - #13143 [BUG] Ruff pyupgrade keep-runtime-annotations is obsolete.
    - #12720 Drop support for Python 3.8
    - #12920 [component: docs] Added metadata to legends.py
    - #12922 [component: examples] Updated colors of Band Plots
    - #12923 [component: docs] added accessible color palette
    - #12944 Forward ports from 3.1
    - #12950 added metadata to twin_axis.py
    - #12953 [component: examples] Update to Bokeh example plot: accessible palette with new images
    - #12959 [component: examples] Increased alpha of the circle plot 
    - #12967 [component: docs] 11765 add metadata to plots
    - #12970 Added Images for new Band Plots
    - #12975 [component: docs] added metadata to legends_item_visibility.py
    - #12977 [component: build] Upgrade to TypeScript 5.0
    - #12979 [component: docs] Add metadata to plots (#11765)
    - #12982 [component: docs] Update example metadata
    - #12983 [component: examples] Improve color contrast for accessibility
    - #12984 [component: docs] Added reference for server.py file
    - #12990 [component: docs] Update text.py with metadata
    - #12991 [component: docs] Added metadata to setvalue.py
    - #12992 [component: docs] Update metadata to legend_hide and tile_xyzservices
    - #12993 [component: docs] Added metadata to label.py and whisker.py
    - #12995 [component: docs] Updated server.py reference
    - #12998 [component: docs] Added metadata to band.py for Band Plots
    - #12999 [component: examples] Updated colors of Twin Axes Plots
    - #13006 [component: docs] Add metadata to image alpha
    - #13012 [component: docs] Added metadata to examples/plotting/aspect.py
    - #13013 [component: examples] Updated colors of Slope Plots
    - #13018 [component: examples] Updating nested_colormapped with new accessible palettes
    - #13022 [component: docs] Line select metadata
    - #13023 [component: docs] 11765 maps cities
    - #13024 [component: examples] changed span example lines from solid to dashed
    - #13031 Updated colors of Mixed Plots
    - #13043 [component: docs] added metadata to tooltip_content.py, arc.py 
    - #13047 [component: docs] Added metadata to theme_glyphs
    - #13050 [component: docs] added metadata to examples/plotting/polar.py
    - #13051 [component: docs] Added metadata for examples/models/toolbars2.py
    - #13069 [component: examples] Disable `na_filter` instead of ignoring incorrectly parsed NaNs
    - #13094 [component: docs] Update docs infrastructure
    - #13140 [component: bokehjs] Do not blit webgl canvas if width or height are zero
    - #13142 Improve handling of resources in lower level embed APIs
    - #13145 Upgrade to ruff 0.0.269 and further modernize bokeh's codebase
    - #13146 [component: bokehjs] Separate type imports from value/mixed imports in bokehjs
    - #13153 [component: server] Allow to recover from deserialization of a previously seen ref
    - #13169 [component: docs] Don't turn warnings into errors in sphinx-build
    - #13173 [component: bokehjs] Clean up the rest of eslint warnings and refactor its config
    - #13174 Do not resolve default descriptor value if already present in unstable defaults
    - #13178 [component: docs] Add ColorBar to LaTeX docs
    - #13208 [component: docs] Update bokeh 3.2.0 release notes
    - #13220 [component: examples] remove text duplicate in burtin.py
    - #13221 [component: examples] Remove unneeded backslash in LaTeX [skip ci]

2023-05-05    3.1.1:
--------------------
  * bugfixes:
    - #10547 [BUG] Division element id of components can be invalid for CSS
    - #12400 [component: server] [BUG] Domain is not resolved correctly when using BOKEH_RESOURCES=server
    - #12905 `load_notebook()` uses non-unique DOM element IDs
    - #12913 [component: bokehjs] [BUG] Artifacts on the signal when using WebGL to plot
    - #12926 [component: build] bokehjs' build fails on Windows 10 due to creating symlinks
    - #13056 [component: examples] `autocompleteinput.py` example doesn't work with pandas 2.0
    - #13060 [component: docs] `README.md` in `examples/` doesn't reflect the contents of the directory
    - #13081 [component: bokehjs] [BUG] Incorrect behaviour of Slider control on Safari (macOS)
    - #13104 [component: bokehjs] Heavy `lazy_initialize()` can result in a race condition
    - #13108 [BUG] Fix broken link to tools guide
    - #13062 Fix bokeh.sphinxext.util after PR #13041
    - #13070 [component: server] Fix `MultiRootStaticHandler` after PR #13041
    - #13086 [component: docs] fix broken docs refs
    - #13100 [component: bokehjs] Fix race conditions related to layout resize and updates

  * tasks:
    - #6683 [component: bokehjs] accent are sorted last in sorted Tablecolumn
    - #10408 [component: bokehjs] Investigate duplicated `ctx.stroke()` in various hatch patterns
    - #11335 [component: build] Display a list of installed dependencies and related software in CI
    - #11782 [component: bokehjs] [FEATURE] Propagate Name attribute to js for all Models
    - #12729 [component: docs] [BUG] [docs] Serializer cannot serialize decimal.Decimal
    - #12790 [component: tests] Complete unit tests for BokehJS mathematical array functions
    - #12814 [component: build] Check for existence of git tags early on in build process
    - #12909 [component: docs] dev guide has incorrect links to executables in the github
    - #12914 Disable miniconda-setup Post step on Windows
    - #12954 Prune latest docs properly 
    - #13001 [component: docs] Carriage returns error on Windows systems. [BUG] 
    - #13053 [FEATURE] Set `Cross-Origin-Resource-Policy: cross-origin`
    - #12939 [component: docs] add ref
    - #12963 [component: tests] Temporarily disable docker_from_wheel test in CI
    - #12973 [component: docs] Fix tiny error in doc code-block
    - #13003 [component: docs] Added metadata to line_on_off.py
    - #13009 [component: docs] Add dropdowns to contributor docs troubleshooting
    - #13026 [component: docs] Tile source metadata
    - #13035 Increase the number of iterations in CSS safe ID generator
    - #13054 [component: docs] Update In-kind sponsors list
    - #13065 [component: build] Allow `static/` symlinks in `BOKEHJS_ACTION=install pip install -e .`
    - #13084 [component: docs] Update first_steps_1.rst
    - #13103 Backports for 3.1.1

2023-03-09      3.1:
--------------------
  * bugfixes:
    - #5829 [component: bokehjs] PolySelectTool area remains the same at all zoom levels
    - #6931 "Slider" widget: omitting a required argument does not produce error message
    - #8180 [component: bokehjs] HoverTool not working with RangeTool
    - #9047 [component: bokehjs] [BUG] Can't interact with multiple RangeTools
    - #9381 [component: bokehjs] [BUG] range_tool broken on inverted axes
    - #9752 [component: bokehjs] [BUG] Hover tool not working correctly for rotated rectangles
    - #10749 [component: bokehjs] [BUG] Plaintext copy-pasted from DataTable has a different order
    - #10769 [component: bokehjs] [BUG] Dates in DataTables appear as zero-epoch
    - #11830 [BUG] TypeError when customizing tools icon using PIL Image
    - #11955 [component: bokehjs] [BUG] Replacing filter of CDSView does not trigger update of DataTable
    - #11969 [component: bokehjs] [BUG] DataTable rendering behaves inconsistently for different indices of an IndexFilter
    - #11994 [BUG] Allow reset of DatePicker to empty date
    - #12315 [component: bokehjs] [BUG] ColumnDataSource does not work with NumPy floating-point scalars
    - #12331 [component: bokehjs] [FEATURE] enable linebreaks in legend labels
    - #12379 Figure out why `HexTile` with `pointytop` orientation and `aspect_scale=0.5` fails
    - #12410 [component: bokehjs] Hover tool can point to data outside of the frame
    - #12540 Handle Datetime values consistently in annotations
    - #12574 [component: docs] [BUG] `bokeh.core.json_encoder.serialize_json` doesn't work as shown in example
    - #12584 [component: bokehjs] [BUG] MultiChoice dropdown and autocomplete
    - #12592 [component: bokehjs] Rect hit testing on circles is overzealous, at least by the default
    - #12610 light_minimal theme is missing
    - #12614 [component: bokehjs] [BUG] sizing_mode='stretch_both' broken in gridplot (bokeh 3.0.2)
    - #12624 [BUG] bokeh v3 ColumnDataSource.selected.indices no longer works with ndarray
    - #12666 [BUG] Performance differences between v2 and v3
    - #12674 [component: docs] Ref guide autoclasstoc links are missing
    - #12678 [component: bokehjs] [BUG] tooltips disappear when range of image is reversed
    - #12700 [component: bokehjs] ReGL initialization is excessively and unnecessarily slow in tests
    - #12709 [component: bokehjs] [BUG] DatePicker kills layout
    - #12710 [component: docs] [BUG] CheckboxGroup minimal example in the documentation (Widgets and DOM elements 3.0.3) does not work properly
    - #12714 [component: bokehjs] [BUG] Updating DatePicker css_classes from callbacks not working
    - #12719 Type check errors due to updated `pandas-stubs`
    - #12730 [component: docs] [BUG] No such file: examples/plotting/marker_map.py
    - #12731 [component: bokehjs] [BUG] Possible regression: pinching not working with wheelzoomtool
    - #12735 [component: bokehjs] [BUG] hatching scales differently on different displays
    - #12756 [component: examples] Custom tooltip example mis-renders
    - #12757 [component: bokehjs] Custom extension examples do not work
    - #12767 [component: docs] [BUG] No module named 'bokeh.server.tests'
    - #12776 [component: bokehjs] [BUG] DataTable does not output true/false for numpy arrays
    - #12778 [component: bokehjs] `RangesUpdate` is not emitted for linked plots
    - #12783 [component: bokehjs] [BUG] HasProps does not record references for models declared inside Map objects
    - #12784 [component: bokehjs] [BUG] BokehJS interpolate doesn't handle length-1 arrays
    - #12788 [component: bokehjs] [BUG] Streaming broken when switching from Array to TypedArray
    - #12797 [component: bokehjs] There are dots in HTML class names
    - #12799 [BUG] Time to add glyph with legend label grows exponentially with number of existing glyphs
    - #12805 [BUG] Serialization of new models breaks with Document.hold()
    - #12838 [BUG] Cannot serialize pd.NA
    - #12839 [BUG] Cannot serialize pandas numeric arrays
    - #12846 [component: docs] Update Docs for GlyphRenderer
    - #12850 [component: docs] Missing title in docs for glyphs
    - #12857 [component: docs] [BUG] Example in "Setting up a development environment" doesn't exist anymore
    - #12863 [BUG] GridPlot sizing mode not respected
    - #12864 [BUG] GridPlot does not combine tools with different renderers
    - #12876 [component: bokehjs] Unnecessary scrollbars can toggle back and forth in layouts
    - #12880 [component: bokehjs] Editable `BoxAnnotation` doesn't respect symbolic coordinates
    - #12883 [component: bokehjs] css_classes example not working
    - #12885 [BUG] Pandas series encoding can fail with pyarrow dtypes
    - #12888 [component: bokehjs] Layout collapses when using `FullscreenTool` in Chromium
    - #12894 [component: server] [BUG] Server does not allow websocket connection on unix socket
    - #12917 [component: bokehjs] Candlestick chart broken
    - #12924 [component: docs] Thumbnails not being rendered in docs gallery
    - #12698 [component: docs] Fix typo.
    - #12725 [component: bokehjs] Refactor `qbb()` and `cbb()` and fix usage of `cbb()`
    - #12754 [component: bokehjs] Update Tabler icon CSS URL
    - #12766 [component: bokehjs] Fix svg rotated ellipses
    - #12809 [component: bokehjs] Consider margins when using `100%` width with `max` policy
    - #12822 [component: tests] Resolve issues with headless Chromium 110
    - #12866 [component: bokehjs] Build bokehjs' examples in CI and fix errors
    - #12882 Fix alignment in `_templates/file.html`

  * features:
    - #3412 Add support for persistent selection overlays
    - #3880 ncol and nrow in Legend object
    - #4272 Hook for callback upon document init
    - #8592 Allow models.Span.location to accept categorical values
    - #8926 [component: bokehjs] [FEATURE]Change date format of DatePicker
    - #9194 [component: bokehjs] [FEATURE] Add fill properties to slope
    - #11328 [component: bokehjs] [FEATURE] Add JS event on Websocket disconnect
    - #11348 [component: bokehjs] Add rounded corners for rect/quad glyphs
    - #12157 [component: bokehjs] [FEATURE] MultiChoice: allow flag for the options menu to be closed after an item is selected or not
    - #12507 [BUG] Sparse DataFrame can't be plotted without transformation to CDS
    - #12529 Add support for background, border, padding, etc. to `Text` glyph
    - #12692 [FEATURE] Add visual separation for legend items with multiline text
    - #12736 [FEATURE] Add method to construct a ColorBar
    - #12752 [FEATURE] Add transform.eqhist_cmap
    - #12772 [component: bokehjs] Add configurable option for invoking callback when pressing enter for TextInput
    - #12821 [BUG] Cannot plot `pandas.DataFrame` with columns of type string
    - #12356 Categorical colormapping of 3D arrays
    - #12688 Expose stylesheet model API publicly
    - #12749 [component: bokehjs] Implement varying_alpha_palette in BokehJS
    - #12789 [component: bokehjs] Add interp_palette function
    - #12823 Allow to clone `HasProps` instances

  * tasks:
    - #6389 [component: tests] Test that bokehjs is npm-installable
    - #11653 [component: tests] Test for `MultiChoice` widget
    - #12590 Rename `select_every_mousemove` to `continuous`
    - #12598 [component: build] Raise min numpy to 1.16
    - #12609 [component: tests] Server tests use deprecated API
    - #12617 [component: build] [BUG]  Runtime error of incorrect option name crashes webapp (Angular)
    - #12642 [component: docs] [FEATURE] Add ``text_outline_color`` to docs
    - #12647 [component: docs] [BUG] First steps 2 doc figures have low contrast
    - #12675 [component: docs] User guide section for CSS stying
    - #12684 [component: docs] Docs on load balancing with Apache can be improved
    - #12689 [BUG] numpy.bool8 is deprecated
    - #12711 [BUG] EncodingWarning in bokeh.resources and bokeh.themes.Theme(...)
    - #12716 Codecov not skipping sphinxext
    - #12734 [component: docs] [DOCS] rect glyph shouldn't be used on log axes
    - #12744 [component: docs] Built-in widgets docs page does not include DateSlider
    - #12760 [component: examples] Improve examples' color handling
    - #12768 [component: docs] Dev setup docs needs to ensure repo tags
    - #12769 Activate bugbear checks in ruff
    - #12793 [component: docs] Update docs for release
    - #12918 [component: docs] Gallery thumbnails for image examples need updating
    - #12919 [component: docs] Date picker gallery thumbnail broken
    - #12555 Forward ports for 3.0.1
    - #12621 Forward ports from 3.0.2
    - #12631 [component: build] Upgrade to TypeScript 4.9
    - #12676 [component: bokehjs] Remove legacy `CanvasRenderingContext2D` polyfills
    - #12685 [component: build] Add support for CSS modules to extensions' compiler
    - #12686 [component: docs] Promote note to warning in docs
    - #12694 [component: docs] Fix tooltip ug entry
    - #12705 Update copyright statements to 2023
    - #12715 [component: bokehjs] Remove legacy CSS styles
    - #12723 [component: build] Switch to isolated modules in TypeScript
    - #12732 [component: build] Switch to ES2022 tsc compilation target
    - #12741 Upgrade `actions/{checkout,cache,...}` to `v3`
    - #12743 [component: examples] Added metadata to examples
    - #12748 Fix a few typos
    - #12755 Update ruff / f-string cleanup
    - #12762 [component: bokehjs] Upgrade bokehjs dependencies and refresh `package-lock.json`
    - #12770 [component: docs] spelling mistake
    - #12792 `DatePicker` improvements and new types of pickers
    - #12795 [component: examples] 11765 metadata custom tooltips
    - #12810 [component: examples] Added metadata to hover.py
    - #12816 Reuse object traversal result when bundling
    - #12817 [component: bokehjs] Enable strict boolean expressions lint rule
    - #12828 Use ubuntu-latest and nodejs 18.x in CI
    - #12836 [component: bokehjs] Don't re-render when `css_classes` or `stylesheets` change
    - #12852 Resolve issues with testing on MacOS in CI
    - #12853 [component: bokehjs] Enable `switch-exhaustiveness-checks` lint rule
    - #12856 Upgrade to ruff 0.0.252
    - #12865 [component: build] Check for package-lock.json v3 in release scripts
    - #12871 [component: bokehjs] Make `publish = true` the default for `BokehEvent`
    - #12915 Warn about already known references, but don't fail

2022-12-09    3.0.3:
--------------------
  * bugfixes:
    - #12583 [component: bokehjs] [BUG] Nested gridplot collapses figures
    - #12611 [BUG] `get_screenshot_as_png`
    - #12627 [BUG]  sizing_mode="stretch_both" fails since 3.0.0
    - #12633 [component: bokehjs] [BUG] Styles are not applied to model in Firefox
    - #12640 [component: bokehjs] [BUG] Embedded plot not sized correctly if not visible from the start
    - #12623 Ensure change callback manipulation is threadsafe

  * tasks:
    - #12591 [component: tests] Many `CoverageWarning: Couldn't parse (...)` in unit tests
    - #12595 [component: docs] More neutral install instructions
    - #12607 output_notebook uses a deprecated API
    - #12608 models.util.structure uses deprecated API
    - #12641 [component: docs] Links to many examples are out of date
    - #12646 [FEATURE]  Add a find_stack_level to deprecation.py
    - #12351 Updates to Docker image building and testing
    - #12547 [component: docs] Added metadata to glyphs.py, multi_legend.py, multi_scale.py
    - #12605 Replace flake8 with ruff
    - #12620 Remove LGTM
    - #12630 Update CodeQL action
    - #12636 Add CodeQL config
    - #12639 Disable docker from wheel integration tests
    - #12645 CodeQL: remove import linter hack
    - #12654 Resolve issues with code quality checks
    - #12659 [component: docs] Adapt Bokeh logo for dark theme and add docs badge in README.md
    - #12662 Backports for 3.0.3
    - #12663 Updates for 3.0.3

2022-11-14    3.0.2:
--------------------
  * bugfixes:
    - #4930 interaction between tooltips and gridplots
    - #12429 [component: bokehjs] [BUG] Line selection does not render the unselected end line segments
    - #12531 [component: bokehjs] [BUG] latex in titles - upright characters that should be italic
    - #12551 [component: tests] bokehjs' unit tests fail on chromium 107
    - #12554 [component: docs] Custom.js needs update for switcher
    - #12578 [component: bokehjs] [BUG] gridplot reset button does not reset all figures
    - #12585 [component: bokehjs] [BUG] line_policy='none' for HoverTool does not generate any tooltip
    - #12587 [component: server] [BUG] Don't delete importlib.metadata in __init__.py
    - #12593 [BUG] Guard numpy.typing.ArrayType with `if TYPE_CHECKING`

  * tasks:
    - #12557 [component: docs] Need automation for updating switcher.json
    - #12560 [FEATURE] remove mock
    - #12562 [BUG]  Tests: "python" is not a guaranteed executable
    - #12566 [component: docs] Fix dates and typo in release docs for 3.0.0/3.0.1
    - #12569 [component: build] Add Python 3.11 to CI
    - #12571 [component: tests] Remove flaky from integration tests
    - #12573 [component: tests] Add a regression test for issue #4888
    - #12579 Upgrade to mypy 0.990
    - #12581 Disable Selenium integration tests for now
    - #12597 Backports for 3.0.2
    - #12600 Updates for 3.0.2

2022-11-03    3.0.1:
--------------------
  * bugfixes:
    - #12537 [BUG] ImportError: cannot import name 'NotRequired' from 'typing_extensions'

  * tasks:
    - #12528 [component: docs] Update tutorial link
    - #12533 [component: examples] [BUG] Units in blackbody example should be upright
    - #12525 [component: examples] Added metadata to bokeh\examples\plotting\checkout_form.py
    - #12539 [component: build] Remove runtime dependency on typing_extensions
    - #12546 [component: examples] Apply blackbody example label edits (#12534) to the ts example as well

2022-10-30      3.0:
--------------------
  * bugfixes:
    - #5046 Webgl problem in stream app with multiple glyphs
    - #6669 [component: bokehjs] BoxAnnotation does not appear to handle formal NumberSpec
    - #8168 [component: bokehjs] Strange behavior with BoxSelectTool when click+dragging on toolbar
    - #8332 [component: bokehjs] Autohide toolbar quirks
    - #8346 [component: bokehjs] update datasource cause error with webgl backend
    - #8469 Modifying a child element in a tab causes the whole tab to rerender
    - #8531 [component: bokehjs] Save tool in gridplot initiates multiple downloads
    - #8684 Allow at least partial alignment of fixed sized frames
    - #9113 [component: bokehjs] Empty group widgets don't size properly once populated
    - #9133 [BUG] Tabs ignore explicitly set dimensions
    - #9208 [component: bokehjs] [BUG] sizing_mode='stretch_width' makes plot too wide if scrollbar is showing
    - #9320 [BUG] Bokeh rendering performance
    - #9448 [component: bokehjs] [BUG] Google Fonts not loading on Glyph on standalone HTML until interacting with Glyph
    - #9744 [component: bokehjs] [BUG] bokeh server layout overlap on toggle visibility
    - #9763 [BUG] `gridplot` `merge_tools` removes distinct tools it thinks are repeated, e.g., `xpan` and `ypan`
    - #9764 [component: bokehjs] [BUG] MultiChoice placeholder text not displayed
    - #9992 [component: bokehjs] [BUG] Select widget hiding tabs, when selecting a plot
    - #10125 [component: bokehjs] [BUG] widgets overlap each other
    - #10183 [component: server] [BUG] Processing of HTTP request arguments (server_document) and num-procs > 1
    - #10355 [component: bokehjs] [BUG] Toolbar cropped when using tabbed auto-width
    - #10377 [component: docs] Documentation examples produce inconsistently named output files
    - #10621 [component: bokehjs] [BUG] [MINOR]  2.3.0dev3, plot's inner_width property always sent on redraw even if unchanged
    - #10804 [BUG] export does not respect current theme
    - #11033 [component: bokehjs] [BUG] add_layout(LinearAxis) in click handler crashes client
    - #11116 [component: bokehjs] [BUG]  ColorBars do not update when their properties are updated
    - #11205 [component: bokehjs] [BUG] Hover tooltip breaks with full-circle wedge
    - #11339 [BUG] Toggling layout's visibility results with overlapping widgets
    - #11462 [component: bokehjs] [BUG] Existing ColorBar tick-digits don't react to theme changes
    - #11475 [component: bokehjs] [BUG] SVG export breaks for Wedges
    - #11623 [BUG] Placement of toolbar location is broken for gridplots
    - #11643 Refs are not resolved in data models' default values
    - #11673 [component: bokehjs] [BUG] JavaScript error when setting LabelSet text to None
    - #11694 Custom extension breaks with id as key in a dict param
    - #11750 [component: bokehjs] [BUG] Hover tool takes long time to render (-> #11629)
    - #11770 [component: bokehjs] [BUG] Linking an axis range can lead to other axis range autoscaling improperly
    - #11776 [component: bokehjs] Dynamically changing the color palette of a color mapper
    - #11803 [component: bokehjs] [BUG] Message containing ModelChangeEvents for all properties sent back to server on initialization
    - #11822 [component: tests] Tests using headless chrome are completely broken
    - #11838 [component: bokehjs] [BUG] incorrect scalling for the zoom-out tool
    - #11839 [BUG] PanTool can't be deactivated in grid plot
    - #11877 [component: bokehjs] ImageURL blinks when the datasource updated
    - #11930 [BUG] major_label_overrides are not applied if the overrides are float but the original labels are int
    - #11946 [component: bokehjs] Re-rendering a layout causes menus to be removed from DOM
    - #11963 [BUG] Option groups of the Select widget are sorted
    - #11981 [component: build] BokehJS build failing in release CI
    - #11985 [component: docs] Docs Search results are messed up
    - #11999 [component: bokehjs] Rendering happens on every mouse move with inspections enabled
    - #12001 [component: bokehjs] [BUG] Failure of push_notebook() to update colormapper of a colorbar
    - #12033 [component: bokehjs] [BUG] Incorrect handling of step by DateRangeSlider
    - #12047 [BUG] Jumpy scroll on mobile
    - #12080 [BUG] examples/plotting/file/image.py no longer works
    - #12101 [component: docs] Misplaces BokehJS Sphinx embeds
    - #12115 [component: bokehjs] [FEATURE] Expose itemSelectText option on the MultiChoice widget
    - #12123 [BUG] Allow to extend vertically a TextAreaInput
    - #12127 [component: bokehjs] [BUG] LabelSet doesn't check type for text
    - #12133 [component: docs] Docs are missing GA code
    - #12142 [component: bokehjs] [BUG] Mathjax 3.2.1 breaks Bokeh
    - #12145 [component: examples] [BUG] Examples/Apps/Stocks has broken URL
    - #12150 [component: docs] Links for download badges in readme don't go anywhere
    - #12155 [component: bokehjs] [BUG] Inlined RadioGroup widget doesn't extend enough horizontally
    - #12162 [component: bokehjs] [BUG] step(mode="center", ...) renders incorrectly on canvas if coordinates contain NaN
    - #12176 [component: examples] [BUG] examples/app/gaminder: year 2013 (the latest year in the data set) is not presented in the Gapminder visualization
    - #12204 [component: bokehjs] [BUG] Setting datatable selectable to False leads to an error when trying to sort
    - #12205 [component: bokehjs] [BUG] Div with stretch_width doesn't stretch
    - #12207 [component: bokehjs] [BUG] image_rgba selection
    - #12232 [BUG] Bokeh 3.0.0 cannot serialize Pandas Dataframe
    - #12238 Many hidden type errors due to wrong mypy config
    - #12250 [BUG] ContourColorBar does not support theme
    - #12280 [component: bokehjs] [BUG] Combine alpha values by multiplying together
    - #12313 [BUG] range no longer works with ColumnDataSource
    - #12357 [component: bokehjs] [BUG] webgl breaks shared brushing
    - #12361 [component: bokehjs] [BUG] Canvas backend doesn't always render marker vector line_width correctly
    - #12378 [component: docs] [BUG] Links in "First steps" documentation all broken
    - #12386 [component: docs] python/js reported version mismatch
    - #12404 [component: examples] Jitter example is broken
    - #12405 [component: bokehjs] gridplot examples layouts are broken
    - #12412 [component: bokehjs] [BUG] Canvas step glyph sometimes renders with incorrect alpha
    - #12416 [component: docs] Custom extension examples not rendering
    - #12418 [component: bokehjs] Lasso overlay is broken
    - #12447 [component: bokehjs] Toolbar interferes with tooltip
    - #12448 [component: bokehjs] `GridPlot` needs better defaults for rows/cols sizing
    - #12453 [component: bokehjs] Sizing mode example is broken
    - #12456 [component: bokehjs] DOM drag/selection issue
    - #12462 [component: docs] [BUG] Sphinx warnings while building documentation
    - #12465 [component: bokehjs] [BUG] DataTable cell content gets overprinted if DataTable is used within a TabPanel
    - #12479 [component: bokehjs] [BUG] Figure p in column(gridplot([[p]])) not rendered when adding another figure like this: column(p, gridplot([[p]]))
    - #12494 [component: examples] Ion slider extension example broken
    - #12506 ContourRenderer disregards line_color=None
    - #11717 [component: bokehjs] Fix bokehjs normally distributed random numbers
    - #11821 Update branches in CI workflow configurations
    - #11928 [component: bokehjs] Fix gmaps' support and remove special handling
    - #11932 [component: build] Update versions of all packages in `package-lock.json`
    - #11959 Discover unstable defaults in `HasProps.__init__()`
    - #11986 [component: build] Fix `package-lock.json` and `update_bokehjs_versions()`
    - #12057 [component: bokehjs] Robustify initialization of ndarrays
    - #12067 [component: bokehjs] Don't excessively check if fonts were loaded
    - #12174 [component: bokehjs] Fix canvas rendering of step glyph containing NaN
    - #12196 [component: bokehjs] Remove id attribute of bk-root after plotting
    - #12248 [component: bokehjs] Hide lower colors and labels when using EqHist rescale_discrete_levels
    - #12265 [component: docs] Pin sphinx to version >=5,<5.1
    - #12285 Split up too long lines after flake8 upgrade
    - #12289 [component: docs] grammatically updated the tech docs
    - #12330 [component: tests] Improve compatibility with Python 3.10.6 in tests
    - #12344 [component: tests] Fix flake8 bokeh -> src/bokeh after PR #12338
    - #12362 [component: bokehjs] Fix WebGL rendering of marker with size 0
    - #12520 [component: docs] Restore strict docs build

  * features:
    - #1666 [component: bokehjs] Flip images when ranges are reversed
    - #1763 [component: bokehjs] Support anchor property for Image and ImageRGBA
    - #3799 Linked Crosshair
    - #3819 Toolbar Improvements: Make tools independent of bar
    - #4371 [component: bokehjs] Plot.y_range / Plot.x_range initial start/end values not set
    - #4403 Better defaults for resize event
    - #4568 [component: bokehjs] Allow active specification on gridplot toolbar
    - #4698 [component: bokehjs] Feature: Add "dbl-click to reset zoom" on BoxZoomTool
    - #4817 layout vertical alignment with buttons
    - #5135 [component: bokehjs] Pan and Zoom tools should be configurable (limit to x or y axis only) via UI
    - #5241 x_axis_type not in fuzzy matching for figure args
    - #6031 Latex axis and title labels
    - #6372 [component: docs] Add signatures to model objects
    - #8360 Add a Figure.contour method
    - #8364 Autohide toolbar should work with gridplot
    - #8727 [component: bokehjs] Tooltip on widgets
    - #8847 [component: bokehjs] RadioButtonGroup orientation vertical
    - #9086 [component: server] [FEATURE] add favicon support to Bokeh server
    - #9498 [FEATURE] Bokeh Sizing mode that inherits from parent
    - #9518 [component: bokehjs] Allow binary data, streaming and patching outside data sources
    - #9552 [component: bokehjs] [FEATURE] Placeholder text for FileInput
    - #9920 [component: bokehjs] Set themes using bokehjs
    - #9935 [component: bokehjs] Add context formatter option to DatetimeTickFormatter
    - #10533 [component: bokehjs] [FEATURE] Add x-box-select & y-box-select specific icons.
    - #10914 [component: bokehjs] [FEATURE] Add custom_tooltip and custom_icon to all tools (not implemented in SelectTools)
    - #10990 Add style attribute to all widgets
    - #11500 [FEATURE] Support xyzservices in basemap tiles
    - #11596 Allow data models to inherit from non data models
    - #11638 [component: bokehjs] [FEATURE]  MultiChoice widget sorts options by default
    - #11704 [FEATURE] Include glyph sizing in plot range calculations
    - #11806 [component: bokehjs] [FEATURE] Add function to get adjacent nodes by selecting node.
    - #11881 [FEATURE] Expose a file name parameter in SaveTool
    - #11908 [FEATURE] remove_tools() function for plots
    - #12066 [component: docs] [FEATURE] Link documented sampledata to standalone example
    - #12089 [component: server] [FEATURE] Make bokeh server listen to unix socket
    - #12171 [component: bokehjs] [FEATURE] Batch rendering of many glyphs on the same plot
    - #12179 [FEATURE] Add support for text outlines with annotations
    - #12181 [component: bokehjs] [FEATURE] Allow `embed_item` to optionally take an element instead of an ID
    - #12272 [FEATURE] Allow AutocompleteInput min_characters=0
    - #12273 [component: bokehjs] [FEATURE] Box_Zoom_Tool that allows zooming in only width, height, or both dimensions in one tool
    - #12438 [FEATURE] Add a parameter to limit the number of completion strings displayed by `AutocompleteInput`
    - #11122 Add support for basic glyph decorations
    - #11639 [component: bokehjs] Various bokehjs API improvements and new examples
    - #11697 [component: bokehjs] Expose plotting subcoordinates API in bokehjs
    - #11842 [component: bokehjs] Add block glyph
    - #11871 [component: bokehjs] Implement a bokehjs development/diagnostics tool
    - #11926 Allow to place toolbars inside the frame
    - #11933 Add support for a checkbox-like Switch widget
    - #12020 Add contouring
    - #12030 Add support for `np.array(..., dtype="bool")`
    - #12054 Generalize filtering on CDS views
    - #12213 [component: bokehjs] Add ColorBar.display_low and display_high
    - #12244 [component: bokehjs] Add support for cross bounds to grid lines
    - #12263 varying_alpha_palette helper function
    - #12268 [component: tests] Add support for async `expect().to.throw()`
    - #12270 [component: bokehjs] Allow to stop throttled functions
    - #12271 Add parameterized `NonNegative` and `Positive` properties
    - #12276 Introduce `canvas` coordinate units to remove `for_hover`, etc.
    - #12329 [component: server] Provide method to modify Server before start
    - #12467 [component: docs] Tabbed gallery
    - #12473 [component: docs] Add server examples to main gallery

  * tasks:
    - #4388 [component: tests] Missing layout tests
    - #5653 [component: tests] Add tests to ensure server events do not boomerang client-side
    - #6339 Use js Map instead of plain objects for properties like ColumnDataSource.data
    - #6574 [component: examples] Add more examples to bokehjs
    - #6591 [component: docs] Make it clear which annotations can and can not be preserved with save tool
    - #8188 [component: examples] Example app "dashboard" unsuccessful on wide screen
    - #8458 Simplify the JSON representation
    - #9731 Drop support for legacy web browsers
    - #9757 [component: bokehjs] Investigate using shadow DOM to gain proper isolation
    - #9907 Improve Auth Request Handler hierarchy
    - #10007 [BUG] Importing bokeh is VERY slow
    - #10090 Deprecate ragged array case in ImageBase.image
    - #10424 [component: bokehjs] [BUG] Toggle on_click is fired when "active" is changed from Python side
    - #10463 [component: docs] [BUG] bokeh authentication example checks only whether `user` cookie is set
    - #10746 Make figure a class?
    - #10840 [component: tests] Type errors in build should not stop tests from running
    - #11347 [component: bokehjs] Simplify DatatimeTickFormatter format properties
    - #11352 [component: docs] Docker container for dev environment
    - #11355 [component: docs] Add LaTeX rendering to elements
    - #11356 [component: docs] Examples demonstrating LaTeX capabilities
    - #11357 [component: docs] Update docs for LaTeX capabilities
    - #11358 [component: tests] Tests for LaTeX capabilities
    - #11359 PNG export for LaTeX
    - #11363 [component: docs] Export LaTeX to SVG
    - #11507 [component: build] Migrate to repo to "src" layout
    - #11637 [component: docs] Document requirement of PEP 604 (py 3.10) type annotation syntax
    - #11640 [component: docs] Document Tool.icon in user guide
    - #11642 Rename FuncTickFormatter
    - #11723 [component: docs] Docs still reference FuncTickFormatter
    - #11752 [component: tests] [BUG] Windows integration tests failing in BokehJS-CI
    - #11789 [component: docs] Pin Sphinx < 4.3
    - #11792 [component: docs] Unpin Sphinx and update min version
    - #11845 [BUG] color.darken() triggers BokehDeprecationWarning as it uses HSL related methods internally
    - #11850 [component: docs] Documentation nitpick re: EditTools
    - #11883 [component: tests] BokehJS-CI test failure in windows-latest
    - #11968 [component: docs] Update docs for AjaxDataSource
    - #11996 [FEATURE] Allow passing things other than models into args argument on CustomJSHover
    - #12018 [component: server] support the proactor eventloop on windows with tornado >=6.1
    - #12024 [component: docs] [BUG] Clarify docs about necessity of Firefox
    - #12049 Typo in ValueError in L170 of serialization.py repo
    - #12087 [BUG] Abspath does not expand users home directory
    - #12152 [component: docs] Add Apache load balancer configuration to documentation
    - #12153 [component: bokehjs] Upgrade to TypeScript 4.7
    - #12168 [component: docs] Update docs for new Tooltip functionalities
    - #12178 Add Python compat deprecation for `FuncTickFormatter`
    - #12180 [component: docs] Demonstrate better practice in JS callback docs
    - #12203 [component: docs] Misc 3.0 docs issues
    - #12216 New PIL version broke tests
    - #12237 [component: docs] [BUG] output_file() documentation is not consistent
    - #12261 Add pandas as hard dependency
    - #12264 [component: docs] [FEATURE] Adding existing bokeh language bindings to the documentation
    - #12291 [BUG] DepricationWarning for latest Selenium 4.3.0 and webdriver.Firefox
    - #12332 Proposed changes for envs / scripts
    - #12340 [component: docs] Update docs for new src layout
    - #12402 [component: docs] Double tooltip on hovering over user guide periodic table example
    - #12415 [component: docs] [BUG] navigation section on gallery page is placed incorrect
    - #12511 [component: docs] [FEATURE] Outdated renderers helpstring
    - #11620 Execute 3.0 deprecations
    - #11621 Drop `render_mode` and split off HTML annotations
    - #11622 [component: tests] Don't report successful flaky tests
    - #11624 [component: bokehjs] Drop `@deprecated` functionality of bokehjs
    - #11636 [component: bokehjs] Correct MathText color, size and vertical alignment
    - #11659 [component: bokehjs] Fix and improve output from Printer.string()
    - #11660 [component: docs] Update docs for math text styling
    - #11665 Drop support for subtype from the protocol
    - #11669 Create SECURITY.md
    - #11671 [component: tests] Reorganize bokehjs' test assets and add "sprint" example
    - #11677 [component: bokehjs] Redesign text rendering in `Text` glyph
    - #11691 build BokehJS by default
    - #11692 [component: bokehjs] replace deprecated CLIEngine eslint class and add cache for faster linting
    - #11699 [component: bokehjs] Split up `api/plotting.ts` into `figure.ts` and `io.ts`
    - #11700 [component: tests] Add more bokehjs' examples under visual tests
    - #11706 [component: tests] Add streaming circle test for issue #5046
    - #11708 [component: tests] Implement MathText on TextAnnotations and organize MathText tests
    - #11709 [component: docs] Update contributor docs (part 2)
    - #11733 Add more modules to mypy
    - #11748 [component: build] Removed a manual file handler pitfall
    - #11763 [component: bokehjs] Remove invalid `null` and other conditionals
    - #11771 Include version pattern in workflow input description
    - #11773 Remove `CDSView.source` and infer the source from `CDSView`'s parent
    - #11774 [component: examples] 11765 basic plot example metadata
    - #11775 [component: docs] Add metadata to examples/models/file/daylight.py (#11765)
    - #11777 [component: bokehjs] Add support for unset properties to bokehjs
    - #11778 Docker dev image (#11352)
    - #11780 [component: tests] Update root `View`'s `ready` promise along its descendants
    - #11787 Bryanv/forward ports to 3.0
    - #11799 [component: build] add Python 3.10 to CI
    - #11809 [component: docs] metadata for examples/models/file/calendars.py added
    - #11812 [component: build] Remove automatic addition of `init_ModelName()`
    - #11813 [component: bokehjs] Clarify handling and internal types of partial messages
    - #11815 Add support for math text to slider widgets
    - #11816 [component: build] Reorganize bokehjs' dependencies using npm workspaces
    - #11831 2.4.2 forward ports
    - #11835 [component: build] Update baselines on MacOS
    - #11837 [component: tests] Update baselines on Windows
    - #11858 [component: examples] More LaTeX examples
    - #11859 [component: docs] Update docs for Slider, RangeSlider
    - #11861 update sliders baselines
    - #11869 [component: examples] Add final 2 LaTeX examples: Bessel functions and LaTeX labels
    - #11872 [component: examples] Added docstrings on app\examples
    - #11874 [component: build] Update bokeh-release-build.yml
    - #11876 [component: examples] Added metadata to some examples and fixed one #11765
    - #11878 [component: examples] Port schrodinger example to bokehjs
    - #11902 [component: examples] Added metadata for examples/plotting/file/color_data_map.py and examples/plotting/file/grid.py
    - #11905 [component: examples] Add metadata to widgets.py
    - #11907 Fix type issues after upgrading to mypy 0.920
    - #11915 Redesign the layout using CSS and canvas layouts
    - #11919 [component: build] Require nodejs 16.* LTS for dev and testing
    - #11920 [component: build] Fail bokehjs' CI jobs if repository gets dirty
    - #11921 [component: tests] Test bokehjs' palettes and reduce their size
    - #11927 [component: bokehjs] Improve life cycle of `DataRange1d.plots`
    - #11931 [component: build] Drop official support for Python 3.7
    - #11939 Make `_may_have_unstable_defaults()` more robust
    - #11941 Replace `typing_extensions` with `typing` wherever possible
    - #11943 [component: tests] Don't rely on clicking a toolbar button for testing
    - #11949 [component: bokehjs] Replace manual text handling in `Legend` with `TextBox`
    - #11953 [component: tests] Update tests for Firefox 96
    - #11970 Deprecate CDSView.source more gracefully
    - #11982 [component: build] Upgrade bokehjs' npm packages
    - #12009 [component: docs] Add metadata to tile_source.py and fix various typos
    - #12011 [component: tests] Silence deprecation and other warnings in integration tests
    - #12027 [component: build] Upgrade TypeScript to version 4.6
    - #12028 [component: tests] Set up `asyncio_mode` to silence deprecation warnings
    - #12039 [component: server] Remove `use_buffers` from `PatchDoc` message
    - #12042 RenderRoot dataclass
    - #12044 [component: docs] 11765 add metadata to examples
    - #12056 [component: build] Upgrade bokehjs' dependencies
    - #12060 [component: docs] Update docs for HexTile
    - #12063 [component: docs] Clean up sample data attribution
    - #12064 [component: bokehjs] WebGL support for Block glyph
    - #12076 [component: bokehjs] Initialize properties in definition order
    - #12100 Fix Comparing singleton primitives with equality checking
    - #12102 Minor cleanup issues
    - #12116 [component: docs] Update WebGL docs
    - #12128 Adding metadata to examples/models/file/buttons.py #11765
    - #12147 New vars and cleanup for hover tooltips
    - #12161 [component: bokehjs] WebGL step glyph
    - #12173 [component: bokehjs] Minor bokehjs' codebase cleanup
    - #12188 [component: bokehjs] Toggle opacity not visibility of descriptions
    - #12200 [component: docs] Update for latest Sphinx and pydata theme
    - #12206 [component: docs] Minor 3.0 docs updates
    - #12209 [component: docs] Replace panels and tabs extensions
    - #12211 [component: docs] Alt-text Sprint PR
    - #12224 [component: docs] Update docs CSS
    - #12229 [component: docs] Fix intersphinx doc reference
    - #12233 Revert field_name rename
    - #12241 [component: docs] Update wording for output_file()
    - #12242 [component: docs] Update docs for tooltip PR
    - #12245 [component: docs] Added definition for LOD (Level-of-Detail)
    - #12246 Rename `NonNullable` to `Required`
    - #12247 Update bokehjs' dependencies
    - #12249 [component: examples] add SRI hash for vis.js
    - #12252 Normalize built-in types and remove `Unknown`
    - #12257 [component: tests] Upgrade bokehjs in examples and tests
    - #12260 [component: docs] Add random filename description
    - #12269 [component: bokehjs] Move normal random generator from `np` to `Random`
    - #12274 Drop `serialized=False/readonly=True` for `NotSerialized/Readonly`
    - #12284 [component: docs] Contouring docs
    - #12286 [component: docs] Save CI docs as artifact
    - #12290 Update codeql-analysis.yml
    - #12293 Add post install status to bokeh-release-build
    - #12294 [component: tests] Cleanup / condense project configs
    - #12298 [component: docs] Grammatical fixes and improvisations
    - #12302 [component: bokehjs] BokehJS maths improvements
    - #12304 [component: build] Add `py.typed` marker file for mypy
    - #12305 [component: docs] Remove double colons from field lists
    - #12306 [component: tests] Streamline / modernize build system
    - #12307 Preserve original line endings in code quality tests
    - #12311 Move test utils out of tree
    - #12317 [component: build] More CI work (part 1)
    - #12318 [component: docs] Update dev setup docs
    - #12319 [component: build] More CI work (part 2)
    - #12320 [component: build] More CI work (part 3)
    - #12321 [component: build] More CI work (part 4)
    - #12324 [component: build] More CI work (part 5)
    - #12326 [component: docs] clean up MANIFEST.in
    - #12336 [component: tests] Test out codecov action
    - #12337 Add package validation helper
    - #12339 [component: docs] consolidate docs directory
    - #12341 Move typings under src
    - #12342 [component: build] Use proper setuptools command extensions
    - #12347 [component: build] Add package verify to release automation
    - #12349 [component: build] Align CI/release build more closely
    - #12352 Codecov config experiments
    - #12353 Hide top level import
    - #12358 Flatten examples dirs
    - #12364 [component: docs] Remove extraneous paragraph
    - #12368 Consolidate gitignores
    - #12371 [component: build] Upgrade bokehjs' dependencies
    - #12372 Consider undeprecating *on_click helpers
    - #12373 [component: tests] make precommit config more fine-grained
    - #12381 Use wheel for testing
    - #12383 [component: bokehjs] Clean up naming, deprecations, legacy APIs, etc.
    - #12387 Remove `bokeh.server.django`
    - #12388 [component: tests] Include `CartesianFrame` in baseline files
    - #12389 Update README.md
    - #12394 [component: bokehjs] Use more robust CSS length parsing in MathText
    - #12395 [component: docs] Add metadata to trefoil example
    - #12403 [component: docs] Pin pydata sphinx theme version
    - #12407 [component: tests] Robustify workflow around testing defaults
    - #12419 [component: docs] Rearrange examples and users guide
    - #12424 Upgrade to mypy 0.981
    - #12431 [component: docs] Grammar changes to the docs
    - #12433 [component: docs] Restructure User's Guide (Part 1)
    - #12434 Split up `bokeh.models.renderers` and move `contour_renderer`
    - #12435 [component: tests] Include only own and overriden defaults in defaults.yaml
    - #12436 Change type of `Model.subscribed_events` to `Set(String)`
    - #12437 [component: docs] Update 3.0.0 change log
    - #12440 [component: docs] Restructure User Guide (Part 2)
    - #12441 Add 'p' prefix to simple IDs in Python
    - #12446 [component: docs] Update gallery thumbnails
    - #12454 [component: docs] More gallery / user guide improvements
    - #12458 [component: docs] Improve the gallery grid
    - #12463 Update theme.yaml
    - #12472 [component: docs] Make Styling a top-level section
    - #12474 [component: docs] add missing ports and notes
    - #12477 [component: docs] Fix up some sphinx paths
    - #12478 [component: docs] Add a batch of new gallery items
    - #12485 [component: docs] Misc docs/examples for 3.0
    - #12488 fix win sampledata test
    - #12491 [component: docs] Misc examples cleanup (part 1)
    - #12492 [component: docs] Update styling docs
    - #12495 [component: docs] Misc QoL improvements for examples
    - #12497 [component: docs] Move migration guide to Wiki
    - #12499 [component: docs] Add two missing words to data.rst
    - #12500 [component: docs] Add more examples to gallery
    - #12501 [component: docs] Fix some typos
    - #12502 [component: docs] More examples updates
    - #12505 Don't allow `Model(id="some", **properties)`
    - #12508 [component: tests] Migrate defaults' baseline from yaml to json5
    - #12513 [component: bokehjs] Resolve deprecations in bokehjs' CI workflow
    - #12515 Rename `SettingsTool` to `InspectorTool`
    - #12517 [component: bokehjs] Allow scroll in inspector's model/property panels
    - #12518 [component: docs] Fix typos
    - #12519 [component: docs] Move intro paragraph
    - #12522 [component: bokehjs] Rename `InspectorTool` to `ExamineTool`
    - #12524 [component: docs] Some final docs updates

2022-05-18    2.4.3:
--------------------
  * bugfixes:
    - #7390 [component: bokehjs] Tap events respond outside plot area
    - #11744 [component: docs] BokehJS example in docs is broken
    - #11832 [component: bokehjs] [BUG] Zoom-in failing with the `xzoom_in` tool
    - #11965 [component: bokehjs] [BUG] Table formatting causes layout crash/collapse
    - #11987 [component: docs] Docs: extra whitespace on non-sidebar pages
    - #11995 [component: docs] [Docs] his must be replaced by This
    - #12058 [BUG] webgl backend results in dashed lines
    - #12070 [component: bokehjs] [BUG] Wedge/AnnularWedge hit testing cuts off top/bottom
    - #12096 Missing `f` prefix on f-strings
    - #11819 [component: bokehjs] Correctly handle odd-length dash patterns in WebGL
    - #11829 [component: bokehjs] Fix webgl line NaN handling
    - #12051 [component: docs] Fixed typo: s/server/serve/
    - #12106 Fix typo in git.py

  * features:
    - #9182 [component: bokehjs] Add hover tooltip support for Patch, HArea, and VArea
    - #10525 [component: bokehjs] [Feature] Support full text search for MultiChoice and  auto complete input
    - #11840 [component: bokehjs] Support multiple marker types in WebGL scatter
    - #12034 Add DatetimeRangeSlider
    - #12121 Support rescale_discrete_levels in EqHistColorMapper

  * tasks:
    - #8851 [component: docs] [BUG] components() does not return dict with wrap_plot_info=False
    - #11707 [component: bokehjs] Avoid expensive over-computing "all models" on Document init
    - #11716 [component: docs] [BUG] Docs still mention @gen.coroutine
    - #11726 [component: docs] [BUG] Update links in example app surface3d to point to new location on visjs.org
    - #11757 [component: docs] [FEATURE] Elaborate on branch creation and git commits in docs
    - #11811 Remove unnecessary whitespace from rendered templates
    - #11868 [component: examples] Examples README.md files needs checking and updating
    - #11870 [component: docs] Remove katex example, test and docs
    - #11875 [component: build] Make release build more robust to commit files
    - #11956 [component: docs] Use CONTRIBUTING.md to point to developers guide
    - #11977 [BUG] missing functools.wraps makes debugging unawaited _needs_document_lock_wrapper methods difficult
    - #12093 [BUG] Flake8 pre-push test failure
    - #12112 Use channel instead of explicit version for GMap API?
    - #11698 [component: docs] Fixed some typos and changed wording for better tone
    - #11814 Fix webgl dashed line joins with butt end caps
    - #11823 [component: tests] Force webgl backend when requested for testing
    - #11833 simplify CI jobs with composite action
    - #11849 [component: bokehjs] Remove temporary WebGL circle fix
    - #11867 [component: build] Pin to django 3.x
    - #11906 [component: tests] Drop baseline testing on MacOS and Windows
    - #11922 Update copyright statements to 2022
    - #11935 Fix typo in tools.py
    - #11971 [component: build] Fix new typings failures
    - #11993 [component: docs] Add sphinx_copybutton
    - #12040 [component: bokehjs] Unify WebGL markers and rects
    - #12046 [component: bokehjs] WebGL typescript refactor and add quad glyph
    - #12055 [component: bokehjs] Implement WebGL marker line joins
    - #12061 [component: bokehjs] WebGL support for HBar VBar and HexTile glyphs
    - #12084 [component: bokehjs] Simplify EqHistColorMapper calculations
    - #12120 [component: bokehjs] WebGL line refactor
    - #12126 3.0 -> 2.4.3 backports
    - #12130 More 2.4.3 backports
    - #12131 Yet more 2.4.3 backports

2021-11-22    2.4.2:
--------------------
  * bugfixes:
    - #11422 [component: bokehjs] [BUG] `DeserializationError` when trying to change a `DataTable`'s columns with `CustomJS`
    - #11800 [BUG] DeserializationError when plotting graphs
    - #11801 [component: bokehjs] [BUG] Log axis figures don't render if they're not visible at start
    - #11807 [component: bokehjs] Work around issues with initialization-time change discovery
    - #11808 Don't unnecessarily update node/edge renderers in graphs

  * tasks:
    - #11613 [component: docs] Cache-bust custom.css for docs
    - #11791 [component: docs] Update issue template to use new GH forms
    - #11761 [component: docs] Clarify use of color in first steps guide
    - #11762 [component: docs] Replace slash with backslash for PS commands
    - #11767 [component: bokehjs] Upgrade jquery-ui to resolve security concerns
    - #11781 [component: examples] fix transform jitter example
    - #11786 bokeh 2.4.2 backports
    - #11790 [component: build] Bryanv/pin sphinx 42
    - #11797 Add OS to bokeh info
    - #11805 More 3.0 -> 2.4.2 backports
    - #11810 [component: docs] Update docs for new issue forms
    - #11824 Updates for release

2021-10-13    2.4.1:
--------------------
  * bugfixes:
    - #11119 [component: bokehjs] [BUG] varea_stack() and vline_stack() fails to update correctly when new source data is different length
    - #11625 [component: tests] [BUG] Codebase test failures in Windows
    - #11627 [BUG] mypy tests fail in Windows
    - #11629 [BUG] Hover tool takes long time to render
    - #11633 [component: bokehjs] [BUG] RangesUpdate not emitted when using xwheel_pan
    - #11645 [component: bokehjs] [BUG] `bokeh init` creates a `package.json` which refers to the deprecated Bokeh JS node package
    - #11646 [component: bokehjs] [BUG] Using band_hatch_pattern with images doesn't work
    - #11661 [component: bokehjs] [BUG] Issue with line rendering when selecting indices
    - #11670 [component: bokehjs] [BUG] Duplicate change events for autocomplete_input
    - #11679 [BUG] Parallel Plot example with output_backend="webgl" not working
    - #11713 [component: docs] Documentation builds are failing in CI
    - #11644 [component: bokehjs] Actually fix clipping in SVG `<text>` nodes

  * tasks:
    - #11617 [component: docs] Update Team link in footer
    - #11658 [component: build] Support "pip install" from sdist
    - #11618 [component: tests] Reduce Tornado imports
    - #11628 [component: docs] Correct path in dev guide server instructions
    - #11652 [component: build] Update bokehjs' dependencies
    - #11668 [component: docs] Add information about mathjax bundle
    - #11681 [NO SQUASH] Batch of 3.0 -> 2.4 backports
    - #11712 [component: tests] Upgrade baselines to Chrome 94
    - #11722 [component: tests] Update visual baselines on MacOS
    - #11724 [NO SQUASH] More 3.0 -> 2.4 backports
    - #11738 [component: docs] Add release notes for Bokeh 2.4.1

2021-09-15      2.4:
--------------------
  * bugfixes:
    - #7217 [component: bokehjs] Including both log and linear axis types not working
    - #10756 [component: bokehjs] [BUG] Jitter caching too aggressively
    - #10806 Date validation is too lax
    - #10876 [component: bokehjs] [BUG] 'dashed' line style not working properly when using webgl
    - #10898 [component: bokehjs] [BUG] Tabs widget disabled property has no effect
    - #10927 [component: docs] Inconsistent information about ``_units`` property in reference guide
    - #11016 [component: bokehjs] [BUG] Figure name passed to `renderer.glyph.name` but not `renderer.name`
    - #11025 [component: bokehjs] Line and MultiLine produce inconsistent data bbox with trailing NaNs
    - #11035 [component: bokehjs] [BUG] `Bokeh.Widgets` objects missing `tools`, required by `Bokeh.Plotting.gridplot()`
    - #11037 [component: bokehjs] [BUG] Using `sizing_mode` in gridplot layouts requires explicit assignment
    - #11038 [component: bokehjs] [BUG] Calling `figure({title:"some title"})` replaces Title object with string, prevents subsequent updates to title text
    - #11045 [component: bokehjs] Hatch patterns are lost with SVG backend after interaction
    - #11058 [component: bokehjs] [BUG] SVG backend does not support line dash offset
    - #11071 [component: examples] [BUG] Use of np.int is deprecated in numpy 1.20
    - #11139 [BUG] Image.transform does not handle data:image/PNG;base64 string images
    - #11149 [component: bokehjs] [BUG] Inconsistent hatch rotation
    - #11154 [BUG] Non-selected hatching not grayed out
    - #11162 [component: bokehjs] [BUG] Do not make room for invisible tick labels
    - #11178 [component: examples] Broken example: Olympic Sprinters
    - #11197 [component: tests] [BUG] Correct missleading classname in BokehJS unit Test for LogTickFormatter
    - #11216 [BUG] Toolbar properties non-nullable
    - #11217 [BUG] WebGL regressions when setting alpha as an iterable
    - #11276 [component: bokehjs] [BUG] FileInput filename not returning the filenames after upgrading to v2.3.2
    - #11288 [component: bokehjs] [BUG] WebGL non-circle markers revert to canvas when selected
    - #11319 [component: tests] examples' tests fail in CI
    - #11367 [component: bokehjs] [BUG] Ellipse glyph does not render properly in figure legend
    - #11374 [component: bokehjs] [BUG] RadioButtonGroup orientation doesn't have expected effect
    - #11378 [component: bokehjs] [BUG] multi_line with logScale
    - #11402 [component: bokehjs] [BUG] `SVGRenderingContext2D.arc()` differs from Canvas specification, it breaks if used without calling `beginPath()` beforehand
    - #11413 [component: bokehjs] Changing tile provider does not remove attribution
    - #11437 [component: bokehjs] [BUG] HoverTool ignores IndexFilter in CDSView
    - #11444 [component: tests] [BUG] license-related codebase tests on Win10 fail
    - #11446 [component: bokehjs] [BUG] Hover glyphs permanently rendered with vline/hline mode in 2.4.0dev
    - #11457 [component: tests] `MathText` integration tests are not robust
    - #11460 [component: tests] Bokeh-CI unit export tests failing
    - #11474 [component: bokehjs] [BUG] graph_renderer.layout_provider changes via JS code are not displayed on plots
    - #11477 [component: server] [BUG] Increasing memory consumption of bokeh server (part 2)
    - #11479 [component: bokehjs] [BUG] MathText axis labels do not all render in multi-figure layouts
    - #11487 [component: tests] `OpenURL`'s unit tests open popup windows
    - #11508 [component: bokehjs] [BUG] Log auto-scaling not showing all data
    - #11520 [BUG] The update() method is not equivalent to changing widget properties directly
    - #11551 [component: bokehjs] `SVGRenderingContext2D.drawImage()` doesn't respect clipping region
    - #11579 [BUG] Inconsistent handling of Title Text attributes
    - #11587 [component: bokehjs] Clip region is not applied to text in SVG backend
    - #11609 [component: examples] [BUG] Surface3d example is broken
    - #11610 [component: examples] [BUG] Server embed notebook issue
    - #11297 [component: bokehjs] Correctly initialize WebGL non-base marker/scatter glyphs
    - #11370 [component: bokehjs] Handle corner cases in LinearLinterpolationScale.v_compute()
    - #11536 [component: bokehjs] Reassign value on numeric_input high-low change only if needed
    - #11568 Fixing typo error 2
    - #11573 [component: server] Add version as request argument to extension to avoid browser caching
    - #11577 [component: docs] Better formatting for args lists in docstrings
    - #11600 Fix regexes for finding tex delimiter

  * features:
    - #657 Add support for plots in polar coordinates
    - #7317 [component: bokehjs] Add support for line breaks in Label
    - #9261 [component: bokehjs] [FEATURE]Make LegendItems Hideable
    - #10733 BOKEH_STRICT does not raise validation errors
    - #11007 [FEATURE] Add a min_exponent to only show axis labels as exponents for number higher than this exponent
    - #11095 [component: bokehjs] [FEATURE] Add consolidated RangeUpdate event
    - #11120 [component: bokehjs] [FEATURE]Add "maintain_focus" property to ZoomOutTool
    - #11266 [component: bokehjs] [FEATURE] Include toolbar in tab order
    - #11381 [component: docs] [FEATURE] bokeh-plot should parse ReST docstrings in example
    - #11423 [component: bokehjs] [FEATURE] `visible` property for `TableColumns`
    - #11548 [FEATURE] Make `global_alpha` of `ImageRGBA` an `AlphaSpec`
    - #11565 [component: server] URL printed in server startup log always assumes http protocol
    - #11098 [component: bokehjs] Implement all Webgl marker types
    - #11099 [component: tests] Allow to test against a provided git reference
    - #11128 [component: bokehjs] Latex on axis labels
    - #11159 [component: bokehjs] WebGL rect glyph with hatch pattern
    - #11165 Add support for embedding plots/layouts in tooltips
    - #11195 [component: tests] Collect performance metrics during integration tests
    - #11214 [component: bokehjs] Add support for toolbar's overflow menu
    - #11343 [component: bokehjs] WebGL markers and rects reuse arrays and buffers
    - #11420 [component: bokehjs] add latex capabilities to tick labels
    - #11466 add python conveniences to mathtext
    - #11511 Support xyzservices.TileProvider as an input of get_provider
    - #11533 Add support for alternative math text input notations
    - #11585 TeX on Markup widgets Div, Paragraph

  * tasks:
    - #8390 [component: bokehjs] Define a default muted glyph
    - #9329 [component: docs] Document bokeh.sampledata
    - #9671 [component: server] [FEATURE] Enable the Server to serve apps at sub urls like /gallery/image-classifier
    - #9961 [component: docs] Ref Docs need sidebar TOC
    - #10137 [component: docs] [BUG] Anchors in docs can be jumpy
    - #10287 Update to isort 5.7
    - #10391 [component: tests] Test legacy bundles before release
    - #10572 [component: build] [FEATURE] Bokeh Python Wheel packages
    - #10685 [component: docs] Move Bokeh docs to the latest version of pydata-sphinx-theme
    - #10796 [component: docs] Add default browser env var to docs
    - #10839 Drop Python 3.6
    - #10867 Simplify HasProps and MetaHasProps
    - #10877 Remove SRI integrity checks from js_resources.html template
    - #10932 Bring up branch-2.4
    - #10946 [component: docs] Automate python min-version and requirements in docs
    - #10950 Simplify HasProps and MetaHasProps (part 2)
    - #10980 [component: docs] Replace plot_width and plot_height with width and height
    - #11034 [component: bokehjs] [BUG] Palettes not accessible by name for `ColorMapper` objects in BokehJS
    - #11053 [component: build] Separate javascript bundle for WebGL
    - #11135 [component: docs] Fix collapsible code blocks
    - #11138 [BUG] Time for updating one column in a CDS depends on the total number of columns
    - #11142 [component: tests] Codebase test to validate versions.json
    - #11146 [component: bokehjs] json_items should report bokeh version
    - #11147 [component: docs] [BUG] Footer in 2.4 docs broken
    - #11166 Allow `pathlib.Path` wherever raw string paths are supported
    - #11184 Add width and height properties to gridplot()
    - #11211 [component: tests] [BUG] Conflicting test dependencies in downstream CI build
    - #11215 [component: docs] [BUG] Links to Line Properties gives 404 in user guide
    - #11221 [BUG] Use dataclasses for check validation
    - #11255 [component: build] Build deploy action also needs to check the branch
    - #11267 [component: docs] Update extension examples to import from top-level models
    - #11282 Document conda init in Getting Set Up
    - #11298 [component: build] [BUG] Release build env missing dependencies
    - #11301 [component: server] [BUG] Bokeh websocket connection creates large Sec-WebSocket-Protocol header
    - #11354 [component: docs] Update developer docs
    - #11392 address code issues flagged by lgtm
    - #11404 [component: bokehjs] Add `ellipse()` method to `SVGRenderingContext2D`
    - #11415 pandas future warning for commits.py
    - #11428 [component: docs] Reorganize bokeh.plotting in ref guide
    - #11483 Revert kwarg-only args for Theme
    - #11489 [component: docs] [FEATURE] Enhanced docstrings for gallery entries
    - #11505 Fix Bokeh version in CI Build step
    - #11515 [component: docs] Remove Wikimedia tile provider
    - #11574 [component: tests] Restore original values when manipulating `os.environ` in tests
    - #10861 Redesign WebGL backend using ReGL
    - #10930 Replace JS var with let/const across the codebase
    - #10961 [component: bokehjs] Upgrade to TS 4.2 and upgrade other dependencies
    - #10972 replaced old-style string substitution
    - #10979 [component: tests] Add dask/dask to downstream tests
    - #10987 Bryanv/2 3 1 forwardports
    - #11004 [component: build] Add support for incremental TypeScript builds
    - #11019 [component: tests] Improve speed by comparing whole buffers first
    - #11067 [component: docs] add latex extension example with mathjax
    - #11070 [component: bokehjs] Use premultiplied alpha in WebGL
    - #11072 [NO SQUASH] Forward ports to branch-2.4
    - #11073 [component: bokehjs] Drop unnecessary -webkit- prefixes from flexbox
    - #11078 Fix regressions after PR #10930
    - #11090 [component: bokehjs] Simplify rendering code with visuals.apply()
    - #11092 HasProps and misc cleanup
    - #11108 [component: bokehjs] Fix WebGL line regression
    - #11115 [NO SQUASH] Forward ports to branch-2.4
    - #11117 [component: docs] Fix python3 incompatible print in callback docs
    - #11134 [NO SQUASH] more ports from branch-2.3
    - #11140 [component: build] Remove all cyclic dependencies from bokehjs
    - #11145 [component: docs] More ref guide improvements
    - #11183 [component: tests] Additional visual tests for Legend annotation
    - #11187 [component: docs] Expand rst_epilog
    - #11189 [component: tests] Update baselines for Chromium 90
    - #11207 [component: tests] Include Dask testing dependencies in downstream CI
    - #11210 [NO SQUASH] remove black codebase check (#11208)
    - #11219 Use dataclasses in bokeh.io.state
    - #11220 Add support for lazy annotations boilerplate
    - #11224 Full typescript for WebGL code
    - #11225 Improve static typing in `bokeh.command`
    - #11237 [NO SQUASH] 2.3.2 forward ports
    - #11238 [component: bokehjs] Update to TS 4.3-dev and enable `noImplicitOverride`
    - #11246 [component: build] Update bokehjs' dependencies
    - #11252 [component: bokehjs] Fix webgl line alpha issues
    - #11262 [component: bokehjs] Move WebGLRenderingContext use to ReGL
    - #11272 [component: build] Upgrade TypeScript to 4.3-rc
    - #11277 [component: bokehjs] WebGL line glyphs reuse arrays and buffers
    - #11283 [component: bokehjs] Normalize string syntax across bokehjs
    - #11286 [component: docs] docs: fix code snippet in Label
    - #11289 [component: bokehjs] Allow `div(element)` instead of `div({}, element)`
    - #11290 Statically type various parts of bokeh
    - #11304 [component: docs] Update docs for BokehJS visual testing
    - #11314 [component: build] Upgrade to TS 4.3 and refresh package lock files
    - #11322 [component: docs] Add 'experimental' note to extensions chapter
    - #11325 Fix typo in AuthProvider._validate error message. login_url instead of logout_url
    - #11327 Fill-in missing `__future__` imports for lazy annotations
    - #11329 Bump pillow from 8.1.1 to 8.2.0 in /docker-tools/debian
    - #11330 Statically type more of bokeh
    - #11332 Add return type annotation to `__init__`
    - #11337 Add tests for SVG exports
    - #11341 Statically type the return of `json_item()`
    - #11342 [component: build] Refresh `bokehjs/package-lock.json`
    - #11398 [component: docs] Add intro for categorical chapter
    - #11399 [component: tests] Increase session_token_expiration (test)
    - #11409 Bring up 2.3.x changes
    - #11417 Consolidate pip dependencies
    - #11419 Remove OrderedDict
    - #11443 [component: docs] Update wording around output_file()
    - #11454 Fix spec.py and cleanup scripts cruft
    - #11458 [component: tests] Iurypiva/testing svg draw image
    - #11459 [component: examples] Update file_input.py
    - #11463 Skip svg export test
    - #11465 [component: bokehjs] Simplify the SVG backend
    - #11467 [component: docs] Update to Sphinx 4.1
    - #11473 Remove test and extra sections from meta.yaml
    - #11482 Document Refs Cleanup (part 1)
    - #11485 Add panel to downstream tests
    - #11492 Document Refs Cleanup (part 2)
    - #11494 [component: bokehjs] Update bokehjs' bundle sizes and dependencies
    - #11495 [component: bokehjs] Properly test deferred rendering of `MathText` objects
    - #11497 Document Refs Cleanup (part 3)
    - #11499 Document Refs Cleanup (part 4)
    - #11502 Quick fix for CI version check issue
    - #11503 [component: build] Upgrade to TypeScript 4.4 RC
    - #11509 Update resources for pep440 dev versions
    - #11518 More modules under mypy
    - #11525 [component: build] Add bokehjs' mathjax bundle
    - #11532 [component: server] Allow extensions to modify applications in serve subcommand
    - #11534 [component: build] Upgrade TypeScript to version 4.4
    - #11535 Small Document fixes
    - #11544 [component: docs] Update docs for math notations (LaTeX and MathML)
    - #11559 [component: docs] Misc docs build changes
    - #11566 [component: build] Update baselines for Chrome 93
    - #11570 [component: examples] Add LaTeX axes examples
    - #11581 [component: docs] Fix typos, line breaks, and links
    - #11583 [component: examples] Add penguin dataset and example
    - #11584 [component: bokehjs] Mathstring conveniences for axis_labels and tick labels
    - #11586 [component: bokehjs] Add support for `legend_{label,field,group}` to bokehjs' `Figure`
    - #11590 [component: docs] udpate release notes
    - #11595 [component: bokehjs] Require space before blocks
    - #11597 Misc MyPy work
    - #11599 [component: docs] More 2.4 last minute docs
    - #11604 [component: docs] Add and update examples

2021-07-07    2.3.3:
--------------------
  * bugfixes:
    - #11083 [component: bokehjs] [BUG] column ignores css class scrollable from version 2.3.0
    - #11110 [component: bokehjs] [BUG] Bad formatting of y axis labels with theme different from standard
    - #11161 [component: bokehjs] [BUG] Div model layout differences between bokeh 2.2.3 and 2.3.1
    - #11188 [component: bokehjs] [BUG] Layout regression in panel introduced by PR #11123
    - #11284 [component: bokehjs] Active tab should be in view on render
    - #11344 [component: bokehjs] [BUG] plot's height can not go below 600px with sizing_mode = 'stretch_both'
    - #11365 [component: bokehjs] [BUG] dropdown menu is hidden in multi choice, others are not
    - #11380 [component: bokehjs] [BUG] Extensions with package.json should fetch exact version from CDN
    - #11384 [component: server] [BUG] app_index.html is missing quotes in href attribute

  * tasks:
    - #11242 [component: docs] Simplify instructions for GOOGLE_API_KEY
    - #11377 Backport changes from 2.4 to 2.3.3
    - #11406 [component: docs] Bryanv/2 3 3 release notes

2021-05-10    2.3.2:
--------------------
  * bugfixes:
    - #11169 [component: bokehjs] [BUG] Python callback triggered by SelectionGeometry event is slow compared to js equivalent
    - #11182 [component: bokehjs] [BUG] Forward slash is changed to %2F in link
    - #11203 [component: bokehjs] [BUG] Cannot clear active of RadiGroup

  * tasks:
    - #9636 Remove Black Formatting
    - #11175 Replace jinja2.Markup deprecated with Jinja 3.1

2021-04-07    2.3.1:
--------------------
  * bugfixes:
    - #10822 `DataModel` is always serialized
    - #10887 [component: bokehjs] [BUG] FileInput cancel operation throws error
    - #10912 [component: bokehjs] [BUG] 'freehand_draw' is not in name space for tools
    - #10942 [component: examples] [BUG] Spectrogram example does not compile
    - #11000 [component: bokehjs] Make `FuncTickFormatter` always produce strings
    - #11006 [component: bokehjs] [BUG] Log axis exponents react differently when font size is defined in anything but px (e.g. pt)
    - #11026 [component: bokehjs] [BUG] Serialization of MessageSent document event includes all model references
    - #11028 [component: bokehjs] [BUG] Figure events raise errors in the presence of edit tools
    - #11029 [component: bokehjs] [BUG] DataModel warns about being registered multiple times
    - #11054 [component: bokehjs] [BUG] Invalid BBox of BoxSelection
    - #11057 [component: bokehjs] [BUG] Sizing mode example layout broken in docs
    - #11061 [component: bokehjs] [BUG] Tilerenderer snap_back path issue with setv
    - #11062 [component: bokehjs] [Bug] ColorPicker color not updated on selection

  * features:
    - #10569 [FEATURE] JupyterLab 3 dynamic extension loading

  * tasks:
    - #10888 [component: docs] [BUG] FileInput accept-type '.txt' file-extension filtering does not work as expected
    - #10897 [component: docs] Docs: remove reference of outdated 'nbserverproxy'
    - #10919 [component: docs] [BUG] Deprecate broken HSL objects
    - #10926 [component: docs] [BUG] BokehJS component default value not passing through
    - #10934 [component: docs] bokeh_releases needs to process files more carefully
    - #10941 Minor cleanup after PR #10939
    - #10943 [component: build] [BUG] Cloudfront invalidation error on full release
    - #10957 [component: build] Update versioneer version?
    - #11002 [component: docs] PolyAnnotation is missing from the user guide
    - #11013 [component: bokehjs] [FEATURE] BokehJS usage : documentation updates
    - #11097 [component: docs] Document new JLab install process
    - #11112 [component: build] Update build jobs for base OS update
    - #10953 [component: docs] Add information about Bokeh channel for installation
    - #10973 Add missing comma in example code
    - #10986 Bryanv/2 3 1 backports
    - #10997 [component: docs] Clarify explanation in First Steps 1
    - #11024 [component: bokehjs] Simplify rendering of Line and MultiLine glyphs
    - #11043 Backport: Simplify rendering of Line and MultiLine glyphs (#11024)
    - #11086 Fixed missing f in f-string
    - #11137 [component: docs] Release notes for 2.3.1

2021-02-24      2.3:
--------------------
  * bugfixes:
    - #1426 Mixins have vectorized properties which doesn't make sense outside glyphs
    - #6781 HoverTool.renderers accept List(Renderer) but supports only List(GlyphRenderer)
    - #8489 [component: bokehjs] Graphical bugs with webgl and time series data with NaN points
    - #9951 [BUG] Impossible to use tuples as colors
    - #10136 [component: bokehjs] Arrows - 'white background' under the arrow
    - #10218 [component: server] [BUG] Periodic callback don't stop in Django
    - #10339 [component: tests] examples' tests fail because headless browser doesn't start in time
    - #10407 [component: bokehjs] [BUG] Select is not updated upon setting value after changing the options
    - #10411 [component: examples] [BUG] issues with latex_example_full
    - #10452 [component: bokehjs] [BUG] MultiChoice disabled attribute is not working
    - #10454 [component: bokehjs] LabelSet does not display with categorical coordinates
    - #10457 [component: bokehjs] [BUG]Reverse Y axis range with circle
    - #10458 [component: bokehjs] [BUG]multi_line doesn't support hover.
    - #10468 [component: bokehjs] [BUG] `DateSlider` and `DateRangeSlider` ignore `format` set to an instance of `TickFormatter`
    - #10481 [component: bokehjs] [BUG] Unable to use CustomJS callback on HoverTool with GraphRenderer
    - #10484 [component: docs] Typo in https://docs.bokeh.org/en/latest/docs/user_guide/embed.html#autoload-scripts
    - #10498 [component: bokehjs] [BUG] GridBox not rebuilt when changing cols or rows attributes
    - #10506 [component: bokehjs] [FEATURE] Hiding hex number from color swatch in hover tool
    - #10507 [component: bokehjs] [BUG] Cannot disable MultiSelect in 2.2.1
    - #10536 [component: server] Bad `super` call in "contexts.py"
    - #10541 [component: bokehjs] [BUG]Slope annotation is not drawn with gradient of 0
    - #10559 [component: bokehjs] [BUG] Modifying a tooltip may result in errors
    - #10575 [component: bokehjs] [BUG] Whiskers do not appear in categorical plots?
    - #10581 [component: docs] [BUG] Outdated example for CustomJSHover
    - #10589 [component: bokehjs] [BUG] multi_line is rendered incorrectly when used with a view with filters
    - #10594 [component: bokehjs] [BUG] Whiskers `base` have reduced precision
    - #10595 [component: docs] [BUG] Minor Typo in Gallery documentation.
    - #10603 [component: build] [BUG] 2.3.0dev2 introduced an erroneous dependency on "python_abi 3.9.* *_cp39"
    - #10604 [component: bokehjs] quote (') from networkx index node are translated to (&#x27;)
    - #10611 [component: bokehjs] bokehjs' unit tests fail after recent changes
    - #10613 [component: docs] Add TOC to reference doc
    - #10643 [component: bokehjs] [BUG] 2.3.0dev5 - Using a widget as a parameter in its own js callback throws 'Maximum call stack size exceeded' on JS side
    - #10666 [component: bokehjs] [BUG] Webgl perf regressions in branch-2.3
    - #10668 [BUG] Warnings about integrity checks when using CDN resources with extension
    - #10670 [component: bokehjs] [BUG] PolyEditTool vertices are not redrawn on data source update
    - #10675 [component: bokehjs] [BUG] ScientificFormatter shows 0 as 0.000e+00
    - #10695 [component: bokehjs] [BUG] MultiChoice options covered up by DataTable
    - #10697 [component: bokehjs] [BUG] ScientificFormatter error formatting negative numbers
    - #10702 [component: bokehjs] [BUG] TextAreaInput value_input no change event detected
    - #10721 [component: build] CI is failing with ModuleNotFoundError: No module named 'bokeh'
    - #10725 [component: bokehjs] [BUG] SVG backend mirrors image in plot
    - #10738 [component: bokehjs] [BUG] MultiLine datetime precision loss
    - #10754 [component: bokehjs] [BUG] Hover indices broken
    - #10755 [component: bokehjs] Unequal length columns cause size mismatch error
    - #10784 [component: bokehjs] [FEATURE] Differential re-rendering of updated plots
    - #10809 [component: bokehjs] [BUG]figure labels missing after updating the CDS
    - #10819 [component: docs] [BUG] Example in LabelSet documentation doesn't seem to be correct
    - #10826 [component: bokehjs] SVG canvas doesn't implement `ctx.fill(fill_rule)`
    - #10837 [component: bokehjs] Public style/**/*.d.ts are not robust enough for path mapping
    - #10841 [BUG] Ensure non-nullable properties in JS are validated in Python
    - #10851 [BUG] Layout regressions
    - #10852 [component: bokehjs] [BUG] Lasso tool does not render
    - #10853 [component: bokehjs] [BUG] Ajax and Server sent examples broken
    - #10855 [component: bokehjs] Only main glyphs has signals connected in `GlyphRenderer`
    - #10875 [component: docs] [BUG] Marker docs require updating
    - #10879 [component: docs] [BUG] Link to export_svg() in export.rst is broken
    - #10880 [BUG] ProxyToolbar.logo: expected a value of type str, got None
    - #10913 [BUG] Error while testing 2.3.0dev13 with Dask
    - #10924 [component: docs] [BUG]Custom Widget Example fails to load (2.3.0rc2)
    - #10647 [component: bokehjs] [Spinner] Avoid twice incrementation with laptop pad
    - #10701 Fix backwards compatibility alias for InspectTool
    - #10760 [component: tests] Manually quote arguments to npx
    - #10860 [component: bokehjs] Resolve IE compatibility issues

  * features:
    - #2230 [component: bokehjs] expose tap and hover tool hit radius
    - #3674 Add DataModel base class
    - #5618 [component: bokehjs] CategoricalColorMapper ColorBar
    - #5676 [component: bokehjs] Encode colors as 32 bit integers by default
    - #6835 [component: bokehjs] Vectorized Arrow Heads
    - #7845 Allow both tap and doubletap gestures with TapTool
    - #8169 [component: bokehjs] Line break in categorical axis labels
    - #8954 [component: bokehjs] Adding support for superscript exponents
    - #9169 [FEATURE] SVG export for gridplot
    - #9847 [component: bokehjs] Add support for ES module entrypoint
    - #9929 [component: bokehjs] Add hatch rendering to Box Annotation
    - #10203 [component: bokehjs] [FEATURE] line_dash vectorizable where appropriate
    - #10295 [component: bokehjs] [FEATURE] Let AutocompleteInput accept input not present in completion list
    - #10472 [component: bokehjs] [FEATURE] Auto-ranging in network graphs
    - #10505 [component: bokehjs] Add button_type with no border
    - #10576 [FEATURE] 'transparent' as an alias for `rgba(0, 0, 0, 0)`
    - #10599 [component: bokehjs] [BUG] BokehJS minimal example is not working
    - #10612 [component: bokehjs] Hovertool does not work for dynamically added glyphs
    - #10637 [component: bokehjs] Need "Edges" only inspected policy for graphs
    - #10662 [component: bokehjs] [FEATURE]Allow naming (title) of Tools
    - #10798 [component: server] [FEATURE] Support Tornado WebSocket compression on server
    - #10824 [component: bokehjs] Add Hatch Patterns for Glyphs
    - #10836 [component: bokehjs] [FEATURE] Add new star marker
    - #10323 [component: bokehjs] Add support for smooth curve glyphs
    - #10493 Accurate color bar ticking with eqhist mapping
    - #10624 [component: bokehjs] Auto-generate index.ts based on tsconfig's input patterns
    - #10640 Implement grad and turn CSS-based angle units
    - #10734 [component: bokehjs] Add support for Less/CSS to extensions
    - #10847 [component: bokehjs] Add star marker - webgl extension

  * tasks:
    - #8260 [component: tests] Strict "image diff" selenium tests
    - #9007 [component: docs] [DOCS] Add mention of Themes to "Styling Visual Attributes" docs page
    - #9297 [component: bokehjs] Relese dev npm packages along conda packages
    - #9341 [component: build] Archive release artifacts
    - #9858 [component: bokehjs] Publish prerelease npm packages under `dev` tag
    - #9910 Remove Explicit Marker Models
    - #9958 [BUG] Better warn about passing source in the CustomJSFilter args dict for 2.0 and above
    - #10224 Rename main branch
    - #10333 bokeh build includes copyright statement from Anaconda in my bokeh extension
    - #10341 [component: docs] Developer Docs have outdated info on @gen.coroutine decorator
    - #10343 [component: bokehjs] Upgrade to TypeScript 4.0
    - #10413 marker_compare.py does not exercise webgl
    - #10420 Delete old pypi packages at anaconda.org?
    - #10461 [BUG] Chrome driver fails on WSL2 Ubuntu 18 (and other containerized environments)
    - #10465 [component: docs] [TASK?] docs/{release,installation}.rst have empty toctrees, which can be removed
    - #10467 [component: docs] Redundant TOC in developer documentation can be removed
    - #10473 [component: docs] Add link to community page on all websites
    - #10486 [component: docs] Add check for GOOGLE_API_KEY in conf.py
    - #10508 [component: bokehjs] Improve support icon only button by removing space
    - #10514 [component: tests] Win / Python 3.8 CI job failing
    - #10539 [component: docs] Help requested: Apply writing style guidelines to docs
    - #10551 [component: docs] Missing `/y` option in windows make.bat slows down docs build
    - #10614 [component: docs] Storing static PNG for OpenGraph
    - #10628 [component: docs] Reference guide should display property defaults
    - #10667 [component: docs] Cross reference user guide widgets examples to reference guide
    - #10671 [component: docs] Unclear which Events `on_event` is compatible with
    - #10673 [component: bokehjs] Unintended (?) changes to package(-lock).json
    - #10728 [component: docs] [FEATURE] Linting for docs
    - #10744 [component: docs] [BUG] Stamen Images Broken in Documentation in Chrome
    - #10748 [component: docs] [BUG] DataTable documentation suggestions
    - #10783 [component: examples] [FEATURE] boxplot.py example: improve performance for larger datasets
    - #10803 [component: build] `conda` warnings from bokeh-ci workflow
    - #10863 [component: server] [BUG] bokeh.client max nessage size not configurable
    - #10883 [component: bokehjs] Update GMAP to use an unretired version of the javascipt api
    - #10895 [component: docs] Document new types of color types and color arrays
    - #10906 [component: docs] [BUG] hbar_stack example in documentation does not work
    - #10908 [component: docs] [BUG] Update server.rst - "acme:com"?
    - #10935 Dask compat issues w/ nullable
    - #10433 [component: bokehjs] Migrate property definitions to use kinds
    - #10450 [component: bokehjs] Miscellaneous refactorings in bokehjs
    - #10469 [component: bokehjs] bokehjs development workflow improvements
    - #10483 [component: docs] Add CoC information in documentation site
    - #10491 [component: bokehjs] Split off range management code from PlotCanvas
    - #10492 [component: bokehjs] Strictly type View.serializable_state()
    - #10495 [component: tests] AutocompleteInput: add more tests
    - #10500 [component: docs] Add style guidlines and refactor
    - #10519 [component: docs] Restructure documentation landing page
    - #10520 [component: docs] Improve inline/link colors for docs
    - #10528 [component: docs] removed outdated CI instructions
    - #10532 [component: docs] [Docs] Fix display of example boxes on very small screens
    - #10537 [component: bokehjs] Factor out code from PlotView
    - #10549 [component: docs] Annotation docs edits
    - #10550 [component: build] Test on Python 3.9 in CI
    - #10554 [component: tests] Pin pytest 6.0*
    - #10556 [component: docs] Task #10539: Jupyter notebook edits
    - #10562 [component: docs] #10539 layout.rst
    - #10563 [component: docs] 10539 bokehjs.rst doc edit
    - #10565 [component: docs] 10539 export.rst doc edit
    - #10579 [component: docs] #10539 graph.rst doc edit
    - #10591 [component: bokehjs] Improve bokehjs' code quality (part 0)
    - #10592 [component: bokehjs] Clean up usage of `requestAnimationFrame`
    - #10597 [component: docs] #10539 categorical.rst doc edit
    - #10598 [component: docs] Switch sphinx-panels from pip to conda
    - #10602 [component: bokehjs] Redesign how serialization works in bokehjs
    - #10605 [component: docs] #10539 compat.rst
    - #10610 [component: docs] #10539 geo.rst doc edit
    - #10616 [component: docs] Add OpenGraph metadata to docs
    - #10618 [component: bokehjs] Implement views for arrow head models
    - #10625 [component: docs] align webgl.rst with style guide, task #10539
    - #10632 [component: docs] #10539 applied style writing guidelines to tools.rst
    - #10633 [component: docs] Fix new sphinx issue with bokeh.palettes
    - #10634 [component: bokehjs] Update bokehjs' dependencies
    - #10646 [component: bokehjs] Use the correct variant of hasOwnProperty check
    - #10650 [component: bokehjs] Upgrade to TypeScript 4.1 RC
    - #10653 [component: bokehjs] Split visuals into scalar and vector
    - #10655 [component: bokehjs] Unify initialization of visuals and data
    - #10660 [component: docs] Update glossary
    - #10665 [component: docs] Add new first steps guide to replace quickstart
    - #10679 [component: docs] #10539 embed.rst
    - #10681 [component: bokehjs] Add an actual webgl backend test
    - #10682 [component: docs] #10539 extensions.rst
    - #10696 [component: docs] Update data.rst
    - #10699 [component: build] Migrate CI {goanpeca->conda-incubator}/setup-miniconda
    - #10707 [component: bokehjs] Detect dependency cycles in build and fix existing cycles
    - #10708 [component: bokehjs] Upgrade to TypeScript 4.1 and upgrade other dependencies
    - #10729 [component: docs] Edit first steps guides
    - #10730 [component: bokehjs] Add support for publishing npm packages
    - #10732 [component: bokehjs] Redesign inclusion of CSS modules into bokehjs
    - #10759 [component: bokehjs] Upgrade to Chrome/Chromium browser 87.x
    - #10764 [component: bokehjs] Add visual tests for Legend annotation
    - #10766 [component: docs] 10539 plotting.rst
    - #10779 [component: bokehjs] Redesign ColorBar in terms of the layout
    - #10791 [component: docs] 10539 server.rst
    - #10815 [component: bokehjs] Replace CSS based font metrics with canvas based
    - #10823 [component: docs] Remove Vale
    - #10829 [component: docs] Fix minor typos and inconsistencies
    - #10832 [component: docs] Update concepts.rst and cli.rst
    - #10835 [component: bokehjs] Infer viewport size in bokehjs integration tests
    - #10843 Update copyright dates and bokehjs' license
    - #10848 [component: docs] Incorrect Example updated
    - #10862 Add Bokeh8 palette
    - #10865 [component: bokehjs] Miscellaneous bokehjs build changes
    - #10873 [component: docs] Update URL for numpy intersphinx inventory
    - #10922 [component: bokehjs] Fix LogAxis' labels under rotation and add tests
    - #10923 [component: bokehjs] Bump minimum nodejs version to 14+
    - #10933 [component: docs] add 2.3 release notes

2020-10-19    2.2.3:
--------------------
  * bugfixes:
    - #10488 [component: bokehjs] In python3, rectangle does not appear when x axis is type datetime

2020-10-12    2.2.2:
--------------------
  * bugfixes:
    - #10453 [component: server] [BUG] KeyError when display certain glyphs on the server
    - #10521 [component: bokehjs] Selectively update data when CDSView changes

  * tasks:
    - #10451 [component: bokehjs] Update bokehjs' dependencies

2020-08-31    2.2.1:
--------------------
  * bugfixes:
    - #10426 [component: bokehjs] INLINE_LEGACY does not work (CDN.legacy = True does work)
    - #10431 [component: server] [BUG] pull_session not working in Win10 without this import statement: 'from bokeh.server.server import Server'
    - #10434 Bokeh not embedding plot in Django app sea_surface example [BUG]
    - #10435 [BUG] Regression causing multiple js_on_event subscribers to be ignored
    - #10443 [BUG] incorrect Plot._check_bad_extra_range_name
    - #10448 [component: bokehjs] DataTable DateFormatter does not handle NaT

2020-08-24      2.2:
--------------------
  * bugfixes:
    - #5589 Some WebGL not working on Safari
    - #6775 [component: bokehjs] SVG backend not correctly coloring glyphs in legends
    - #7707 [component: bokehjs] Linking the ranges of plots will break the LODEnd event
    - #8046 [component: bokehjs] Extra whitespace with SVG export
    - #8446 [component: bokehjs] SVG not displaying scatter output
    - #8744 [component: bokehjs] Plots containing arrows fail to render correctly with svg output backend.
    - #9001 [component: bokehjs] hatch_pattern and svg
    - #9213 [component: bokehjs] Svg backend cannot draw annular_wedge correctly [BUG]
    - #9436 [component: bokehjs] [BUG] Arrow glyph does not update
    - #9551 [component: bokehjs] [BUG] ```export_svg``` shifting x-axis upward and overlapping with ticks in Bokeh v1.4
    - #9927 [component: bokehjs] [BUG] MultiChoice displayed value is not updating
    - #10002 [component: bokehjs] Bokeh not rendering, stuck on Loading BokehJS [BUG]
    - #10108 webdriver failing to find installed firefox/geckodriver
    - #10146 [BUG] `js_on_event` doesn't work when used in a callback
    - #10147 [component: bokehjs] [BUG] `TileRenderer` ignores the `visible` property
    - #10153 [component: bokehjs] [BUG] Typed Arrays returned as dicts
    - #10164 custom latex examples do not run
    - #10174 [BUG] Incorrect type of `Select.options`
    - #10191 [component: bokehjs] [BUG] Tools in toolbar flickering and occasionally ignores clicks when HoverTool and hover glyph used
    - #10193 [component: bokehjs] [BUG] `GeoJSONDataSource` incorrectly processes `MultiPolygon` geometry type
    - #10195 [component: bokehjs] [BUG] visual glitch on empty plots with a second y-axis
    - #10215 [component: bokehjs] [BUG] Band is not updated when the model is changed
    - #10219 [component: bokehjs] [BUG] Misplaced Rects when using incomplete categorical ranges
    - #10233 [component: bokehjs] [BUG] bokeh js v2.x legacy libraries
    - #10246 [component: bokehjs] [BUG] wegbl and gridplot with a visible=False element
    - #10249 [component: bokehjs] [BUG] SaveTool generates smaller image than plot
    - #10251 [component: bokehjs] [BUG] DataTable column sort not working with NaNs
    - #10273 [BUG] export_svgs() function creats two files (one is empty)
    - #10281 [component: bokehjs] [BUG] line selection is broken
    - #10301 [component: bokehjs] bokehjs' version has duplicated dev suffix
    - #10302 [component: bokehjs] [BUG] Slider values increment by 2x steps
    - #10305 [component: bokehjs] SVG backend doesn't respect NaN/non-finite values
    - #10319 [component: bokehjs] [BUG] $name not being passed to hovertool for image plots
    - #10320 [component: bokehjs] Plotting with transforms behavior change
    - #10324 [component: bokehjs] Image Hover is broken
    - #10334 [component: bokehjs] Chrome 84 breaks toolbar rendering
    - #10336 [BUG]  bokeh.embed.components outputs escaped javascript
    - #10358 [component: bokehjs] [BUG] slickgrid import has syntax error
    - #10361 [component: bokehjs] Autoload with widgets fails if earlier autoload does not specify widgets
    - #10362 [component: bokehjs] [BUG] If axis label is added/removed, the layout is not changed right away
    - #10365 [component: bokehjs] Tooltip chooses wrong side in grid plots
    - #10367 [component: bokehjs] [BUG] NumericInput and Spinner several bugs
    - #10370 [component: bokehjs] ImageURL doesn't respect anchor property when computing bounds
    - #10394 [component: bokehjs] [BUG] Can't add tabs after closing a tab
    - #10409 [component: examples] Spectrogram is broken
    - #10412 [component: bokehjs] [BUG] server_session is completely broken
    - #10238 [component: docs] Fix windows docs build issues
    - #10244 [component: bokehjs] Handle type="module" w/o entry point packages
    - #10271 fix over-quoting by components
    - #10378 [component: bokehjs] Distinguish raw strings from HTML in replace_placeholders()

  * features:
    - #3653 [component: server] Use a different error for "can't open socket" vs "404"
    - #6864 [component: bokehjs] DataTable autoEdit expose
    - #8595 [component: bokehjs] [Feature request] Allow DataTable to take its natural height
    - #8924 [component: bokehjs] Allow to derive ColorBar's low/high from data
    - #9169 [FEATURE] SVG export for gridplot
    - #9654 [FEATURE] Iterate over submodels of a model and draw submodel graph
    - #9956 [component: bokehjs] [FEATURE] varea_stack support in bokehjs
    - #10179 [component: bokehjs] [FEATURE] Allow any number in spinner using step=None
    - #10265 [FEATURE] Add a DocumentReady event
    - #10374 [FEATURE] Allow defining custom format for NaNs in DataTable NumberFormatter
    - #10066 [component: bokehjs] Add support for copying canvas to clipboard
    - #10353 Enhancements for DataTable

  * tasks:
    - #10083 [component: bokehjs] bokehjs needs a better assertion framework
    - #10086 [component: tests] Restore BokehJS linting
    - #10089 [component: bokehjs] Simplify/refactor filters in bokehjs
    - #10207 Need to run CI on release branches
    - #10209 [component: bokehjs] Naming for new coordinate systems
    - #10213 [component: build] Issues / Changelog script will need update
    - #10234 [component: bokehjs] Improve responsiveness when hovering over many points
    - #10252 Deprecate Oval?
    - #10282 [component: docs] Update blog links on all websites to point to Medium
    - #10283 [component: docs] Contributing guide needs updating wrt. BEP 6
    - #10284 [component: tests] [BUG] Housekeeping: remove documentation references to py.test
    - #10289 Housekeeping: Update python idioms
    - #10306 [BUG] cElementTree has been deprecated and will be removed in favor of ElementTree
    - #10310 [component: docs] [BUG] Link in docs is not working for fill color property
    - #10329 [component: bokehjs] Change NumberArray to Float32Array?
    - #10344 [component: docs] Documentation and examples updates for 2.2 release
    - #10347 [component: docs] Adding links to BEP 6 and BEP landing page to developer docs
    - #10397 [component: docs] Color site for OpenURL no longer exists
    - #10161 [component: bokehjs] Redefine min()/max() and introduce minmax() function
    - #10162 [component: bokehjs] Reduce memory footprint of data indexing
    - #10163 [component: bokehjs] Don't sort indices by distance in _hit_point()
    - #10176 [component: bokehjs] Ensure typed arrays are used for storing numerical data
    - #10185 [component: bokehjs] Fill in the gaps in bokehjs' property definitions
    - #10187 [component: docs] Fix typo in docs.
    - #10200 [component: bokehjs] PlotLayout -> core.layout.BorderLayout
    - #10201 [component: bokehjs] Drop layout's computed variables in favour of bbox
    - #10202 [component: bokehjs] A basis for sub-coordinate systems
    - #10208 [component: bokehjs] Rewrite gloo in TypeScript and add it to bokehjs
    - #10222 [component: build] Fixes for sphinx 3.1.1
    - #10225 [component: bokehjs] Improve performance by replacing _build_discontinuous_regions()
    - #10226 [component: bokehjs] Optimize `HasProps.setv(attrs, {silent: true})`
    - #10227 Forward merge from 2.1.1
    - #10229 [component: bokehjs] Redesign the implementation of CDSView's filters
    - #10235 [component: bokehjs] Redesign "materialization" of data specs
    - #10239 [component: build] Release Automation (pt 1)
    - #10240 [component: bokehjs] Corrected EqHistColorMapper with inverted colormap edge transform
    - #10241 [component: bokehjs] Allow to resize images in visual tests
    - #10257 [component: docs] Misc warnings cleanup
    - #10260 [component: docs] #8448 Fix typo "do no yet work" -> "do not yet work" in bokeh/sphinx/source/docs/user_guide/interaction/legends.rst
    - #10262 [component: bokehjs] Bump electron from 1.8.8 to 9.1.0 in /bokehjs/examples/electron
    - #10269 [component: docs] Fix typos in User Guide
    - #10272 [component: bokehjs] Improve performance of selections
    - #10275 [component: docs] Fix minor typos
    - #10277 [component: docs] Docs change anaconda install source
    - #10298 Add bokeh logo palette; remove rogue double-quote from template
    - #10304 [component: docs] Add note about nginx large_client_header_buffers to docs
    - #10315 [component: bokehjs] Bump lodash from 4.17.15 to 4.17.19 in /bokehjs
    - #10316 [component: server] Require auth on WSHandler
    - #10330 [component: bokehjs] Initial webgl cleanup
    - #10337 [component: docs] Fix typos in Dev Guide
    - #10338 [component: bokehjs] Replace for-in loop with for-of and keys()/values()/entries()
    - #10342 [component: bokehjs] Update bokehjs/package.json
    - #10346 [component: tests] Perform eslint checks on codebase tests
    - #10348 [component: bokehjs] Upgrade to SlickGrid 2.4.27
    - #10350 [component: bokehjs] Fix bokehjs' legacy bundles
    - #10352 Rev pillow version for sec advisory
    - #10354 [component: bokehjs] Code dupe experiements
    - #10357 [component: docs] Update out of date HoverTool docstring
    - #10363 [component: bokehjs] Modernized DataTable styling
    - #10393 [component: tests] Mark webdriver's tests as flaky
    - #10402 [component: bokehjs] Redesign SVG backen

2020-08-18    2.1.1:
--------------------
  * bugfixes:
    - #10172 [component: bokehjs] [BUG] Can't resolve 'styles/annotations.css' when importing BokehJS
    - #10175 [component: server] [BUG] Serve application at random port failed
    - #10181 [BUG] Unable to set `LabelSet.text_align` with `bokeh serve`
    - #10197 [BUG] Can't select bar_line_color in ColorBar
    - #10204 [component: bokehjs] return typed arrays as lists
  * tasks:
    - #10212 [component: docs] Release notes for 2.1.1

2020-06-14    2.1.0:
--------------------
  * bugfixes:
    - #7296 [component: bokehjs] Fix orient == 0 case in sidepanel.apply_label_text_heuristic()
    - #9218 [component: bokehjs] [bug] shared columndatasource issues in js callback (uncaught typeerror: cannot read property 'connect' of undefined)
    - #9230 [component: bokehjs] [bug] webgl + cdsview seems to use incorrect marker fill colours
    - #9515 [layout] [bug] layout engine much slower on chrome
    - #9856 [component: bokehjs] [component: build] [bug] bokehjs build does not abort on compilation error
    - #9871 [component: bokehjs] [bug] tablecolumn doesn't use `field` when `title` is not set
    - #9909 [component: bokehjs] Bad toolbar highlight in "dark" modes
    - #9915 [component: docs] [bug] the footer on the documentation website extends past its visible area
    - #9924 [component: server] [regression] [bug] django server resources are not working
    - #9953 [component: bokehjs] [bug] race condition between legend and glyph when using `legend_label`
    - #9959 [component: bokehjs] [bug]the hover tool is not disaplyed when the mouse is directly over text
    - #9965 [component: docs] [typo] `cumsum()` transform function docstring mistake
    - #9987 [component: docs] [bug] `factorrange`'s `start` property's help string references `end`
    - #10022 [component: bokehjs] [widgets] [bug] datepicker.disabled doesn't always work
    - #10040 [component: bokehjs] [feature] allow named columns to be used in edittools
    - #10042 [component: bokehjs] [bug] bad label rendering with hbar / subgroup_label_orientation
    - #10072 [component: bokehjs] Bokehjs leak a lots style tag in head tag cause a slow performance
    - #10088 [component: build] Only use local bokeh package in tests
    - #10103 [component: docs] [bug] using anchors in the api reference hides the anchored element under the header
    - #10105 [component: docs] [bug] `cd sphinx; make serve` doesn't work
    - #10107 [component: bokehjs] Settable active state of toolproxys in gridplot
    - #10114 [component: bokehjs] [svg] Resolve issues with resizing and clearing svg canvas
    - #10123 [component: bokehjs] [layout] [regression] Canvas doesn't repaint after layout resize
    - #10126 [component: bokehjs] [bug] model.serializable_attributes method removed in bokeh master
    - #10128 [bug] resource warning unclosed file... _sri.json possible resource leak
    - #10140 [notebook] Fixed typo when registering google colab comms
  * features:
    - #2326 [component: bokehjs] Toggle selection of objects with shift+click
    - #4567 [component: bokehjs] Make tools active state updateable
    - #9863 [component: bokehjs] [feature] add "dot" marker variants
    - #9890 [component: bokehjs] Some new markers
    - #9922 [component: bokehjs] Autocompleteinput has no case insensitive option
    - #9963 [feature] add a lineedittool
    - #10021 [component: bokehjs] Add support for document event batching
    - #10132 [API: models] [feature] edittool.empty_value should support
  * tasks:
    - #5744 [component: bokehjs] Use only one of global.isnan and isstrictnan
    - #5800 [component: tests] Hard pass/fail test of some kind of basic glyph drawing
    - #8572 [component: tests] Transforms.py is missing property unit tests
    - #8741 [component: docs] Elevate our code of conduct
    - #9302 [component: bokehjs] [notebook] Push_notebook does not work in google colaboratory
    - #9704 [component: docs] [component: examples] [feature] need to add tile provider demo
    - #9813 [component: server] [feature] compose bokeh server with other tornado http servers
    - #9844 [component: bokehjs] Upgrade nouislider
    - #9913 [component: bokehjs] Use selection() instead of hittest helpers
    - #9941 [component: bokehjs] Deprecate css rendering modes for annotations
    - #9952 [component: docs] [infra] Bust caching of versions.json
    - #9971 [bug] warn about using the same layout element (here: plot) multiple times
    - #9972 [component: bokehjs] [widgets] Select widget un-focuses after selection
    - #9973 Bump jquery from 3.4.1 to 3.5.0 in /bokehjs
    - #9976 [component: bokehjs] [component: build] Update bokehjs' dependencies
    - #9977 [component: build] [infra] Use system installed google chrome in ci
    - #9978 [bug] cannot apply patch to [id] which is not in the document anymore
    - #9982 [component: docs] Bokehjs user guide section not using sri hashes
    - #9990 [component: docs] [bug] elaborate on how the margin attribute works in documentation
    - #9996 [component: tests] Drop support for s3 upload in examples' tests
    - #10000 [component: bokehjs] [component: tests] Add visuals tests for marker glyphs
    - #10001 [component: bokehjs] Clean up type situation around buffer handling
    - #10004 [component: bokehjs] Clean separation between models' and properties' responsibilities
    - #10006 [component: bokehjs] [performance] Speed up setting up of visuals
    - #10008 [component: bokehjs] [svg] Incorporate svgrenderingcontext2d into bokehjs
    - #10012 [component: bokehjs] Use map<k, v> or set<v> instead of {[key: string]: v}
    - #10016 [component: docs] Added ':' before execution command
    - #10026 [component: bokehjs] [typescript] Make show(), build_views(), etc. produce most specific types
    - #10030 [component: docs] Add google api key requirements into documentation dev guide
    - #10035 Miscellaneous changes
    - #10036 [component: bokehjs] Refactor implementation of image and imagergba glyphs
    - #10050 [component: build] Install channels from conda forge
    - #10053 Revert "spanset"
    - #10054 [component: bokehjs] Use map instead of {} as view storage
    - #10061 [component: bokehjs] Drop usage of our set type in favour of the native set
    - #10068 [component: bokehjs] Reduce usage of for-in loop an in operator
    - #10069 [component: bokehjs] Improve support for ndarray serialization
    - #10074 [component: docs] Fixed #10038 (tornado, ui/ux, search feature improvement)
    - #10077 Resolve f541 after upgrading to flake8 >=3.8
    - #10084 [component: bokehjs] More usage of map<k, v> and set<v>
    - #10085 [component: bokehjs] Make menus usable with tool proxies
    - #10091 [component: docs] Update 2.1.0.rst
    - #10096 Revert "add support for versioned bokehjs script tags and cdn urls"
    - #10101 [component: tests] Drop examples' baseline and image testing
    - #10116 [component: bokehjs] [component: tests] Chrome 83 breaks image diff tests
    - #10119 [component: docs] Fix a typo in docs
    - #10129 [component: examples] [component: tests] Restore examples' images and upload as an artifact
    - #10130 2.1 updates
    - #10142 [component: docs] [bug] weather_example_scipy
    - #10159 Prefer inclusive language

2020-04-21    2.0.2:
--------------------
  * bugfixes:
    - #8862 [component: bokehjs] [layout] [regression] [bug] fig.add_layout doesn't update the figure
    - #9864 [component: bokehjs] Fixed palettes bug
    - #9869 [component: docs] [bug] minor typos in validation error output for factorrange and cdsview
    - #9875 [component: bokehjs] [component: tests] Starting headless chrome on macos is unreliable
    - #9877 [component: bokehjs] [bug] boxannotation doesn't respect fill_color=none
    - #9879 [component: bokehjs] [bug] impossible to change factorrange to a lower dimension with different number of factors
    - #9900 Bundling and serving precompiled extensions in broken on windows
    - #9931 [component: build] Installation of bokeh>=2.0.0 adds `release` directory to site-packages
    - #9938 [component: server] [bug] timezone bug in generate_jwt_token
  * features:
    - #9339 [API: models] [feature] add broader themes
    - #9812 [component: bokehjs] Load multiple versions of bokeh into a single web page
    - #9872 [API: models] [feature] allow hiding tooltips for muted glyphs
  * tasks:
    - #6840 Use px as the default font size unit of measurement
    - #9771 [component: tests] Recent changes that require visual testing
    - #9772 [component: examples] Ipywidgets examples
    - #9861 [component: bokehjs] [notebook] Relax elementid check in autoload.js
    - #9865 Change array.length issue in filters
    - #9866 Refactored unused vars to _
    - #9880 [component: docs] Sphinx 3.0 compat
    - #9881 Remove pointless util function
    - #9883 [component: bokehjs] [component: build] Match compilation and minification targets
    - #9885 Update stamen urls for ssl links
    - #9888 Broken link to colorcet repo in palettes.py
    - #9892 [notebook] [bug] saving bokeh example notebooks causes notebook validation errors
    - #9895 [component: build] Ci build is broken (suddenly using python 2)
    - #9903 Suppress gridspec warning
    - #9904 Minor import cleanup
    - #9906 Make auth method overrides explicit
    - #9908 [component: docs] Missing 2.0.1 release notes + typos
    - #9914 [component: bokehjs] Prefer ** operator in bokehjs codebase
    - #9916 [component: bokehjs] Don't duplicate parent's code in oval._map_data()
    - #9942 [component: build] Prep for 2.0.2 release
    - #9944 [component: docs] Improve tile provider docs
    - #9945 [component: build] Release build first steps

2020-03-29    2.0.1:
--------------------
  * bugfixes:
    - #9522 [component: bokehjs] [bug] arrow lines do not render completely if figure is placed below some div
    - #9703 [component: bokehjs] [bug] image_url combined anchor and angle options generated unexpected results
    - #9724 [component: bokehjs] [bug] behaviour of automated padding for ranges is inconsistent
    - #9773 [infra] [bug] potential chrome cors problem with local output
    - #9778 [component: docs] Incorrect guidance on installing additional dependencies for export() functions
    - #9784 [component: bokehjs] [bug] `selectiongeometry` has incomplete type of `geometry`
    - #9793 [component: docs] Wrong links in bokeh embed example readme
    - #9796 [notebook] Autoload js in notebook broken after pr #9777
    - #9820 Deprecation warnings after pr #9807
    - #9821 [component: docs] [bug] version 2.0 release notes date
    - #9834 [regression] [bug] cannot update datepicker display value from python
    - #9837 [component: bokehjs] [webgl] [bug] lines with empty data breaks plot with webgl renderer
    - #9852 [component: build] Bryanv/correct js version full release
  * features:
    - #9727 [component: bokehjs] [widgets] [feature] add multi-file selection to fileinput widget
    - #9783 [feature] expose `_known_tools` and `_tool_from_string` to allow reuse
    - #9799 [component: server] Allow to serve extensions' bundles and related resources
    - #9814 [bug] 'bokeh.server.django' ignores &bokeh-session-id url parameter
    - #9819 Allow to send binary buffers by messagesent
  * tasks:
    - #9458 [component: bokehjs] [bug] hovertool in 'vline' mode doesn't work with vertical segments
    - #9581 Update dockertools
    - #9692 [component: bokehjs] [typescript] Upgrade to typescript 3.8
    - #9750 [component: bokehjs] [component: build] [feature] improve bokehjs dependency and project management
    - #9758 [component: bokehjs] Deprecate bokehjs package and suggest @bokeh/bokehjs
    - #9766 [component: docs] Doc: add missing '@' in hovertool.formatters example
    - #9775 [component: server] [bug] always setting asyncio event loop policy
    - #9791 [component: server] Allow subclasses of serve subcommand to modify server_kwargs
    - #9794 [component: bokehjs] Add support for bokeh.loader["@bokehjs/module/name"]
    - #9797 [component: tests] Configure codebase tests with `git ls-files`
    - #9801 [component: bokehjs] Update deps and resolve audit warnings
    - #9802 [component: bokehjs] [component: build] Drop tslint in favor of @typescript/eslint
    - #9805 [component: docs] Dev_guide update
    - #9816 [component: docs] [documentation] the developers guide uses old syntax for py.test in pre-commit hook
    - #9823 [component: docs] [bug] clarify that bokeh 2.0.0 no longer accepts a `selected` argument in cds constructor
    - #9831 [component: server] [bug] unhandled exceptions in functionhandler cause hang/blank screen
    - #9839 [component: docs] Fixed some minor docstring typos
    - #9848 [component: docs] Minor typo in bokeh.transform reference docs

2020-03-02    2.0.0:
--------------------
  * bugfixes:
    - #6490 [component: docs] [notebook] [webgl] Webgl was requested and is supported, but bokeh-gl(.min).js is not available, falling back to 2d rendering
    - #6728 [component: bokehjs] [component: server] Datepicker not updating enabled/disabled
    - #8724 [component: bokehjs] Logcolormapper maps to wrong values
    - #9108 [component: bokehjs] [layout] [bug] incorrect initialization when loading out of focus
    - #9187 [component: bokehjs] [regression] [bug] pinch zoom and panning not working correctly
    - #9245 [bug] "set_select" and "select" are not working well with layouts
    - #9369 [component: build] Add missing typing_extensions dependency
    - #9392 [component: bokehjs] [bug] inferno3 palette in bokehjs is incorrect
    - #9395 [component: server] [regression] Bokeh_resources does not work with server
    - #9429 Typeerror: symbol.asynciterator is not defined
    - #9435 [component: bokehjs] [component: server] [bug] network latency results in orphaned embedded divs for bokeh server
    - #9446 Misname/copypasta: login_hander?
    - #9455 [component: tests] Isort's test is called test_flake8
    - #9466 [component: docs] [fix] hover icon - documentation
    - #9474 [component: bokehjs] [bug] helptool duplicates in bokehjs
    - #9479 [regression] `nonselection_color` (etc.) doesn't apply after pr #9153
    - #9483 [component: bokehjs] [regression] Fix rendering on high dpi displays
    - #9485 [widgets] Disable option in fileinput not working [bug]
    - #9494 [widgets] [bug] datepicker display off-by-one in non-gmt timezone after upgrade to 1.4.0
    - #9514 [regression] Can't override settings using environmental variables
    - #9562 [bug] impossible to create a custom model while extending and existing one and using javascript
    - #9579 [bug] stdin transmitted in subprocess
    - #9607 [component: bokehjs] [widgets] [bug] slider direction, orientation, tooltips and show_value properties not connected
    - #9621 [component: bokehjs] [bug] bad document json data leads to a dangling promise returned by `pull_session`
    - #9622 [bug] calling `doc.clear()` can lead to unknown model exceptions
    - #9639 [regression] Export fails on osx
    - #9642 [bug] a typo in bokeh/server/tornado.py
    - #9650 Terminate firefox after usage in io.export
    - #9667 [component: bokehjs] [component: tests] [regression] Defaults tests are not running
    - #9672 [component: bokehjs] [widgets] [bug] spinner error for steps <= 1e-7
    - #9676 [regression] [bug] selenium required to build extensions
    - #9681 [component: examples] [documentation] typo in texas.py
    - #9699 [component: bokehjs] [bug] toolbar activation breaks if models are specified in certain order
    - #9702 [component: bokehjs] [regression] [widgets] [bug] daterangeslider is broken
    - #9717 [component: bokehjs] [bug] hover tooltip stretches badly to the left
    - #9734 Only check resource passed-in args
    - #9737 [component: bokehjs] [notebook] [regression] [bug] push_notebook broken in jupyter-lab 1.2.6
  * features:
    - #3458 [component: server] Use session tokens in the auth header
    - #4820 [API: plotting] Hover line width
    - #8561 [API: models] [API: plotting] [component: bokehjs] Fixed tick locations do not affect grid line locations
    - #8893 [API: plotting] Provide selection_line_width and nonselection_line_width
    - #8917 [component: bokehjs] [widgets] [feature] optional valid values list attribute for datepicker
    - #9074 [component: server] Support expiration for session creation
    - #9304 [component: bokehjs] [widgets] [feature] scientific notation for numberformatter
    - #9469 [component: bokehjs] [widgets] [feature]add scientific notation to supported number formats
    - #9505 [component: bokehjs] [component: server] Overhaul session expiry and generalize token
    - #9524 [component: bokehjs] [feature] bokehjs embed_item should return a reference to the plot.
    - #9532 [component: bokehjs] [widgets] Please replace multiselect widget with something more compact, effective and nicer looking
    - #9545 [component: server] Allow package relative imports for directory style apps
    - #9560 Add tile providers for openstreetmap and esri imagery
    - #9571 [API: plotting] Allow setting graph node_marker [feature]
    - #9690 Link to discourse from github issues
    - #9706 [component: bokehjs] [feature] js_link attr indexing
  * tasks:
    - #4966 [component: docs] Reference docs don't show inherited properties
    - #8176 Switch the default driver for export_png to chromedriver
    - #8208 [component: docs] Update/refresh notebook user guide chapter
    - #8397 Using subresource integrity with cdn urls
    - #8666 Changes right at 2.0 release
    - #8801 [component: bokehjs] [component: build] Investigate esm support in bokehjs' build
    - #8998 [component: build] Update conda recipe for 2.0
    - #9076 [component: build] Strip sourcemappingurl from published js files
    - #9098 [component: server] Move from tornado.gen to native coroutines ?
    - #9122 [component: docs] Collapse bokeh.models docs
    - #9125 [component: build] Remove old conda free channel for version 2.0
    - #9146 [bug] push_notebook should raise an error if a handle is passed instead of a document
    - #9238 [component: docs] [bug] gridlines are rendered under image plot
    - #9248 [feature] make the palettes module ide-friendly
    - #9334 Deprecate widgetbox
    - #9362 [component: docs] Docs report "no title"
    - #9365 Landing 2.0
    - #9366 [component: tests] Flake8 shouldn't descend into node_modules
    - #9367 [component: build] Use `npm ci` to force usage of the lock file
    - #9374 [component: build] Revert "exclude landing-2.0 issues from changelog for now"
    - #9377 [component: bokehjs] [typescript] Upgrade to typescript 3.7
    - #9379 Remove last python 2 compatibility bits
    - #9385 Include step in the list of glyphs that hovertool does not work with
    - #9386 [API: models] Replace metaclasses with `__init_subclass__`
    - #9388 Explicitly warn that cdsview is unsupported on line glyphs
    - #9394 [component: docs] Readmes for all the app examples
    - #9396 Move from_networkx function
    - #9403 [component: build] Intergrate isort into ci process
    - #9406 [component: docs] Glyph method "other parameters" still shows "legend"
    - #9409 Update funding.yml
    - #9410 Update to cdn.bokeh.org
    - #9413 [component: build] [component: docs] Misc dependency changes
    - #9419 [component: build] Remove errant pscript dep
    - #9427 [component: docs] Server embed examples need updates
    - #9432 Remove f-strings from docstrings
    - #9437 [component: docs] Temp disable windows builds for gh ci
    - #9442 [component: build] Bryanv/more gh ci
    - #9444 [component: bokehjs] Conversion from _pop_colors_and_alpha to _pop_visuals missing bokehjs
    - #9449 [component: bokehjs] Rewrite bokehjs' connection tests using async/await
    - #9451 Docs: correct the gh-actions badge in readme
    - #9452 [component: build] Force trigger gh-actions on pull_request
    - #9453 [component: build] Minimal tests issue on forked prs
    - #9454 [component: tests] Isort error message unhelpful
    - #9457 [component: docs] Bokeh.palettes refguide page header mis-renders
    - #9463 [bug] fixing spell mistakes
    - #9476 [component: examples] [bug] non-daemon worker thread prevents gunicorn from shutting down cleanly
    - #9480 [component: build] Expose sri hashes
    - #9482 [component: build] Resolve ipython 7.9 pin
    - #9484 [component: docs] Update twitter handle in docs
    - #9490 Improve sampledata downloading
    - #9500 [component: docs] Use new nf verbiage
    - #9502 [component: docs] [bug] fix simple typo: ther -> the
    - #9507 [component: server] [bug] blank error message when starting bokeh server with python 3.8 on windows
    - #9513 [component: build] Switch to gh ci
    - #9517 [component: docs] Update bokeh developer documentation
    - #9519 [component: docs] Remove pivot app example from readme since it's not supported anymore
    - #9521 [component: docs] Describe google api key usage and embedding
    - #9525 [component: docs] User guide documentation errors
    - #9531 [component: docs] Adding dedicated subsection to docs on bokeh server jinja templating
    - #9533 [component: build] [task] coverage tool breaking change affects bokeh tests
    - #9541 Misc fixes
    - #9543 [component: bokehjs] Bryanv/more misc
    - #9544 [component: build] [component: tests] Flaky selenium tests
    - #9547 More misc repo work
    - #9548 [component: bokehjs] Remove old ad-hoc callback properties
    - #9555 [component: docs] Typos and text improvements
    - #9565 Fix circular import between glyphs and markers
    - #9578 [component: bokehjs] [component: build] Allow to publish dev bokehjs packages
    - #9590 [component: docs] Add ipywidgets_bokeh documentation
    - #9598 [component: tests] Add ci python version check
    - #9606 [component: bokehjs] Make glyph._hit_* methods statically typed
    - #9609 [mypy] Add -> none to all test_ functions
    - #9610 Update license and copyright dates
    - #9623 [component: docs] Add link to jupyter chapter from installation chapter
    - #9635 [component: tests] Don't rely on test markers
    - #9637 [component: docs] Update docstring with missing argument 'template'
    - #9638 [component: bokehjs] Clarify scales hierarchy
    - #9645 [component: docs] Fix two typos in docstrings
    - #9651 [component: docs] [bug] undocumented api removals in 2.0
    - #9658 [component: server] [bug] unable to use async callbacks in `add_next_tick_callback` and the like
    - #9662 [component: tests] Implicitly apply pytest.mark.asyncio to async defs
    - #9665 [component: docs] Typo fix in annotations documentation
    - #9678 Delete custom.md
    - #9680 Remove bad super usage
    - #9686 [component: tests] Force srgb color profile on chrome
    - #9687 [bug] bokeh (html|png|svg) commands all broken
    - #9701 [component: tests] Try to improve passability of tests
    - #9713 Rename bokeh_version
    - #9723 [component: docs] Modified theme documentation to reflect handling of null/none
    - #9726 [component: build] Reduce sdist size
    - #9733 [component: docs] Fix spelling mistakes in documentation
    - #9738 [component: examples] Minor 2.0 fixes
    - #9745 [component: build] Legacy issues should not be in a subdirectory
    - #9754 [component: build] Allow sdist to --install-js

2019-11-04    1.4.0:
--------------------
  * bugfixes:
    - #8402 [component: bokehjs] No clean way to update vbar_stack
    - #8778 [component: bokehjs] Hover over image is showing wrong @image tooltip on flipped axis
    - #8976 [component: bokehjs] [bug] geographical plots cannot be saved with the save tool
    - #9035 [component: bokehjs] [widgets] [bug] spinner only considers 1 decimal
    - #9129 [component: bokehjs] [widgets] [bug]datepicker displayed value is not updating correctly
    - #9136 [component: bokehjs] Inner_width and inner_height not available after display
    - #9143 [component: docs] [bug] roadmap link on docs page links to a nonexistent page
    - #9152 [component: bokehjs] [bug] hover tooltip breaks with full-circle wedge
    - #9174 [component: bokehjs] [bug] nan_color argument in linearcolormapper is not used
    - #9185 [component: bokehjs] [regression] [bug] exporting google maps pngs sometimes not working properly
    - #9240 [component: build] [bug] building custom extension breaks in notebook
    - #9266 [component: bokehjs] [widgets] [bug] datatable sorting broken
    - #9267 [component: bokehjs] [bug] range_tool selection is over-responsive in y direction
    - #9309 [API: models] [component: docs] [bug] documentation panels empty
    - #9317 [regression] [bug] splattable lists no longer allow using list-like methods
    - #9324 [component: bokehjs] [bug] background property change not  working for widgetbox
    - #9338 [component: bokehjs] Include license in bokehjs bundles
    - #9342 [component: bokehjs] [component: server] [regression] [bug] server examples with custom models do not work
    - #9343 [component: bokehjs] Save does not work with custom models [bug]
  * features:
    - #3700 Structured way to get at documents from javascript
    - #8904 [API: models] Allow to offset plot frame's side panel annotations
    - #9009 [component: server] Add support django channels
    - #9135 Be able to order legend items when using groupby legend [feature]
    - #9137 [API: models] [notebook] Allow to integrate bokeh models with ipywidgets
    - #9139 [component: server] Support ssl termination
    - #9140 [component: server] Support tornado get_current_user
    - #9144 [component: bokehjs] Axis rescaled when legend item visibility changed [feature]
    - #9196 [component: bokehjs] [component: build] Add support for building bokehjs extensions
    - #9209 [component: server] Add support for globs to `bokeh serve`
    - #9241 Add 256-color palettes, add a function to generate diverging palettes
    - #9298 [feature] provide mouse press up event
  * tasks:
    - #8209 [component: docs] Searchable documentation?
    - #9002 [component: bokehjs] [component: build] Unify bokehjs build system with extensions' compiler
    - #9070 Improve bokeh/util/logconfig.py call signature
    - #9073 [component: docs] [docs] page for selection tools does not tell users how to get the values/indices of the selection
    - #9150 [component: docs] Use bokehjs from cdn when the commit is tagged
    - #9155 [component: bokehjs] [component: build] Migrate from tslint to (typescript-)eslint
    - #9157 [component: tests] Remove bokeh.embed.notebook.widgets from -oo skiplist
    - #9159 [component: build] Unpin python 3.7 version when possible
    - #9160 [component: bokehjs] Enable more eslint rules
    - #9163 [component: build] [component: examples] Don't upload to s3 on py27 tests
    - #9165 [component: examples] Update dataset for parallel coords plot examples
    - #9167 [component: bokehjs] [component: build] Generate es6 (es2015) compatible bundles
    - #9170 [component: bokehjs] [component: build] Automatically insert class initialization code
    - #9173 [component: docs] [bug] "line_color" not applied from yaml theme file
    - #9175 [component: tests] Make bokeh's tests compatible with pytest >= 5
    - #9179 Add support for turbo colormap
    - #9181 [component: docs] [bug] [docs] broken images in custom tooltip example
    - #9183 [component: docs] Update all docs links
    - #9192 [component: docs] Pillow is already a bokeh dependency
    - #9193 [component: bokehjs] [component: build] Bump eslint-utils from 1.4.0 to 1.4.2 in /bokehjs
    - #9199 [component: docs] [bug] [doc] broken link to examples/app
    - #9200 [component: docs] Fix typos in docs, comments, etc
    - #9202 [feature] print full stacktrace on error
    - #9205 [component: build] Don't depend on ipywidgets
    - #9206 [component: docs] Outdated sentence removed from docs
    - #9211 [component: docs] [doc] tpyos
    - #9212 [component: bokehjs] [typescript] Upgrade to typescript 3.6
    - #9219 [component: docs] Update layout docs
    - #9220 [component: docs] Add websource to reference docs
    - #9226 [bug] update license id to use the proper spdx short license id
    - #9228 Update current year
    - #9229 [component: build] Bryanv/update docs automation
    - #9237 [component: docs] [bug] hovertool indices empty when using glyphrenderer from a graphrenderer
    - #9239 Improve "splat" list errors
    - #9258 [component: docs] [bug] ajaxdatasource-based glyphs appear incompatible with factorrange
    - #9262 [component: docs] Fix structure issues in palette docs
    - #9264 [component: build] Cdn invalidations too narrow
    - #9265 [component: docs] Rename modify_doc in notebook app contexts
    - #9271 [component: bokehjs] Upgrade from deprecated package istanbul
    - #9272 [bug] improve exception when import _requires fails
    - #9274 If import of channels fails, improve error message to install it via pip
    - #9278 [component: docs] Consistently use https protcol for cdn.pydata.org urls
    - #9286 [component: docs] Fix user-guide documentation and app example typos
    - #9289 [component: docs] Fix broken docs links
    - #9305 [component: docs] Update ga for docs
    - #9312 [component: docs] Update references to jupyter_bokeh extension
    - #9340 [component: docs] 1.4.0 misc docs

2019-08-06    1.3.4:
--------------------
  * tasks:
    - #9147 [component: build] Update pypi token

2019-08-04    1.3.2:
--------------------
  * bugfixes:
    - #9142 [component: build] Compute runtime deps correctly
  * tasks:
    - #9101 [component: docs] [bug] wrong option names in sphinxext documentation
    - #9118 [component: build] Use pypi token to upload releases
    - #9120 [component: bokehjs] [component: build] Use npm token to publish

2019-07-29    1.3.1:
--------------------
  * bugfixes:
    - #9123 [component: bokehjs] [regression] [bug] export_png broken in bokeh 1.3.0
  * tasks:
    - #4870 [notebook] [widgets] Autocomplete should start with a single character
    - #9112 [component: build] Upload to backup cdn
    - #9127 [component: build] Exclude ipython tests on minimal build

2019-07-22    1.3.0:
--------------------
  * bugfixes:
    - #8015 [component: bokehjs] [widgets] Bokeh datepicker value format inconsistent
    - #8403 [component: server] Bokeh charts load very slow with uncaught typeerror: in browser console
    - #8911 [component: bokehjs] [widgets] Rangeslider stuck when modified by pressing the keyboard arrows
    - #8915 [component: server] [bug] error in the bokeh --serve documentation
    - #8921 [component: bokehjs] [widgets] [bug] datatable copy-paste doesn't work with 0s present in a row
    - #8923 [component: bokehjs] [widgets] [bug] datatable copy-paste doesn't keep the order of rows after sorting
    - #8934 [component: bokehjs] [widgets] [bug] datepicker displayed value is not updating
    - #9016 [component: bokehjs] [performance] Inspection indices' filtering is very slow
    - #9022 [component: bokehjs] [widgets] [bug] "cannot read property 'style' of null" javascript error when moving slider
    - #9032 [component: bokehjs] [bug] typeerror after replacing tools on a toolbar
    - #9033 [component: bokehjs] [bug] incompatible definitions of `vbar.width` in bokeh and bokehjs
    - #9065 [component: docs] [bug] development guide missing `test` argument for conda install and pytest install failure on windows
    - #9092 [component: server] [bug] double slash before prefix in autoreload.js
    - #9095 Update docker to work with new conda and bokeh
  * features:
    - #6096 [component: bokehjs] [widgets] File open dialog
    - #8100 [API: models] [widgets] [feature request] option to collapse datatable rows
    - #8676 [component: bokehjs] Make a bokeh textinput callback responsive as text is typed
    - #8872 [component: bokehjs] Add hover support for patch, harea, and varea
    - #8981 [component: bokehjs] [feature] implement hover anchor on more glyphs
    - #9052 Let source.data accept dataframe
  * tasks:
    - #8186 [component: examples] Geojsondatasource not bringing in all attributes
    - #8919 [component: docs] [component: server] Document signed session usage
    - #8944 [component: docs] Texturerepetition missing from docs and `all`
    - #8961 [component: tests] Don't call show in tests
    - #8987 [component: bokehjs] [component: build] Bump nwmatcher from 1.4.3 to 1.4.4 in /bokehjs
    - #8994 [component: docs] Docs typo
    - #8995 [component: docs] Documentation: duplicate $name description
    - #9039 [component: docs] Fixed analysis
    - #9044 [component: build] [task] add downstream tests for pandas-bokeh
    - #9048 [component: build] Upload to s3 cdn in parallel
    - #9049 [component: docs] [docs] developer notes rendered in live docs
    - #9050 [component: docs] Typo/misspelling on mapping geo data page[bug]
    - #9054 [component: build] Fix yamlloadwarning in deps.py
    - #9060 Color regex needs raw string
    - #9075 Use sampledata.bokeh.org cdn
    - #9080 [component: docs] [docs] update links to bokehplots.com, gitter and mailing-list
    - #9082 [component: build] Exclude landing-2.0 issues from changelog for now
    - #9099 [component: bokehjs] [widgets] [feature] extend fileinput to return filename and make output clearer
    - #9102 [component: docs] Docs: update documentation urls in readme
    - #9103 [component: tests] Update dask test location
    - #9106 [component: build] [component: docs] Remove dev build installation instructions

2019-05-27    1.2.0:
--------------------
  * bugfixes:
    - #2259 [component: bokehjs] [widgets] Autocomplete widget not recognizing value change
    - #6855 [component: bokehjs] Boxselecttool does not work as expected with gmapplot
    - #7699 [component: bokehjs] [webgl] Mixed canvas and webgl glyphs are painted in wrong z-order
    - #8103 [component: bokehjs] Rangetool unusable after selection change
    - #8828 [component: bokehjs] [widgets] [bug] autocompleteinput widget value attribute does not reflect selection
    - #8835 [component: server] [bug] runtimeerror on adding callbacks after rendering
    - #8843 [component: bokehjs] [widgets] Bar_color slider not updating
    - #8849 [component: examples] [bug] color mapping bug in crossfilter example
    - #8853 [bug] exports do not work with firefox webdriver
    - #8889 [component: bokehjs] [bug] imageurl selection_glyph raises "typeerror: this.retries is undefined"
    - #8895 [component: bokehjs] [bug] customjs callbacks added after initialization do not work
    - #8903 [bug] layout accepts name as keyword arg but doesn't pass to underlying objects
    - #8909 [component: bokehjs] [widgets] [bug] changing slider widget title property does not update view
  * features:
    - #4540 [component: bokehjs] [component: server] Slider callback_policy should work for apps
    - #6135 [component: bokehjs] Feature request: textures to fill properties?
    - #6769 [component: bokehjs] [layout] Legend title
    - #8848 [API: plotting] [component: bokehjs] [feature] stacked areas and lines
    - #8863 [feature] allow the webdriver timeout to be customized
  * tasks:
    - #4665 [component: bokehjs] [component: tests] Add missing widget callback integration tests
    - #5469 [component: docs] Document that boxzoomtool does not work on gmapplot
    - #5918 [component: bokehjs] Touch scroll the page when no tools are active
    - #6516 [component: bokehjs] [widgets]  add selenium tests for slider and rangeslider
    - #6927 [component: bokehjs] Allow reset tool to only emit reset event, and skip built-in reset code
    - #7238 [component: docs] Document get_screenshot_as_png better
    - #8433 [component: build] Clean up .gitignore files across the repository
    - #8496 "warning:bokeh.resources:root_url should end with a /, adding one" spam
    - #8571 [component: docs] `scripts/deps.py` does not install phantom_js
    - #8861 Create readme to explain server_embed usage
    - #8867 [component: docs] Update tile provider example for "mapping geo data" user guide
    - #8874 [component: build] Uploading actual releases to conda bokeh/label/dev
    - #8875 Hatching/stacking follow on work
    - #8876 [component: bokehjs] [component: build] Fix security vulnerabilities reported by npm audit
    - #8897 Reference link updated
    - #8901 [component: examples] [bug] legend order backwards for stacked area plots
    - #8916 [component: docs] Update 1.1.0.rst
    - #8930 [component: docs] Docs: fix typo
    - #8933 [component: docs] Add release notes for 1.2

2019-04-08    1.1.0:
--------------------
  * bugfixes:
    - #3061 [layout] [widgets] Setting responsive for figures in tabs results in buggy tabs
    - #4393 [layout] If responsive mode is `height_ar`, toolbar box `above` or `below` doesn't work
    - #4404 [layout] Tabs only work with fixed layout
    - #4608 [layout] Initialization problem on `scale_width` plots
    - #4689 [component: bokehjs] Bokehjs charts not respecting plot size
    - #4830 [layout] Figure.width does not update width
    - #4917 [layout] Strange widget alignment behavior
    - #5143 [component: bokehjs] [layout] Tabs not working
    - #5169 [component: bokehjs] [layout] [widgets] Tabs only renders right when at least one tab contains a figure
    - #5193 [layout] [widgets] Overlapping plots
    - #5572 [layout] Subplots vertical axes don't line up
    - #5722 [component: bokehjs] [layout] Widgets do not work in nested layouts
    - #5749 [component: bokehjs] [layout] 0.12.4 breaks custom text inputs field length
    - #6025 [layout] [widgets] Datatables overlapping when in row or gridplot
    - #6259 [component: bokehjs] [layout] Adding new button widgets results in too-wide buttons
    - #6333 [component: bokehjs] [widgets] Multiselect freezes ie 11 on change
    - #6406 [component: bokehjs] Javascript errors when plotting from a columndatasource populated with a pandas dataframe containing column named field
    - #6417 [component: bokehjs] [layout] Tabs widget cannot contain a figure
    - #6427 [component: bokehjs] [layout] Textinput not respecting width
    - #6462 [component: examples] [regression] Npm detection doesn't work on windows (in native console)
    - #6477 [layout] Vertical axes aren't aligned in `plotting/file/categorical`
    - #6508 [component: bokehjs] Multiple callbacks for same model call only last callback
    - #6707 [component: bokehjs] Tap tool on bokeh server does not select data points with a custom callback
    - #6748 [layout] Dynamically turning on axis label does not resize plot
    - #6768 [layout] Alignment of plots in a grid
    - #6822 [widgets] Autocompleteinput does not complete word when option is clicked
    - #6824 [component: bokehjs] [component: tests] Examples/models/file/dateaxis.py is unreliable
    - #7004 [component: bokehjs] [component: build] Incorrect module path format when building bokehjs on windows
    - #7120 [component: bokehjs] [layout] [widgets] Datatable in tab not displaying contents (with minimal example)
    - #7127 [layout] [widgets] Vertical slider
    - #7260 [component: bokehjs] [layout] Unsatisfiable constraint when trying to make plot size responsive within panels
    - #7270 [layout] Plot layout with scale_both, stretch_both, scale_height
    - #7444 [component: bokehjs] [layout] Table covers other widget when table is on the left
    - #7454 [component: bokehjs] [layout] Gridplot with sizing_mode="stretch_both"/"scale_both" is totally broken since 0.12.11
    - #7497 [component: bokehjs] Disappearing toolbar
    - #7554 [component: bokehjs] [layout] Bokeh layout rows and columns not responsive on scale_width or scale_height
    - #7766 [component: bokehjs] [layout] Row and column definition gives unexpected layout with option sizing_mode='scale_width'
    - #7771 [layout] Repaint() in plot_canvas.coffee causing significant lag
    - #7805 [component: bokehjs] [layout] Bokeh spacer sets height to one pixel with scale_width set
    - #7933 [component: bokehjs] Different behavior between bokeh and bokehjs with ajaxdatasource
    - #7981 [component: bokehjs] [widgets] Checkboxbuttongroup and radiobuttongroup can not be disabled
    - #7991 [component: bokehjs] Hovertool display pops under shaded portion of slider
    - #8115 [layout] [regression] Stretch_both sizing mode doesn't stretch in 0.13
    - #8164 [component: bokehjs] Tilerenderer cache is not invalidated when url changes
    - #8227 [performance] Improve datatable performance
    - #8290 [component: bokehjs] The "css_classes" attribute on datatable object does not work
    - #8355 Compiler issue on windows, importing modules is not working because of backslash incompatibility
    - #8391 [component: bokehjs] "tile cannot extend" systemerror when exporting plot with legend placed outside and above plot area
    - #8443 [layout] Button groups do not respect the `sizing_mode` or `width` keyword arguments
    - #8471 [component: bokehjs] [widgets] Updating css_classes on layout elements has no effect
    - #8484 Whisker does not accept explicit negative values
    - #8552 [component: bokehjs] Wrong position on catergoricalaxis of extra_y_range
    - #8585 Typeerror: index is not a valid datetimeindex or periodindex
    - #8596 [component: bokehjs] [typescript] Bokehjs examples to use in node js or angular
    - #8599 [component: bokehjs] Grid bands broken when cross grid lines disabled
    - #8600 [component: bokehjs] Cds callback property not working
    - #8611 [component: bokehjs] [layout] Bug when the middle area between two tabs is clicked
    - #8613 Inline ts code failed at compilation on windows (post #8085)
    - #8614 [layout] Layout broken in hidden tabs after an update
    - #8622 [layout] [regression] Input widget heights behavior
    - #8624 [component: bokehjs] Crosshair icon removed from toolbar in gridplots
    - #8627 [component: server] Issue with bokeh.client after layout pr
    - #8633 [component: examples] Stocks example is not working properly
    - #8638 [component: docs] [layout] Incorrect layout with column of div's with image (1.1.0dev3)
    - #8639 [widgets] Datatable rows overwrite dropdown menu (1.1.0dev3)
    - #8643 [layout] [regression] Dashboard.py example not behaving as expected after the layout pr
    - #8647 [component: tests] Make examples' tests work on windows
    - #8650 [component: examples] Grid_axis_alignment_no_toolbar is broken in windows (32-bit)
    - #8653 [widgets] Assume utc in value_as_date
    - #8654 [layout] Text wrapping in div after layout pr
    - #8655 [layout] Loading plot in separate jupyterlab tab collapses layout
    - #8679 [component: bokehjs] Graphs with list values as attributes fail
    - #8680 [component: examples] [regression] Custom widget in doc strange display in 1.1.0dev6
    - #8681 [notebook] Autoload_js should load css before javascript
    - #8686 [component: bokehjs] [component: docs] Bokehjs columndatasource.change property doesn't exist
    - #8703 [component: docs] Typo in plots.py
    - #8713 [notebook] [regression] Displaying plot in notebook quickly after output_notebook raises js error
    - #8719 [component: tests] Tests sometimes fail on appveyor
    - #8726 [layout] Tabs width set on width of contents - truncating tabs
    - #8733 [component: bokehjs] [notebook] [regression] Gmap plots not working in the notebook and inline resources
    - #8737 Windows phantomjs not killed on selenium termination
    - #8742 [component: bokehjs] Hover tooltip breaks with zero-width wedges
    - #8746 [component: bokehjs] When line_width is set to 0 the glyph boundaries don't disappear
    - #8747 [component: bokehjs] Custom extensions cannot import models/widgets/widget
    - #8762 [component: bokehjs] Tooltips not working for segment on inverted y-axis
    - #8770 [component: bokehjs] Using range padding with image plots leave lots of empty space
    - #8777 [component: bokehjs] [layout] Tabs header doesn't update when layout recomputes
    - #8786 [component: bokehjs] Spinner jumps to low after one click, regardless of step
    - #8789 [component: tests] Codebase tests fail on windows
    - #8793 [component: bokehjs] Range tool gets stuck at minimum width
    - #8794 [component: server] Directoryhandler does not handle ipynb files correctly
    - #8800 Fixes trying to index dict_keys
    - #8810 [component: bokehjs] [regression] Es6 map's polyfill isn't installed in phantomjs
    - #8820 [component: bokehjs] Surface3d example fails to compile
    - #8821 [component: bokehjs] [layout] Make layout respect aspect ratio with scale_height sizing mode
  * features:
    - #4407 [layout] Non-equal proportion split in layouts
    - #4867 [layout] Don't make space for element if not visible
    - #5955 [component: docs] Sphinx bokeh_plot extension should work outside project docs
    - #6173 [component: bokehjs] [widgets] Add numeric input widget
    - #7498 [component: bokehjs] Bokeh panel(closable=true) doesn't make 'x' appear on the panel title and closable by user
    - #7675 [component: bokehjs] [widgets] Add color picker and spinbox widgets
    - #8229 [layout] Add sizing_mode="stretch_width" and "stretch_height"
    - #8636 Add js_link convenience method
    - #8660 [component: server] Add --index option to specify site index template
    - #8663 [API: models] Add support for data source using server-sent events
    - #8668 [component: bokehjs] Displaying custom data on hover for rgba image
    - #8671 [API: models] Openurl in current tab
    - #8700 [component: bokehjs] Make bokehjs importable in nodejs
    - #8710 [layout] [regression] Add support for spans to grid layout
  * tasks:
    - #3340 [component: bokehjs] [layout] Investigate better implementation for toolbar rendering
    - #4395 [layout] Investigate / describe performance issues
    - #4582 [component: tests] [layout] Add a series of screenshot tests for all the layout modes
    - #4643 [layout] Stop doing two calls to _resize on every resize
    - #4790 [API: models] [component: bokehjs] Widgets with js api
    - #5668 [component: bokehjs] [layout] Use box-sizing: border-box for everything under bk-root
    - #6294 [layout] [performance] Browser rendering extremely slow when many figures in a gridplot
    - #6461 [component: examples] Make simple_hdf example interesting and attractive
    - #6513 [component: bokehjs] Add a link to bokehjs package on npmjs.com
    - #6713 [API: models] [layout] Add visible property to models
    - #6771 [component: tests] Task: fix-up skipped app examples for examples tests
    - #7185 [layout] Unify meaning of {layoutcanvas,layoutdom}.{_left,_top,_right,_bottom}
    - #7451 [API: plotting] [component: bokehjs] Bokehjs typeerror "legend is undefined"
    - #7864 [component: bokehjs] [typescript] Rewrite bokehjs' tests in typescript
    - #7875 [component: bokehjs] [typescript] Remove unnecessary usage of any type
    - #8071 Make error reporting from `export_png()` more robust
    - #8084 [layout] Improve reliability, performance and feature coverage of the layout
    - #8187 [regression] Do not include large unrelated files in the repository
    - #8197 [component: bokehjs] [component: build] Relativize module paths in generated js/d.ts files
    - #8529 [component: docs] Autoreloader cannot find bokeh on reload
    - #8566 Tile provider causes "model must be owned by only a single document" error
    - #8577 [component: server] Delay between autoload.js and websocket request
    - #8578 [component: examples] Create custom example to plot parallel plot
    - #8583 Make websocket_max_message_size configurable in notebooks
    - #8587 [component: build] Pin conda versions with conda_reqs on appveyor too
    - #8589 [component: docs] [docs] bad number in webpage patch method documentation
    - #8606 [component: docs] Change use of deprecated sphinx app logger
    - #8607 Importing abcs from collections is deprecated
    - #8612 [component: bokehjs] [typescript] Remove type duplication between models' attributes and properties
    - #8616 [typescript] Finalize typing plotting api and remove old declarations
    - #8617 [component: tests] Fix pytest's deprecations in examples' tests
    - #8623 [component: bokehjs] [typescript] Upgrade typescript and minifier, and enable more tslint rules
    - #8625 [notebook] Use utf-8 encoding to open notebook file
    - #8628 Daterangeslider returns datetime instead of date
    - #8642 [component: examples] Manual_grid layout example has lost it's core functionality in layout pr
    - #8656 [component: bokehjs] [typescript] Rewrite custom extensions in typescript
    - #8662 [component: build] Use ci.bokeh.org for artifact storage
    - #8669 [component: docs] Bryanv/demosite url
    - #8692 [component: docs] Add live codepen links for bokehjs api
    - #8698 [component: bokehjs] [component: build] Rename bokehjs/build/js/{tree->lib} to match src/
    - #8708 [component: bokehjs] [component: build] Handlebars security vulnerability - npm won't install
    - #8712 [API: models] Deprecate plot.{h,v}_symmetry
    - #8717 [component: bokehjs] Disabled buttons should be gray by default
    - #8723 Bad_extra_range_name validation can be incorrect
    - #8725 [layout] Don't warn on empty layouts
    - #8740 [component: bokehjs] Miscellaneous improvements to bokehjs
    - #8748 [component: bokehjs] Don't expose external libraries in the public api
    - #8751 [BEP] [component: build] Update maintainers list
    - #8771 [component: docs] Updated numfocus donor link
    - #8802 [component: bokehjs] [component: build] Upgrade to typescript 3.4
    - #8804 [component: docs] Corrected spelling mistakes
    - #8805 [layout] Make gridbox.spacing adhere to css argument order

2019-01-09    1.0.4:
--------------------
  * bugfixes:
    - #8558 [py2] Safer alternative fix for unicode notebook issue in python 2
  * features:
    - #8513 [notebook] Strip out ipython magics when serving notebooks
  * tasks:
    - #8207 Adding/updating boilerplate code
    - #8525 [component: tests] Don't resize window when running images tests
    - #8533 [component: build] Remove warning about `gulp build` in prepare.js
    - #8534 [component: docs] Docs tweak to add note about bokeh_dev and apps
    - #8541 Pyyaml version is vulnerable to cve-2017-18342
    - #8543 [component: server] Bad error message for nonexistent bokeh serve target
    - #8548 [component: docs] Add small documentation to slider callback_policy which only apply to customjs
    - #8550 [component: docs] Fix-up bokeh_dev docs (follow-up)
    - #8553 Add model, event, and populate bokeh.models __all__
    - #8555 [py2] Unicode fix when serving notebooks on python 2
    - #8556 [component: docs] Correct three minor typos

2018-12-31    1.0.3:
--------------------
  * bugfixes:
    - #7118 [component: bokehjs] Unable to update arrow
    - #8401 [API: models] Incorrect image import from bokeh.models
    - #8493 [component: bokehjs] Polydrawtool shows vertices even when not active
  * features:
    - #2828 [component: bokehjs] [widgets] Multi-line textinput box?
    - #7762 [component: bokehjs] Copy & paste from datatable
    - #8444 [component: bokehjs] Feature request: expose sort_columns in js datatable object
    - #8502 Support environment variable in addition to --allow-websocket-origin
  * tasks:
    - #8372 Extended bad_column_name error
    - #8379 [component: examples] Export csv example more useful if you don't have to hard code headers in download.js
    - #8383 [component: tests] Attempt to enable downstream tests for holoviews
    - #8384 [component: bokehjs] Feature: add plot's root id to dom so to allow api access to the object
    - #8472 Boilerplates for bokeh/models
    - #8476 [component: bokehjs] [typescript] Upgrade to typescript 3.2
    - #8481 [component: docs] Doc: remove extra "to execute" from embed
    - #8485 Update sampledata bucket url
    - #8491 [component: docs] Typo in range_tool example
    - #8495 [component: tests] Document licenses of included projects
    - #8506 Boilerplate for bokeh/plotting directory
    - #8514 Boilerplate for protocol
    - #8517 Boilerplate for bokeh/server
    - #8523 Property getter for model.id
    - #8528 [component: docs] Release notes

2018-11-29    1.0.2:
--------------------
  * bugfixes:
    - #5721 [component: bokehjs] [widgets] Text_align attribute in numberformatter not doing anything
    - #8395 [component: bokehjs] Legend breaks plot when plotting empty scatter glyph
    - #8396 [component: docs] Fix small typo  [ci skip]
    - #8398 Fix typo and grammar mistakes
    - #8409 [component: docs] Typo in documentation of io.export.create_webdriver
    - #8415 Make components() preserve the type of dict
    - #8418 [component: bokehjs] [component: build] Make bokehjs build under node 10.x
    - #8425 [component: docs] Apache documentation typo
    - #8428 [component: bokehjs] [component: docs] Can't get gridplot to work in bokehjs
    - #8451 [component: bokehjs] [component: build] Run `npm install` when `node make *` on fresh install
    - #8457 [component: bokehjs] Embeds with json_item missing toolbar/interactivity
    - #8459 [component: bokehjs] Hovertool does not display fields within jupyterlab's dark theme
    - #8460 [component: examples] Fix a typo
  * features:
    - #8399 [component: bokehjs] Omit colon in hover tooltips if first tuple entry is empty
    - #8411 [widgets] Feature request: add support for setting the datatable row height
  * tasks:
    - #8393 [component: docs] "customjs for selections" example in docs broken
    - #8405 [component: tests] Fix failing codebase tests
    - #8413 [component: bokehjs] [typescript] Upgrade to typescript 3.1
    - #8438 [component: bokehjs] [typescript] Clean up semicolons after transition to typescript

2018-10-31    1.0.1:
--------------------
  * bugfixes:
    - #4096 Bokeh server: color palette rgb is not recognized
    - #8356 [component: bokehjs] Datatable crashes layout if 'field' is key in columndatasource data
    - #8362 Combination of "export_png()" and "show()" causes error
    - #8374 [regression] Garbage collection of export_png()
    - #8375 [component: bokehjs] Ellipse and datetime axis
    - #8388 [component: build] Release deploy updates package-lock incorrectly
  * tasks:
    - #8367 [component: server] Documentlifecyclehandler should catch exception and clean up callbacks
    - #8369 [component: examples] Histogram example should take edges as argument to make_plot
    - #8387 [component: docs] Bryanv/101 misc docs

2018-10-24    1.0.0:
--------------------
  * bugfixes:
    - #2022 [component: bokehjs] Not correct behaviour of hovertool with annular glyph and units='screen'
    - #3187 [component: bokehjs] [component: examples] Plotting/file/image_url.py doesn't work without setting {x,y}_range
    - #7116 [component: bokehjs] [widgets] Patch/stream message to the columndatasource for datatable widget on front-end triggers response containing entire data source
    - #7378 [component: bokehjs] [geo] Flicker when zooming on a tile source with mercatorticker
    - #7417 [component: bokehjs] [regression] Deserializationerror when editing data table
    - #7580 [component: server] 'serversession' object has no attribute 'session_context'
    - #7959 [component: bokehjs] Image hover broken on axes with inverted range
    - #7974 [component: bokehjs] [geo] Segments don't show up on gmapplot
    - #7976 [component: bokehjs] Log axis minor ticks wrong position
    - #8018 If the "selector" argument is explicitily set to the "select" method, an empty list is returned
    - #8020 [regression] Export_png not exporting figures correctly
    - #8021 [component: bokehjs] [widgets] Datatable and glyph selections not linking properly
    - #8032 [component: bokehjs] Draw and edit tools event handling on server broken
    - #8034 [component: server] Unhandled exception in application causes all later sessions to fail
    - #8040 [component: bokehjs] [widgets] Editing filtered datatable cell impacts wrong row
    - #8050 [component: bokehjs] [widgets] Datatable selectable='checkbox' gives javascript error
    - #8060 [component: bokehjs] Inaccurate rendering around 0 on tall bars
    - #8075 [component: bokehjs] Boxedittool draws on doubletap even when tool inactive
    - #8077 [component: bokehjs] Not providing x and y data makes some glyphs not render in legend
    - #8122 [component: bokehjs] [notebook] Bug: push_notebook support is broken in jupyterlab for bokeh=0.13.0
    - #8160 Bokeh_css and bokeh_js resources are reversed in file.html template
    - #8179 [regression] Show() accumulates objects
    - #8198 [component: bokehjs] Hovertool interpolation mode doesn't work for horizontal and vertical lines
    - #8201 [widgets] Datatable does not stay sorted when the data is updated
    - #8230 [py2] Properly use string_types for instance properties and js_on_event
    - #8232 Patch_app.py is broken
    - #8282 [component: bokehjs] Adding computed_icon getter broke toolproxy icons
    - #8292 [component: bokehjs] [regression] Esc has no effect on selections
    - #8299 [component: docs] A tiny typo in the document about graphrenderer
    - #8300 [component: tests] Verify_all() doesn't give information what failed
    - #8334 [component: bokehjs] Y-range for negative value
  * features:
    - #99  making predefined themes available by calling a single function
    - #589 [component: bokehjs] Update legend when legends or other attributes change
    - #2266 Pandas periods are not recognised
    - #2321 [component: bokehjs] [geo] Support a "patch" with a hole in it / gis support
    - #4236 [component: server] Implement --develop mode
    - #5231 [component: bokehjs] Save bokeh plot as bokeh plot
    - #5345 Custom models distribution without compiler on the server side
    - #5884 [component: bokehjs] Let scatter marker type be parameterizable
    - #6454 [component: bokehjs] [widgets] Add an option to disable column titles in datatable
    - #6985 [component: bokehjs] Oval selection does not update color (does not support hit testing)
    - #7499 [API: models] Allow defining custom tooltip for certain tools
    - #7618 [component: bokehjs] Feature request: support hit-testing for text glyphs
    - #7890 [component: bokehjs] Step glyph support for gaps from missing/non-finite data points (inf, nan)
    - #7987 [component: bokehjs] Restrict the drawing tools to draw a single glyph
    - #7990 [component: bokehjs] Add clear tool to clear out one or more datasources
    - #8013 [component: bokehjs] Expose the more detailed geometry data to the tap tool
    - #8109 [component: bokehjs] Feature request: verticalline marker (equivalent to marker='|' in matplotlib)
    - #8130 [component: bokehjs] Add tilt option to gmapoptions
    - #8133 [component: bokehjs] [typescript] Freehand drawing tool
    - #8138 Turn off self.validate checks during update
    - #8142 Span location cannot accept datetime whereas labels can deal with it
    - #8156 [component: bokehjs] Feature request: bold italic font specification
    - #8172 [component: bokehjs] Make image smoothing configurable on tilerenderer
    - #8183 [feature request] in the function ‘from_networkx’, convert networkx node/edge attributes to bokeh node_renderer/edge_renderer data_source
    - #8196 [feature request] add .copy method to columndatasource
    - #8206 Add another theme: balanced
    - #8218 [component: bokehjs] Support specifying representative point from legend items
    - #8247 [component: server] Allow defining session cleanup hooks on a document
    - #8284 [component: bokehjs] Autohide toolbar
    - #8295 [component: bokehjs] Fixedticker does not accept minor ticks
    - #8311 [feature request] ‘from_networkx’ function for a fixed layout
    - #8321 [component: bokehjs] [component: examples] Add adapter property to ajaxdatasource
    - #8329 Add webdriver_control and default to reuse
  * tasks:
    - #2283 Feature idea: docker image for bokeh server
    - #2596 [component: tests] Ci test to make sure bokeh works without heavy dependencies
    - #3322  should issue a validation warning when the range values are not unique
    - #4215 Valueerror: nattype does not support timetuple
    - #5355 [component: bokehjs] No way to cleanup used memory
    - #5426 [API: models] It is not possible to set a range1d with datetime.timedelta value
    - #5632 [component: bokehjs] Warn on setting empty plot.legend attrs
    - #6117 Add missing ticker tests and minor ticker improvements
    - #6362 Customize warning formatter
    - #6495 Task: pytest marked "selenium" tests should assert no browser console errors
    - #6548 Task: add/use selenium fixture in ``export`` tests instead of creating new phantomjs processes
    - #6770 Task: add user warn/error to columndatasource.from_df method about dataframe containing "index" column
    - #7042 [component: docs] User guide, tweak to "ranges" doc
    - #7320 [API: models] Document validation check needed for mis-matched y_range_name
    - #7785 [component: bokehjs] [component: server] Pull_session with url paramters isn't working
    - #7788 [widgets] Daterangeslider error not logged nor shown in cli
    - #8017 [component: docs] Added short usage instructions for examples/app/dash
    - #8037 [component: docs] Doc typo (funtion -> function)
    - #8038 Improved support for pyinstaller
    - #8056 Remove code dependent on ipython pprint machinery
    - #8074 Overzealous deduplication of tools for merge_tools
    - #8078 [component: tests] Clean up test support
    - #8086 [component: docs] Simplify pie example
    - #8089 [component: build] Ci scripts with colon in filenames are not valid on windows
    - #8091 [component: tests] Bryanv/test cleanup
    - #8092 Use generators instead of lists
    - #8097 [component: docs] Backticks are broken un docs/*.rst
    - #8104 [component: examples] Box_annotation example .ix method is deprecated
    - #8107 [component: examples] Ref: use .loc instead of .ix in examples
    - #8120 [component: docs] Update documentation for how to use bokeh server with jupyterhub environment
    - #8125 [component: tests] Fixed exception raising tests of test_sources
    - #8128 [component: examples] Rename joyplots to ridgeplots
    - #8131 [component: docs] Docstrings not clear for dimension property for band, span and whisker class
    - #8134 [component: server] Bokeh doesn't work with tornado master
    - #8139 [component: tests] Initial work to support server selenium tests
    - #8140 Remove the arguments parameter from server_session
    - #8146 [component: tests] Unit tests failing in windows 7
    - #8190 [component: examples] Pandas > 0.23.0 & < 0.23.4 breaks boxplot.py example
    - #8199 [component: examples] Issues: none type: bug tag: examples updated main.py
    - #8214 [component: tests] Bryanv/misc cleanup
    - #8215 [component: docs] Installation docs: need info about export_png/svgs
    - #8217 [component: build] [component: tests] Added unit/integration tests for python3.7
    - #8219 [component: build] Don't report unversioned python in deps.py output
    - #8221 [component: tests] Python 3.7 get_referrers change
    - #8223 Remove dead testing code
    - #8224 Use np.frombuffer instead of deprecated np.fromstring
    - #8225 [component: build] Appveyor build and test for windows
    - #8231 [API: models] Plot.{x,y}_range default value
    - #8235 [component: docs] Some typo in the guide
    - #8251 [component: build] Update requests min version
    - #8252 Pandas is optional overall, but required for hexbin
    - #8254 [component: build] Refine appveyor.yml settings
    - #8257 [component: examples] Example examples/embed/server_session/ is broken, template is missing
    - #8263 Add note of  bokeh_phantomjs_path environment variable on missing phantomjs
    - #8271 [component: bokehjs] Missing ";" in try_run.js
    - #8273 Unhelpful error when passing invalid argument to gridplot
    - #8286 [component: docs] [document] add (or update) an example to demonstrate  converting node/edge attributes in from_networkx
    - #8296 Split up bokeh.properties
    - #8301 [component: docs] Re-unify docs build
    - #8302 [component: build] Small build tasks
    - #8308 [BEP] Ratify project roles document
    - #8309 Bryanv/reduce import code
    - #8319 [component: examples] Examples punch list
    - #8322 [component: examples] Pandas warning removed in gapminder example
    - #8325 [component: examples] Correction selection histogram example
    - #8326 [component: examples] Population example legend position -> "bottom_right"
    - #8327 Load themes from python modules instead of json files
    - #8328 [component: examples] Simple hdf5 example improvement
    - #8330 Replace log.warn with log.warning
    - #8331 [component: examples] Embed_multiple: better arrangement
    - #8341 Boilerplate for bokeh/core
    - #8344 [component: docs] Chaco link is a 404 - changed to git repo url
    - #8348 Confusing multi_line error message

2018-06-20   0.13.0:
--------------------
  * bugfixes:
    - #799 Templates not included when compiling with py2exe
    - #2080 [component: bokehjs] Hovertool panel for annular wedge displays at center coordinates, not over wedge
    - #7428 [component: bokehjs] Correctly showing wedge hover tooltips with "clock" orient
    - #7591 [component: bokehjs] [layout] Adding a slider fails to load visualization in version 0.12.14
    - #7891 [component: bokehjs] [regression] [widgets] Unable to edit datatable cell
    - #7904 [component: examples] Flask_gunicorn_embed.py does not work with tornado 5
    - #7916 [component: tests] Code quality tests fail due to pandas' regression
    - #7924 [component: bokehjs] [regression] [widgets] Sorting linked datatables messed up in bokeh 0.12.16
    - #7926 [component: bokehjs] [widgets] Setting value of multiselect in javascript doesn't unselect previous selected items
    - #7935 Using on_event with string names in python2.7
    - #7941 [component: docs] Update docs: the hovertool attribute is "formatters"
    - #7978 [component: bokehjs] [layout] Sizing mode scale_both grows on window resize
    - #7984 [component: bokehjs] [layout] Temp partial fix allowing scale_both to work in some cases
    - #7992 [component: server] [memory] Memory leak on add_next_tick_callback
    - #8000 [component: docs] Small documentation error for boxselecttool
  * features:
    - #3596 Warn about python callbacks when they won't run
    - #4986 [layout] Allow elements to be placed in server templates
    - #6320 [component: bokehjs] Expose initial_start and initial_end in range1d
    - #6386 [component: bokehjs] Support line annotations like span but with slope
    - #7401 Support passing a pandas.series as x_range for figure
    - #7795 [component: bokehjs] Feature-request: selection-bar
    - #7908 [API: models] Tile source attribution font size
    - #7921 [component: bokehjs] Bryanv/usability
    - #7961 [component: bokehjs] Add a cumsum transform to cumulatively sum a single column
  * tasks:
    - #7364 [component: docs] Developing with javascript jsfiddle not working in firefox 57.0.3 (macos 10.13.2)
    - #7374 [component: server] Connection errors when sending large amounts of data to browser via a bokeh server
    - #7831 [component: docs] Improve documentation for creating interactive plots in notebook
    - #7880 [component: bokehjs] [component: build] Upgrade npm packages
    - #7905 [component: docs] All gallery examples bundle unnecessary extension code
    - #7911 [component: bokehjs] [component: tests] Make bokehjs' unit tests more robust
    - #7915 [component: bokehjs] Re-jitter on tap is unexpected
    - #7919 [component: bokehjs] [component: build] Replace gulp with a more lightweight solution
    - #7922 [component: build] Move bokeh build and ci to new rackspace account
    - #7930 [component: docs] [typescript] Docs still say that coffeescript is the implementation language of bokehjs
    - #7936 [component: bokehjs] Resettool doesn't restore initial plot when using wmtstilesource and x/y_range
    - #7937 [component: bokehjs] Add support in tablewidget for ajaxdatasource
    - #7946 [typescript] Upgrade to typescript 2.9
    - #7950 [component: build] Bryanv/build cleanup
    - #7951 [component: bokehjs] Line plots jaggy when overplotting noisy data with `line_join='miter'`
    - #7953 [component: bokehjs] Modifying data source while polydraw is editing breaks editing
    - #7957 [component: bokehjs] [component: build] Replace esprima with typescript compiler api
    - #7962 [component: bokehjs] [component: build] Run `npm install` automatically if package.json changed
    - #7967 [component: docs] Typo in the image_url documentation
    - #7973 Add new maintainer to the list
    - #7977 [performance] High (probably unnecessary) cpu load due to is_valid calls
    - #7985 [API: plotting] Bokeh gmapoptions error
    - #7993 [layout] Improve computing of available space for responsive layouts
    - #7995 [component: docs] Documentation of cmap functions
    - #8003 [component: docs] [notebook] Updated docs for two-way jupyter communication

2018-05-14  0.12.16:
--------------------
  * bugfixes:
    - #3556 [component: server] Add a server callback once and then again as periodic
    - #4298 [component: bokehjs] Ajaxdatasource data initialization
    - #6303 [component: bokehjs] Bokeh.io.export captures screenshot before asynchronously loaded models
    - #6698 [component: bokehjs] Bands wrongly coloured
    - #6699 [component: server] Server logger (format, output, etc) does not work
    - #7011 [API: models] Error message in notebook when running explicit path graph example from user guide
    - #7349 [component: bokehjs] [widgets] Arrow keys don't work if the step of slider is very small
    - #7462 [component: bokehjs] Multi_line does not work with categorical plots
    - #7476 [component: bokehjs] Plotcanvasview#build_levels removes only glyphs when renderers change
    - #7597 [widgets] Bug: datatable view doesn't rerender on table.source.change.emit()
    - #7621 `save` creates non-working files when used with widgets
    - #7627 [component: bokehjs] [regression] Selected points get lost with tap tool
    - #7705 [component: bokehjs] [regression] "typeerror: cannot read property 'is_empty' of null" when using hovertool
    - #7724 [component: bokehjs] [component: server] Plots not reacting to sliders inside flask
    - #7736 [component: bokehjs] [regression] [widgets] Editable datatable freezes when a cell is edited
    - #7744 [component: docs] Docs - json prototype does not expand
    - #7745 [component: bokehjs] [component: server] Pointdrawtool : no python side update of the data source
    - #7761 Permission denied error when invoking export_png() or export_svgs from inside jupyter notebook
    - #7783 [component: bokehjs] The child property of panel can't be a widget
    - #7790 [component: bokehjs] [regression] [typescript] Plotcanvas.save() is missing break statements
    - #7801 [component: bokehjs] [regression] Bokeh 0.12.15 throws typeerror on touch devices when dragging
    - #7803 [component: tests] Py.test -m unit doesn't run pytest.mark.parametrize tests
    - #7807 [component: examples] [regression] Allow customjs args to accept basic python types
    - #7819 [component: bokehjs] [performance] [regression] Rendering occurs on mouse move when hover tools is enabled
    - #7836 [component: docs] Minor fix in docs
    - #7840 [component: docs] Html formatter has a small typo
    - #7849 [component: examples] Ionrangeslider example fails when adding more than one slider
    - #7868 [component: bokehjs] [geo] The plot disappears when the max_zoom value of wmtstilesource is set and this value is reached
    - #7885 [regression] Exporting datatable to png broken
    - #7886 [py3] Detect_phantomjs() is broken on py3 when phantomjs is not available
  * features:
    - #113 [layout] Axis should have option to have a fixed orientation
    - #2427 [component: bokehjs] Make axis wheel zoom configurable
    - #3125 Expose the wheel zoom speed in python
    - #3126 [component: bokehjs] Add box zoom out tool
    - #3442 `boxselecttool` should accept renderers = none
    - #3886 Feature request: add hover inspection image glyphs
    - #4286 [component: docs] Provide examples of using remotesource/ajaxdatasource in the docs
    - #5071 [component: bokehjs] Add a method to "reset" a figure
    - #7582 [component: bokehjs] [performance] Consider replacing rbush spatial index with flatbush
    - #7643 [API: models] [component: bokehjs] Option to rotate additional categorical ticks
    - #7647 [component: bokehjs] Allow custom formatter when using the hover tool
    - #7725 [component: examples] Increase `size` and `color` options for crossfilter example
  * tasks:
    - #3903 [component: tests] Clean-up jupyter custom.js after running examples
    - #4915 [component: docs] [widgets] Default value in dropdown menu is stuck on none
    - #4923 Add a type check to `show` for better error reporting
    - #5911 [component: docs] Move off eoled google site search
    - #6175 [component: server] Some clients send bad pong, lower log level to reduce noise
    - #6193 [component: docs] Make bokeh_plot work in sphinx by default without google_api_key
    - #6240 [component: tests] Fail gracefully when pr is submitted from a fork
    - #6306 [component: bokehjs] Allow strict mode for cutomjs, etc. written in pure js
    - #6341 [component: server] Add parameter to autoload_server to control loading of js/css resources
    - #6657 Task: make columndatasource.column_names attribute a property method
    - #7080 [component: docs] [component: server] [notebook] Notebook_url="*" fails in show()
    - #7510 'export_png' from bokeh.io triggers 'deprecated' warning from selenium using phantomjs
    - #7576 [component: build] Use pscript instead of flexx.pyscript
    - #7715 [component: docs] All release notes on one webpage
    - #7720 [component: build] [component: tests] Add "downstream" ci build
    - #7723 [component: build] Markdown description for pypi
    - #7729 [component: build] Update of ipython to 6.3.0 breaks unit tests
    - #7734 [component: build] Remove pytest-rerunfailures from ci tests
    - #7741 [component: build] Svg export test occasionally fails on travis
    - #7750 [component: bokehjs] [component: tests] Investigate output from test_defaults
    - #7751 [component: bokehjs] [component: build] [typescript] Keep all custom declarations (d.ts) in external/
    - #7753 Revert "don't use --rerun"
    - #7759 [component: tests] Move outstanding static integration tests to examples/integration
    - #7765 [component: examples] Added 'pan' to the hexbin example
    - #7774 Make api decorators more debugging friendly
    - #7777 [component: tests] [py3] Switch python versions between full and partial examples' travis ci jobs
    - #7778 Remove all deprecations before 0.12.15
    - #7781 [component: docs] Missing docstring for get_screenshot_as_png
    - #7786 [component: bokehjs] [component: build] Rename bokehjs/src/coffee
    - #7797 [component: docs] Missing documentation of `--show` option for command line `bokeh serve`
    - #7800 [component: docs] Add relative path option and handling to sphinx ext
    - #7802 Findable and tunable html error boxes please
    - #7814 [component: examples] Surface3d example color fixed to z axis
    - #7821 Revert "set a data source's inspected taking multiple renderers into account"
    - #7823 [component: bokehjs] Stacked bars failing to update on patch
    - #7829 [component: build] Update for npm 6
    - #7835 [component: docs] Jupyter notebooks need to be "trusted" for saved js to render without re-executing cells
    - #7841 [component: bokehjs] [component: build] Drop dependency on webpack
    - #7854 [component: docs] Dependency collision: nodejs>=8.8,<9.0 and npm >=6.0 <7.0
    - #7855 [component: docs] Added how-to set up conda environment using fish shell
    - #7858 Use full year for ticks in default month-year scale
    - #7860 [component: docs] Update docstring for on_change
    - #7878 Add new mpl cividis palette
    - #7879 [component: bokehjs] [component: build] Resolve reported npm issues
    - #7896 [component: docs] Typos
    - #7897 [component: build] [component: tests] Additional dependencies for unit tests
    - #7898 [component: docs] Unit tests require missing sampledata: airports.csv

2018-03-29  0.12.15:
--------------------
  * bugfixes:
    - #6525 [component: tests] Py.test bokeh/tests/test_io.py doesn't kill phantomjs precesses
    - #6787 [component: bokehjs] Svg output bleeds past axis
    - #6867 [webgl] Rect shape gets out of figure when panned or zoomed with webgl
    - #6871 [component: examples] Examples/howto/{js_events,events_app} contain bad css
    - #7054 [component: bokehjs] [component: examples] Line_select.py broken again
    - #7087 [webgl] Log scale graph will be blank if output_backend is webgl
    - #7168 Webdriverexception when using export_png
    - #7211 [webgl] Webgl incorrect clipping, 0.12.11 onwards
    - #7219 [component: server] Tornado next tick callback issue
    - #7416 [component: bokehjs] Excess text when multi_line hover hits two or more lines
    - #7468 [component: server] Increasing memory consumption of bokeh server
    - #7508 [component: docs] Fix typo in docs
    - #7515 [component: bokehjs] Bokeh 0.12.14 doesn't highlight initially selected options in multiselect widget
    - #7518 [component: bokehjs] [regression] Is ajaxdatasource losing the endpoint?
    - #7523 Out of range float values are not json compliant with numpy arrays
    - #7537 Export_png does not clean up temporary files before exit
    - #7538 [component: bokehjs] [regression] Adding a title to layout removes toolbar from top of plot
    - #7546 [component: bokehjs] [performance] Stream_to_column() doesn't implement rollover properly
    - #7562 [component: bokehjs] [widgets] Checkboxbuttongroup active list broken in 0.12.14
    - #7587 [regression] Regression streaming datetime columns
    - #7608 [component: docs] Fix typo in docstring
    - #7614 [component: examples] Fix io_loop paramenter in examples/howto/server_embed/flask_embed.py
    - #7619 [component: server] Issue with rapid page reloads with tornado 5
    - #7622 [component: bokehjs] [widgets] Slider violates start and end when using keyboard navigation
    - #7624 [component: docs] Doc: bug: fix user guide docs on embed - link schema typo
    - #7645 [component: bokehjs] [layout] Sizing_mode='scale_width' makes plot 1 or 2 pixels too wide in notebook
    - #7652 [regression] Regression when plotting images with non-binary array types
    - #7681 [regression] [webgl] Webgl initialization broken after pr #7637
    - #7688 [component: bokehjs] [geo] [regression] Gmapplot not rendering
  * features:
    - #2507 [component: bokehjs] Have grid that respects bounds of axis
    - #4786 [component: bokehjs] Add a hex tiling glyph
    - #7466 [component: server] [notebook] Notebook_embed.ipynb works locally but not remotely via ssh tunnel
    - #7563 [component: bokehjs] Functickformatter option to receive all ticks at once
    - #7566 [notebook] Add support for push_notebook in jupyterlab
    - #7600 [component: bokehjs] Global alpha for image_rgba plot
    - #7638 [component: bokehjs] Add a hex scatter marker
    - #7642 [API: plotting] [component: bokehjs] Add mercatoraxis class
    - #7685 [component: server] [notebook] Bokeh server compatibility with running behind jupyterhub
  * tasks:
    - #2644 [component: docs] Enable image diff testing for user's guide source example
    - #3723 [component: tests] Write unittest for ajaxdatasource
    - #5386 [BEP] Clean up beps and migrate to google docs
    - #6481 [typescript] Rewrite bokehjs in typescript
    - #6562 [component: server] Propagate settings to tornado application from bokeh server
    - #6594 [component: bokehjs] Add support for headless chrome/chromium for image diff tests
    - #6845 [component: bokehjs] Make .selected a proper bokeh model
    - #7125 [notebook] Only first plot in jupyter notebook cell is shown
    - #7474 Alpha not working on images
    - #7483 [component: build] [component: server] Add tornado 5 to ci testing
    - #7492 In a stacked bar chart there is no way to add tolltips for segments in column
    - #7494 [component: build] Specify compilation inputs in tsconfig.json
    - #7495 [component: build] [typescript] Upgrade typescript to version 2.7.1
    - #7502 [component: build] Resolve compilation errors around number.isinteger
    - #7505 [component: docs] Sphinx bokeh extension script directory sorting
    - #7509 [component: build] Remove pytest-catchlog dependency
    - #7513 [component: bokehjs] [component: build] Check if package.json changed before proceeding with build
    - #7516 [component: docs] [component: examples] Update examples and add documentation for selection model
    - #7520 [component: docs] Bokeh-plot directive incomptable with sphinx 1.7
    - #7522 [component: docs] Fix typo
    - #7526 Jsonencoder warning when using latest numpy
    - #7530 [component: examples] Add axis names to scatterplot matrix
    - #7531 [component: bokehjs] [component: docs] Update documentation after removal of `range1d(start, end) syntax`
    - #7542 [component: docs] Fix typo in figure.vbar_stack docstring
    - #7549 Bokeh channel on anaconda.org contains broken version of packaging?
    - #7550 [component: docs] 'conda install flexx -c bokeh' fails on windows 7
    - #7553 [component: bokehjs] Make boxedittool match polydrawtool ui
    - #7559 [component: tests] Fail travis ci tests when there are ts compilation errors
    - #7571 [component: build] [component: docs] Enforce usage of npm >= 5.6
    - #7584 [component: build] Don't repeat base install for external prs
    - #7585 [component: build] Rev conda_reqs and ignore built python files for docker images
    - #7588 [component: docs] Sort all sphinx docs by file suffix. 'py' first
    - #7602 Bokeh should not instance its loggers using: logging.getlogger(__file__)
    - #7654 [component: bokehjs] [widgets] Datatable index column enhancements
    - #7662 [component: docs] Anonymize google analytics collection
    - #7690 [component: docs] The readme.md contains typos and could be written more concisely
    - #7711 [component: docs] Typos on palettes page
    - #7716 [component: docs] Release docs for 0.12.15

2018-02-07  0.12.14:
--------------------
  * bugfixes:
    - #5420 [component: bokehjs] View.classname doesn't respect class structure
    - #6655 [component: bokehjs] X/y_range not properly set with tile source
    - #6680 [component: bokehjs] Datetime (convert_datetime_type) seems to add in extra milliseconds
    - #6932 [layout] 0.12.9 misplaced figure title
    - #7083 [component: bokehjs] Factorrange regression: plot does not get updated when factors change
    - #7101 [component: bokehjs] [widgets] Broken datatable selecteditor
    - #7139 [component: bokehjs] [regression] [widgets] Datatable automatically scrolls down when app loads
    - #7218 [component: bokehjs] Circle not circular
    - #7266 [layout] [regression] Spacer does not display using show on 0.12.11
    - #7290 [component: bokehjs] Regression in boxzoomtool with match_aspect
    - #7291 [component: bokehjs] Hovertool with attachment="vertical" incorrectly positions tooltips
    - #7295 [component: docs] Removed a broken link from server.rst
    - #7298 Remove dependency on phantomjs when other webdriver is used
    - #7304 [component: bokehjs] [regression] [widgets] Datatable editing regression
    - #7319 [notebook] Themes not applying in the notebook
    - #7327 Output_png and output_svgs fails in the settings.phantomjs_path( ) function.
    - #7337 [component: bokehjs] Legend entry for text renderer causes error
    - #7370 [component: bokehjs] Regression in graph rendering during zoom
    - #7373 [component: bokehjs] [regression] "number.isinteger()" javascript error of slider in internet explorer
    - #7386 [component: docs] Error in documentation for handling categorical data
    - #7398 [component: bokehjs] [regression] [typescript] Missing import of includes function in tile_renderer
    - #7400 Issue with figure and legend when a dataframe is passed as a source
    - #7412 [component: bokehjs] [typescript] Variables in widget selectview undeclared
    - #7439 [component: bokehjs] [notebook] [regression] Regression displaying embedded bokeh plots outside the notebook
    - #7443 [component: bokehjs] [layout] [regression] Bokeh layout elements overlap in new version
    - #7448 [component: bokehjs] [regression] [typescript] "typeerror: hits.map is not a function" when hovering over multiline
    - #7452 [component: bokehjs] [regression] [widgets] Revert nouislider rev update
    - #7460 Bokeh.core.properties.date#transform fails on windows
    - #7461 [component: server] [regression] Unable to reuse sessions of a server application
    - #7470 [component: bokehjs] Polydrawtool does not emit event on double-click
    - #7475 [component: bokehjs] [regression] Setting range end or start through customjs not working
    - #7478 [component: bokehjs] [regression] Selection and nonselection glyph properties ignored
    - #7484 [regression] Cannot select tools in certain examples
    - #7488 [component: bokehjs] [regression] Renderers/glyph_renderer contains invalid syntax
    - #7503 [component: bokehjs] [regression] [widgets] Selecteditorview (and others) doesn't have access to its model
  * features:
    - #6370 [component: bokehjs] Proposing a bokeh draw tool
    - #7292 [API: models] Make it possible to create hovertool with attachment set to explicit left, right, above, below
  * tasks:
    - #3250 [component: bokehjs] Tool icons should have the same dimensions
    - #3551 Add https to tile providers urls in `bokeh/tile_providers.py`
    - #6605 [component: bokehjs] [component: build] Add support for tslint in bokehjs' build
    - #6681 [component: server] Streaming numpy datetime64 data does not work
    - #6887 Remove all server examples that use session.loop_until_closed
    - #7014 [component: bokehjs] The inherited width should be set to 100% and up to the user to implement margin and padding restrictions
    - #7084 [component: bokehjs] Factorrange regression: bokehjs crashes if data has values not in factorrange factors
    - #7164 [component: tests] Axes labels misplaced on multiple extra_x_ranges
    - #7267 [component: bokehjs] [component: build] Make bokehjs' build work with npm 5
    - #7288 404 error on website page for releases
    - #7289 [component: server] Sort application names in index page
    - #7308 [component: server] Tornado 5.0 compatibility
    - #7318 [component: docs] Make old/dev docs warning banner always float
    - #7323 [component: docs] Components not working with notebook show in the same cell
    - #7331 [component: tests] Replace strict fp equality with allclose
    - #7332 [component: bokehjs] [layout] Initialize box's  layout variables in initialize()
    - #7344 [component: docs] Minor typos in bokeh server docs code example
    - #7346 [component: tests] Resolve pytest --log-file conflict
    - #7354 [component: bokehjs] Remove resettool.reset_size
    - #7376 Add traceback information to exception messages callbacks
    - #7385 [component: docs] Fixed a broken link ('why anaconda')
    - #7391 [component: bokehjs] Multi-gesture tools do not work on proxytoolbar
    - #7405 Icons have various visual artifacts
    - #7420 [component: bokehjs] [component: build] [typescript] Move gloo2 to its own repository
    - #7426 [notebook] Allow push_notebook() to run when no change has occurred
    - #7431 [component: bokehjs] [typescript] Remove attrs from hasprops.initialize()
    - #7434 [component: docs] Remove references to autoload_server() from the docs
    - #7455 [component: docs] State and check min phantomjs version
    - #7458 [component: build] Update version number in package-lock.json
    - #7500 [component: examples] Expand elements example with tooltip

2017-12-06  0.12.13:
--------------------
  * bugfixes:
    - #7283 [component: build] Windows install fails 0.12.12

2017-12-05  0.12.12:
--------------------
  * bugfixes:
    - #6588 [typescript] Model references are not resolved when trying to change ranges and attach js callback at the same time
    - #7268 [component: bokehjs] [notebook] Push_notebook regression in 0.12.11
    - #7282 [component: bokehjs] Add missing return statements to get_indices typescript version
  * tasks:
    - #7214 [component: bokehjs] [component: build] Allow es6 output from bokehjs' build
    - #7276 Unclear exception when bokeh_log_level env variable is set to a wrong value
    - #7279 [component: docs] Configuring plot tools documentation was unclear

2017-11-28  0.12.11:
--------------------
  * bugfixes:
    - #1376 [component: bokehjs] [widgets] Implement `widget.disabled`
    - #1651 [layout] Grid plot with row of all none behaves badly
    - #3538 [component: server] Session could auto-no-op any callbacks invoked after the session is destroyed
    - #4561 [layout] Models/legends example broken
    - #4574 [layout] [regression] Plot border gets covered up by things stuck on edge
    - #4613 Hover tool has own column in ie
    - #4787 [layout] [widgets] Erroneous toolbar separator positions using tabs
    - #5761 [layout] Location in colorbar offsets from axis
    - #6065 [component: bokehjs] Touch events fail in device mode under chrome devtools
    - #6348 [layout] Layouts with multiple tab widgets don't work
    - #6409 [component: server] Screen distance spec fields fail with bokeh.client
    - #6466 [component: bokehjs] [layout] Rendering error with toolbar_sticky=false and sizing_mode='scale_width'
    - #6502 [widgets] Programmatically setting the active tab does not change the tab in 0.12.6 & 0.12.7
    - #6545 Patch bug: patch slices must have positive (start, stop, step) values, got slice(0, 200, 50)
    - #6583 [component: bokehjs] Rect not behaving correctly with zero height
    - #6600 [component: build] Downloading dependencies from scripts/deps fails
    - #6676 [layout] [regression] Axes' tick labels are trimmed when moving plot
    - #6841 [component: bokehjs] [regression] [widgets] Rangeslider css_classes not being updated anymore
    - #6946 [component: bokehjs] Graphrenderer view not updating
    - #7060 [layout] [regression] Twin_axis not showing label correctly in version 0.12.9
    - #7062 [component: bokehjs] Linked brushing does not work on second plot in gridplot
    - #7075 [layout] Changing title attributes does not work as expected in bokeh server
    - #7121 [component: docs] Documentation - typo in release file 0.12.10
    - #7128 [component: server] [regression] When embeding bokeh server to flask, attributeerror: 'nonetype' object has no attribute '_id' shows up
    - #7162 [component: docs] Fix documentation for properties.rgb
    - #7184 [component: server] [regression] Support stream and update with pandas dataframes
    - #7189 [component: bokehjs] Hovertool data not completely matching when using cdsview filters in bokeh 0.12.11dev2
    - #7193 [component: bokehjs] [regression] Ion slider extension example broken
    - #7199 [component: bokehjs] Missing import of logger in toolbar.coffee
    - #7202 [layout] Layout of plot border with axis.visible = false
    - #7212 [component: bokehjs] [notebook] [regression] Ie11-incompatible syntax in bokeh/core/_templates/autoload_nb_js.js?
    - #7213 [component: bokehjs] Canvas image smoothing in ie11
    - #7222 Double encode escapes in html-safe json strings
    - #7224 [component: bokehjs] [regression] `sdy` in range info is inverted and affects panning gmaps
    - #7230 [component: examples] Spectrogram example image broken
    - #7240 [component: docs] Missing figure import on graph example
    - #7250 [component: bokehjs] [widgets] Slider callback doesn't occur on particular values
    - #7255 [component: bokehjs] [regression] Zooming performance regression in 0.12.11rc
  * features:
    - #1007 [component: docs] Documenting the documentation process and guidelines
    - #3644 [component: bokehjs] Would need a figure.step to create step line in plot
    - #4635 [layout] Right titles are too far out
    - #4711 Decorator for documenting what version a function or method first appeared
    - #5298 Box select does not work with vbar but tap tool does
    - #5937 [component: bokehjs] Lod in linked plots
    - #6565 [component: server] Avoid boiler-plate when constructing a bokeh server programmatically
    - #6599 Bokeh server url hard coded as over  http
    - #7130 [component: bokehjs] [bokekjs] unable to use customjs in bokehjs
    - #7150 [component: bokehjs] [widgets] Adding optgroup functionality to select widget
  * tasks:
    - #4394 [layout] Axis label size change does not trigger a re-alignment
    - #4874 [layout] Toolbar css class occasionally is `bk-toolbar-null`
    - #5648 [API: models] Line renderer raises the "without value specification" when a columndatasource is used
    - #6174 [component: bokehjs] Hovertool vline/hline models for line glyph (_hit_span method) causes non-intuitive tooltips to appear
    - #6447 [layout] Switch layout's coordinate system from view to screen
    - #6626 [component: docs] Updates to /docs/dev_guide/setup.html
    - #6990 [component: bokehjs] [layout] Allow toolbar in side panels and drop sticky property
    - #7028 Gmaps incompatible with datarange1d, make error louder/earlier
    - #7039 [component: docs] Clarify some security considerations
    - #7053 [component: examples] [component: tests] Plotting/file/categorical_scatter_jitter needs a seed
    - #7081 [component: docs] User guide still refers to bokeh.embed.notebook_div
    - #7096 [component: docs] Typo in server.rst
    - #7100 [component: docs] Renamed custom attribute from range to slider
    - #7103 [component: docs] Update bokehjs standalone installation guidelines
    - #7104 Bokeh channel version of nodejs is no longer in sync with upstream anaconda/nodejs
    - #7114 [component: bokehjs] Add wheelpantool support to bokehjs
    - #7131 Prove of concept: caching of nodejs compilation on model bundling
    - #7154 [typescript] Investigate coffeescript 2 and its benefits for transition to typescript
    - #7172 [component: docs] Extending bokeh with js library documentation needs to clarify use of javascript() to wrap js
    - #7179 [component: docs] Zeppelin notebook integration not working
    - #7181 [component: tests] Move annotations' "integration" tests to examples
    - #7190 [component: docs] Legend text with click_policy="hide"
    - #7198 [component: docs] Request for improvement to columndatasource documentation in reference to multi_line()
    - #7200 [component: docs] Adding additional information in the multi_line() documentation
    - #7207 [component: docs] Add kwargs documentation for directoryhandler
    - #7229 [component: docs] Multiprocessing in windows is not available (error:module 'os' has no attribute 'fork')
    - #7236 [component: examples] Simplify brewer.py example

2017-10-16  0.12.10:
--------------------
  * bugfixes:
    - #4247 [notebook] Performance issues after repeated `push_notebook` calls
    - #4965 Datepicker errors on input from chrome on windows 8.1
    - #5415 [notebook] Having multiple `push_notebook` calls in the same widget callback doesn't work
    - #5452 [notebook] Plotting bug when using push_notebook() from customjs callback
    - #6258 [regression] Colorspec processing is broken
    - #6590 [component: server] Tile sources cannot be shared between app sessions
    - #6820 [component: bokehjs] Cdsview not working with text glyph
    - #6831 [component: examples] [regression] Color slider example can show hex fp values
    - #6846 [component: bokehjs] Categories on yaxis with hbar fails to set initial ranges
    - #6863 [component: server] Datatables do not update properly for on_change events 0.12.7
    - #6891 [component: bokehjs] [regression] Customjs for hover no longer working - bokeh 0.12.7
    - #6910 [component: bokehjs] The new feature filter (cdsview) not behaving has expected
    - #6921 [component: bokehjs] [notebook] [regression] Shared drag tools in grid plots only work on the last plot
    - #6926 [component: bokehjs] Daterangeslider incorrect value displayed
    - #6947 [component: bokehjs] Color mapping in circle fill colors does not take current view (cdsview) into account
    - #6949 [component: bokehjs] Length_units has no effect for rays
    - #6955 Possible bug: hover tool does not work with filtered source
    - #6982 [component: bokehjs] Bugfix: bokeh-server: ie fails with "object doesn't support this action"
    - #6986 [component: bokehjs] Mercatorticker behavior poorly defined for ranges exceeding mercator bounds
    - #6993 [component: bokehjs] [regression] Bad positioning of colorbar for 'above' and 'below'
    - #7015 [component: bokehjs] [regression] Functickformatter broken with categorical axis
    - #7035 [component: bokehjs] [regression] [widgets] Datatable with dynamic number of rows is unstable and breaks
    - #7044 [component: server] Bokeh server sessions not released correctly
    - #7048 [component: bokehjs] Datepicker returns one day earlier than picked in ie
  * features:
    - #3601 [component: bokehjs] Patchesview._mask_data() changes the draw order
    - #4117 [component: bokehjs] Add support for client side filtering of data sources
    - #4911 Updating two glyphs using periodic callback
    - #6945 [component: bokehjs] [component: server] [notebook] Use bokeh protocol to implement push_notebook
    - #6951 Y_range doesn't understand numpy arrays
  * tasks:
    - #4049 [component: docs] Improve documentation to support running unit tests locally
    - #6666 [component: docs] [component: examples] Update sliders in examples
    - #6704 [component: bokehjs] Hovertool hit detection fails on vertical and near-vertical segment glyphs
    - #6718 [notebook] Push_notebook updates at most one plot
    - #6918 [component: docs] Js code error in documentation
    - #6928 [component: docs] Bryanv/cleanups
    - #6937 [component: docs] Fix typo in notebook.rst
    - #6938 Stop computing unused and expensive bokeh.__base_version__
    - #6943 [component: docs] Fix docstrings
    - #6952 Canonicalize bokeh.client
    - #6957 [component: docs] Generate uuids for sphinx docs js script names
    - #6962 [component: docs] Gridplot doctext formatting error
    - #6971 From_networkx fails with networkx 2.0
    - #6978 Passing an index for factors throws value error
    - #6991 [component: docs] Out of date reference to matplotlib in user guide for color bars?
    - #6994 Canonicalize bokeh.colors
    - #6999 [component: docs] Incomplete docs re embedding when using data tables
    - #7009 [component: tests] Reduce size of travis ci logs
    - #7016 Fix codebase issues
    - #7021 Canonicalize more top level modules
    - #7022 Clean up sampledata
    - #7029 [component: examples] Fixed url typo in examples app & changed readme url to https
    - #7031 [component: docs] Server docs are misleading
    - #7033 [component: docs] `bokeh-demos` link doesn't exist
    - #7041 Changed to handle nx2 scale "kwarg error
    - #7052 [component: build] Upgrade typescript to version 2.5.3
    - #7056 [component: bokehjs] Remove bk-logo-{medium,large}

2017-09-12   0.12.9:
--------------------

2017-09-12   0.12.8:
--------------------
  * bugfixes:
    - #1329 [widgets] Daterangeslider re-sizing
    - #2268 [widgets] Daterangeslider not rendering
    - #4048 Bounds on axis causes axis labels to go off page
    - #4876 [layout] Tile attribution misaligned (see toolbar on right-side example)
    - #6842 [component: docs] Bokeh.models.widgets.sliders is missing from the reference documentation menu
    - #6844 [notebook] Bug: bokeh.io.push_notebook is broken
    - #6850 [layout] [regression] Log-axis label layout issue
    - #6852 [component: bokehjs] [regression] Hovertool not rendering on hbar glyphs in 0.12.7
    - #6859 [component: bokehjs] [regression] Dateformatter not working in tables
    - #6860 [component: examples] Patch color_sliders.py
    - #6873 [component: bokehjs] [widgets] Unable to render <, >, & in datatable
    - #6880 [widgets] Datatable rendering broken in notebook
    - #6885 [component: docs] Typo in edgesandlinkednodes docstring
    - #6898 [component: docs] [doc] adjust docstring indentation
    - #6908 [component: bokehjs] [notebook] [regression] Running output_notebook with hide_banner=true broken
    - #6909 [notebook] Notebook output generates console errors
    - #6922 [notebook] Unprotected ipython imports break bokeh without notebook installed
  * features:
    - #994 Text doesn't respect new lines
    - #5984 Improve data transfer, using a binary transfer protocol
    - #6865 Allow supplying explicit edge paths to graphrenderer
    - #6876 [component: bokehjs] New feature: add a "resettool clicked" event
    - #6895 Bokeh daterangeslider returns tuple of integers instead of dates
  * tasks:
    - #2458 [component: examples] Add examples for daterangeslider and datepicker
    - #5065 Task: refactor select tools
    - #6472 [layout] Make layout canvas' panels not overlap in corners
    - #6560 Using ``export_png`` or ``save`` without filename from within jupyter notebook saves png file to lib/python
    - #6612 Task: graph visualization improvements
    - #6700 [component: bokehjs] [component: build] [notebook] Bokeh / jupyterlab integration
    - #6819 [component: tests] Switch examples tests to use python 3.5 or 3.6
    - #6832 Simplify data frame length calculation
    - #6837 Remove mpl and bokeh.charts
    - #6847 Check nodejs version number and update documentation
    - #6851 Plots which contain glyph's with infinite bounds fail to set initial ranges when match_aspect is set to true
    - #6869 [component: bokehjs] Remove leftover code after pr #6752
    - #6878 [component: bokehjs] [component: server] Bryanv/document cleanup
    - #6888 Add trace log level on python side
    - #6902 Add network-related sample data source

2017-08-28   0.12.7:
--------------------
  * bugfixes:
    - #515 Line plots render selections wierd
    - #516 Labels on axis do not like ":" character ;-)
    - #517 Better control over data/screen aspect ratios needed for large circles
    - #2240 Tick format language
    - #2527 [widgets] Rendered slider* plots have missing bk-* classes
    - #3466 [geo] Consider dynamic_map.py for deprecation
    - #3935 [component: server] [component: tests] How to get the server examples testable again
    - #4295 [component: bokehjs] Investigate disabling user-select
    - #4337 Plot blank if categorical label too long
    - #4503 [component: bokehjs] Date picker widget is unstyled
    - #4507 [widgets] Problem rendering un-wrapped sliders
    - #4599 [component: bokehjs] [layout] Wrapping output in center tag causes toolbar misalignment
    - #4880 Error plotting dates before 1970 (on windows?)
    - #4972 [layout] Plot collapses on adding multiple labels above/below the plot if title='none' not specified in plot()
    - #6121 [component: bokehjs] [widgets] Autocomplete input appearance differs between notebook and html file output
    - #6185 [component: server] Unable to interactively update renderer (i.e. circle, triangle, etc.) size using bokeh server
    - #6279 [component: docs] Documentation link not working right
    - #6308 [component: bokehjs] [widgets] Sliders :: customjs can not dynamically change title
    - #6450 [component: bokehjs] [layout] Canvas outline does not cover top of canvas
    - #6464 [component: build] Examples upload failed on full release build
    - #6474 [layout] New panels to a tabs widget does appear
    - #6478 [component: bokehjs] [widgets] Editable data tables not modifying python source.data - bokeh server 0.12.6
    - #6486 [component: build] Revert conda build to --no-test
    - #6501 [component: bokehjs] [regression] [widgets] Multiselect selection highlight no longer present when programmatically selected
    - #6507 [component: docs] User guide docs clerical error
    - #6509 Bokeh png command doesn't maximize window to capture entire output
    - #6514 New phantomjs sessions spawned inside bokeh.io._get_svgs despite driver arg
    - #6525 [component: tests] Py.test bokeh/tests/test_io.py doesn't kill phantomjs precesses
    - #6535 [component: tests] [regression] Py.test reports for integration tests are broken
    - #6549 [typescript] Upgrading to typescript=2.4.1 breaks gulp build task
    - #6571 [component: build] Export google_api_key in test:docs
    - #6576 [API: plotting] [component: bokehjs] [regression] Bokehjs' plotting api broken after pr #6260
    - #6578 [component: tests] [regression] No link to integration tests' report after pr #6542
    - #6592 [regression] [webgl] Save tool not functioning for webgl backend figures 0.12.6 regression
    - #6593 [component: bokehjs] Vbars with negative y/height do not work with hover
    - #6606 [component: docs] "taptool" is incorrectly called "tapselecttool" in the reference documentation
    - #6616 [component: bokehjs] [widgets] Pre-selection on rows in a bokeh datatable fails to display such selection
    - #6620 [component: build] Scipts/deps.py only works in the root environment.
    - #6628 [component: bokehjs] [component: server] [regression] Filterable cds broke cds streaming
    - #6642 [component: examples] [regression] [widgets] Export_csv example under 0.12.7dev11 doesn't resize table
    - #6653 Typeerror: 'unicode' does not have the buffer interface
    - #6679 [component: bokehjs] [component: build] [notebook] [regression] Bokehjs fails to load at all in notebooks after 0.12.7dev12
    - #6725 Bug: linked selection example doesn't work
    - #6730 [component: bokehjs] Setting range_padding to 0 can lead to an empty plot
    - #6731 Setting visible=false doesn't work with glyph functions
    - #6736 [component: bokehjs] Attaching ajaxdatasource to multiple glyphs leads to multiple ajax requests
    - #6739 [component: docs] Plots don't render in dev docs due to missing resources
    - #6740 Graphrenderer doesn't correctly handle single node graphs
    - #6755 [component: bokehjs] Colormapper special colors do not support alpha
    - #6757 [component: examples] Examples/app/spectrogram bug
    - #6786 [component: bokehjs] Label using screen units bound to frame is positioned relative to canvas
    - #6808 [component: bokehjs] [notebook] [regression] Nbconverted static notebooks fail to render
    - #6809 [component: bokehjs] [notebook] [regression] Inline, minified resources do not work in classic notebooks
    - #6829 [component: bokehjs] [regression] Degraded hovertool performance in 0.12.7rc4
  * features:
    - #187 Support graphs/trees/networks
    - #474 Easily control aspect ratio
    - #4070 Plotting with subsets (row-wise) of columndatasources (like filtered data)
    - #4538 [starter] Allow layout function to accept arbitrarily nested lists
    - #5992 Pass http request arguments to autoload_server and pull_session
    - #6375 [component: build] Developer docker tools
    - #6492 [component: bokehjs] [widgets] Expose textinput type as a property of widget. (for password typing)
    - #6598 [component: server] [notebook] Server url hard coded as localhost. with possible fix
    - #6601 [component: bokehjs] Add major_label_overrides to colorbar
    - #6621 [component: server] Add metadata support to bokeh server
    - #6667 Creating a columndatasource with a dataframe makes it impossible to use streaming
    - #6709 [component: bokehjs] Increase the number of zoom levels available to bokeh tile sources
    - #6788 [notebook] Make notebook display extendible by external libraries
  * tasks:
    - #2452 [component: examples] [widgets] Add examples with widgets using plotting interface
    - #3245 [component: docs] List methods at top of documentation for figure class
    - #3517 Hovertool fails for rects with only negative heights
    - #3917 [component: docs] [component: examples] (re)move `tests/compat`, `tests/glyphs`, `tests/notebook`
    - #4196 Remove the resize tool?!
    - #4752 [component: docs] 0.12: missing `toolbar_sticky` documentation on migration guide
    - #4859 [component: docs] Bokeh plot in jupyter slides not rendered corretly
    - #5431 [component: server] [enh] bokeh server to show url
    - #5502 [component: bokehjs] [widgets] Consider nouislider to replace all our slider widgets
    - #5506 [component: bokehjs] [widgets] Fix datepicker widget
    - #5596 [widgets] Fix/drop autocompleteinput
    - #5628 [component: examples] Add synthetic data mode to spectrogram
    - #6283 [component: build] [component: tests] Implement travisci stages to improve ci builds
    - #6291 Add "png" bokeh command
    - #6332 [component: bokehjs] [component: build] Remove css 'bk-' prefixing
    - #6369 Add height/width kwargs to bokeh.io.export to support resizing the exported png
    - #6377 [component: docs] Docs suggest `text_align` property works on figure titles but it doesn't
    - #6395 [component: bokehjs] [component: build] Investigate errors with ts-node 4.0.5
    - #6439 [component: server] Server(..., io_loop=io_loop, num_procs=0) --> runtimeerror
    - #6441 [component: tests] Enable exclusion of selenium tests for static image export
    - #6453 [component: examples] [starter] Numpy runtime warning in missing data example
    - #6455 [API: models] Drop tool.plot property
    - #6467 [component: build] Start building new conda no-arch packages for bokeh channel
    - #6480 Bokeh.util.serialization.py  convert_datetime_type breaks when passed timezone aware datetime
    - #6487 Remove all 0.12.4 deprecations
    - #6496 [component: docs] Reference docs are missing bokeh.models.scales automodule
    - #6497 [component: build] Update linux dist on travisci
    - #6512 Bokeh 0.12.6 incompatible with python 2.7.9?
    - #6521 [component: bokehjs] [component: server] Deprecate toolevents
    - #6529 [component: build] Only run js tests on py3 builds for now
    - #6530 [component: build] Split bokeh-widgets into bokeh-widgets and bokeh-tables
    - #6532 [component: bokehjs] [component: build] Remove bokehjs/src/vendor and all associated logic
    - #6543 Remove requests as runtime dependency?
    - #6546 [component: tests] Set initial date in date picker in models/file/widgets
    - #6550 [component: docs] Image for jitter example on gallery does no reflect example
    - #6557 [component: bokehjs] [component: build] Simplify bokehjs' build
    - #6563 [component: build] Fix up stages install order issues
    - #6568 [component: build] Hotfix for travisci log truncation
    - #6577 Columndatasource.stream() setter argument is not documented
    - #6581 Deprecate openurl?
    - #6584 [component: bokehjs] [component: build] Add a sample configuration for bundling with webpack
    - #6596 [component: docs] Add typescript version of extensions_putting_together.py
    - #6619 [component: examples] Examples/howto/server_embed uses sample data from web that no longer works
    - #6627 [component: docs] Add additional instructions to /docs/dev_guide/setup.html
    - #6629 [component: docs] Reference documentation missing bokeh.application and bokeh.command
    - #6634 [component: examples] Add example of custom tooltip to example library
    - #6651 [component: docs] Documentation for `crosshairtool` not updated
    - #6658 Task: add polyselecttool callback attr
    - #6684 [component: docs] Following dev documentation fails for a clean conda env
    - #6687 [component: docs] Bug in "running a bokeh server" page
    - #6700 [component: bokehjs] [component: build] [notebook] Bokeh / jupyterlab integration
    - #6715 Remove deprecated functions
    - #6717 [component: docs] Update docstring to reflect changes released in 0.12.0
    - #6721 [component: bokehjs] [typescript] Drop tsx templates
    - #6747 Task: expose webdriver as kwarg to export_png and export_svgs
    - #6750 [component: docs] 0.12.7 docs/examples
    - #6762 [component: server] [component: tests] Random data in server examples causes image diff to fail
    - #6791 Task: refactor jupyter notebook integration to use custom mimetypes
    - #6796 [component: examples] Add examples from pycon.pl tutorial
    - #6800 [API: models] [widgets] Automatic configuration of slider.format
    - #6810 Call load_notebook via notebook hook
    - #6823 [component: bokehjs] Improve styling of slider widget

2017-06-13   0.12.6:
--------------------
  * bugfixes:
    - #2136 Selections only work on the last of two series in one plot
    - #2680 Non-unit specs accept still allow `units` field
    - #3386 `property.__delete__` does not send a change notification
    - #3564 [component: bokehjs] [widgets] Getting values of selected rows from a datatable after reordering with sort
    - #3838 Push_notebook doesn't seem to work display updated table content
    - #4294 [notebook] Replace table source
    - #4433 [layout] Gallery example issues
    - #4657 [regression] Adding an unwrapped widget to document, may not render properly
    - #4764 [component: server] [layout] Issue with interactions between widgets and plots using bokeh server
    - #4810 [component: server] [layout] Trouble swapping out layout contents when using server
    - #4829 [layout] Tabs only consisting of datatables not drawn correctly
    - #4872 [component: server] Arrows not updating from streaming data source
    - #5044 Shift selection in linked brushing plots
    - #5131 [layout] [widgets] Unexpected initial layout with datatable and layout()
    - #5198 Hovertool line_policy 'nearest' 'next' not working
    - #5207 [widgets] Need to resize window before datatable row labels show up
    - #5246 [component: tests] [regression] Py.test prints garbage when there is a syntax error in *.py files
    - #5499 [component: bokehjs] Datetimes on plot are always treated as local time and shifted to utc
    - #5518 [layout] Add new child to existing column
    - #5634 [component: docs] Fix documentation of 'bokeh html foo.py'
    - #5811 [component: bokehjs] Vbar width not updating correctly when too many things updated through `push_notebook`
    - #5856 [component: bokehjs] [layout] Plot becomes unresponsive when button widget is appended to layout
    - #5907 Hover inspection does not work for all glyphs
    - #5914 [component: bokehjs] Unable to right align tick labels
    - #5967 [layout] Unexpected behavior when deleting from layout.children
    - #6005 [component: bokehjs] Box select rendered incorrectly on bokehjs linked example
    - #6035 Na values correctly skipped in linear scale but not in log scale
    - #6047 [component: docs] User_guide/embed.rst still references collections
    - #6080 [component: server] Prefix bug on "active bokeh applications" page
    - #6085 [component: bokehjs] Hover tooltips update impossible
    - #6091 [layout] Sizing_mode breaks gmap alignment
    - #6095 `imageurl.{w,h}` use data units by default
    - #6104 [component: build] Twine upload in build/upload release script incorrect
    - #6105 [component: build] Setup.py auto-generates a bad empty string classifier
    - #6108 [component: bokehjs] [component: tests] Error using datarange1d with auto start/end and datetimeaxis
    - #6111 [component: docs] Fix typo in selection documentation
    - #6115 [component: bokehjs] [widgets] Descending order with tablecolumn still ascending
    - #6120 [component: bokehjs] Hover responds to hidden data when legend.click_policy = 'hide'
    - #6123 [component: bokehjs] [regression] [widgets] Rangeslider bug
    - #6124 [component: bokehjs] Update core/dom.ts to work with upcoming typescript 2.3.0
    - #6127 [component: bokehjs] [regression] Issue upgrading from bokeh 0.12.4 to 0.12.5 with ie 11
    - #6130 [component: bokehjs] Multiline hit_test fails if line_width property utilized
    - #6142 [component: bokehjs] [regression] Regression in legend positioning
    - #6152 [component: bokehjs] [component: server] Bokeh server is incompatible with tornado=4.5
    - #6156 [component: build] [component: docs] Optimized python execution fails due to missing __doc__ instantiation
    - #6199 [component: server] Client.coffee sets binary type incorrectly
    - #6205 [component: tests] Typescript 2.3.0 breaks customjs tests
    - #6207 [component: bokehjs] [regression] [widgets] Htmltemplateformatter still uses underscore
    - #6208 [component: bokehjs] [regression] Possible to use gesture tools after disabling in toolbar
    - #6210 [component: bokehjs] [regression] Bokehjs doesn't work in notebook
    - #6212 [regression] Issue with test build 0.12.6dev3 on windows 7 with ie11
    - #6213 [component: bokehjs] [layout] [regression] Appending layout regression
    - #6226 [component: bokehjs] [component: build] Update coffee-script's version to 0.12.5+
    - #6238 [component: bokehjs] Mousewheel event: delta=none at all times
    - #6244 [component: build] Fails to build in windows 7
    - #6248 [API: plotting] [regression] Gmap not configuring mercator tick formatter
    - #6252 [component: examples] Embed multiple sample data mismatch length
    - #6261 [component: bokehjs] [layout] [regression] Adding new sub-layouts fails to set documemt
    - #6263 [regression] Plot validation doesn't happen for non-application layouts
    - #6301 Yahoo ichart api is failing, should use stock data from bokeh.sampledata.stocks
    - #6311 [regression] Spectrogram performance regression
    - #6316 Bug in screendistancespec serialization
    - #6319 [component: server] Bokeh server does not close http sockets
    - #6328 [component: bokehjs] [notebook] Gmap in notebook unreliable again
    - #6343 [component: examples] Scale/range incompatibility in examples/models/server/population.py
    - #6365 [component: bokehjs] [regression] Imagergba error during change events
    - #6366 Webgl isn't correctly deprecated bokeh 0.12.6dev7
    - #6388 [component: bokehjs] [regression] Selection tool regression
    - #6391 [component: build] Bokehjs' build uses gulp 3.x but @types/gulp 4.x
    - #6393 [regression] Modifying datasources broken
    - #6397 [component: server] More explicit match cases
    - #6398 [regression] [webgl] All webgl examples fail
    - #6400 [component: bokehjs] [regression] Line_select.py example broken
    - #6402 [widgets] Disabled button raises button click protocol event
    - #6411 [regression] Matches() is broken when pandas is not installed
    - #6416 [component: bokehjs] [regression] Hovertool broken with multi_line plots in 0.12.5
    - #6433 [component: bokehjs] [regression] Selecting a line from a multi-line when one is already selected causes an error
    - #6443 Svg images are incorrectly smoothed
    - #6449 [component: bokehjs] [notebook] Protect against exceptions when running inline code
  * features:
    - #538 Headless static (svg, png) image generation
    - #1239 Hover.tooltip convenience function for 'datetime' info
    - #1482 [starter] Datarange1d.rangepadding should allow "fixed" values
    - #1671 [starter] Allow users to specify explicit tick labels
    - #2352 Feature request: error bar plots
    - #5430 [component: docs] [enh] help widget tuned for end user
    - #5599 [component: bokehjs] Feature: hover tool inspector default
    - #5831 Numberspec coordinates should accept datetimes
    - #5885 [notebook] Support embed bokeh into apache zeppelin
    - #6044 "columns must be of the same length" warning does not show context
    - #6064 [component: bokehjs] Remove the hover menu item, and keep the hover function working
    - #6081 Feature request: add support for user-defined custom mappers
    - #6161 [component: bokehjs] Extend hit testing and hover support to segment
    - #6186 Themes not applied in `file_html`
    - #6285 [component: bokehjs] Extend patching to sub-items
    - #6286 [component: bokehjs] [widgets] Enabling/ disabling re-ordering of columns in datatable (freezing columns in place)
  * tasks:
    - #1833 Make get_version consistent between pip-intalled and conda-intalled devel builds
    - #2595 [component: docs] Update hovertool's documentation with field formatting, etc
    - #2984 [component: docs] Update sphinx version to fix documentation parsing issues for google style docstrings
    - #3016 [component: docs] Axis location must be set on creation (documentation fix)
    - #3656 [component: docs] Docs on widgets & interactions should link to the callbacks & events section
    - #4153 [component: bokehjs] Strict trigger() and listento()
    - #4449 [component: bokehjs] Ensure canvas state reset at start of drawing
    - #4948 [starter] Plot title ignores sizing and appears italicized if number is provided but no units are specified
    - #5007 [component: examples] [starter] Update unemployment examples
    - #5268 [component: bokehjs] Improve mappers' inheritance structure
    - #5694 [component: bokehjs] [component: tests] Report code coverage for bokehjs unit tests
    - #5819 [component: docs] Why i can't use operurl in widget callback (e.g. button callback)?
    - #5854 [component: bokehjs] Enable typescript's strictnullchecks
    - #5879 [component: examples] [component: tests] Make "bokeh finished rendering heuristic" work with non-plot examples
    - #5950 [component: docs] Expose all json representations in one place
    - #5951 [component: docs] Sphinxext.bokeh_plot broken
    - #6040 [component: docs] Callback.rst documentation incomplete
    - #6079 [component: docs] Clarify docs for hovertool
    - #6088 [component: examples] Fixing up examples/models/file/
    - #6102 [component: build] Have deploy script use github api token to avoid rate-limiting issues
    - #6113 [component: build] Pypi release includes `scripts`?
    - #6125 [component: bokehjs] Use nounusedlocals to discover unused imports, etc
    - #6129 [component: docs] Fix typo in issue_template.md
    - #6139 [component: bokehjs] [component: build] Use tslib to reduce size of bokehjs
    - #6145 Update obsolete output examples in bokeh.embed docs
    - #6158 [component: docs] For interactive legends, a note about `muted_color` would be helpful
    - #6164 Remove deprecations up to 0.12.3
    - #6184 [component: docs] Bokeh-api documentation improvement suggestions
    - #6188 [component: docs] Missing docstring description of ``state`` arg in bokeh.io.save
    - #6191 Fix deprecated datetime64 use for np_epoch
    - #6197 [component: bokehjs] Remove confusing aliases from layoutcanvas
    - #6228 [component: docs] Task: add missing `packaging` dependency to documentation requirements
    - #6242 [component: bokehjs] Task: remove computed properties implementation
    - #6245 Html title is not escaped
    - #6247 [component: bokehjs] [component: tests] Allow to write bokehjs unit tests in typescript
    - #6251 [component: bokehjs] [component: build] Allow to write bokehjs build files in typescript
    - #6254 Revert "deprecate x/y_mapper_type plot kwargs in place of first-class scale models"
    - #6267 [component: bokehjs] [component: tests] Merge tests/common into tests/core
    - #6269 [component: docs] Bokeh-github directive should not check urls by default
    - #6274 Futurewarning from pandas in bokehjsonencoder
    - #6287 [component: bokehjs] Add migration note for removal of document.resize()
    - #6295 [component: build] Update manifest.in
    - #6309 [component: server] Report tornado version on bokeh server startup
    - #6317 Deprecationwarnings on python 3.6
    - #6323 Add bkcharts shim and dependency
    - #6325 Downstream url for dynamic_map.py has ssl issue
    - #6326 [component: bokehjs] Passing renderer object in cb_data on hovertool customjs callback
    - #6331 [component: docs] Re-building docs - keyerror gallery exception
    - #6336 [component: bokehjs] Silence all change signals during initialization of models
    - #6338 [component: server] Feature request: configurable maximum upload size for tornado server
    - #6385 [component: bokehjs] Rely on request_render and fix up cs code
    - #6387 [component: docs] Fixed typos in setup doc
    - #6408 [component: docs] [component: examples] General 0.12.6 examples and docs tasks
    - #6419 [component: bokehjs] Restore events for "patch", "stream" and "do"
    - #6445 Bump required bkcharts version to 0.2

2017-04-05   0.12.5:
--------------------
  * bugfixes:
    - #2058 [component: bokehjs] Point hit testing for rects broken with screen space widths
    - #2288 [API: charts] Handle nan as input to bar()
    - #2822 [component: bokehjs] [geo] [starter] Gmapplot resets to (0, 0)
    - #2964 [component: bokehjs] Gmap alignment still off in 0.10
    - #3461 [component: server] Notebook + server not working
    - #3737 [regression] Gmapplot doesn't display anything in jupyter v.4
    - #4135 [component: bokehjs] [component: build] Don't expose external typings beyond bokeh namespace
    - #4539 [component: tests] Js tests reporting as failed even when they all passed
    - #4667 [component: bokehjs] Arrow and line_width
    - #4722 [notebook] Curdoc().theme = theme(json=yaml.load()) is not applied to charts when used in jupyter notebook
    - #4835 Multiple gmap plots whiting out  in notebook.
    - #4875 [component: bokehjs] Graph 'running off'
    - #4952 Theme doesn't apply when using components
    - #4979 [component: bokehjs] [component: server] Cannot add renderers within a callback
    - #5063 [component: tests] Bokehjs tests are failing on regular basis
    - #5152 [component: examples] Wrong data shown in gapminder example app / slider update failing
    - #5185 [layout] [starter] Reset tool fails when figure passed width instead of plot_width, etc.
    - #5336 [component: bokehjs] Strange behaviour of rect-glyph
    - #5353 [component: bokehjs] Extensions do not render when using bokeh.embed.components / bokeh.embed.file_html apis
    - #5416 [component: bokehjs] Multiple model sync in one callback can fail
    - #5488 [component: bokehjs] [starter] Hide annotations via callback
    - #5582 [component: server] --num-procs x and curdoc().session_context.request.arguments don't go well together
    - #5629 [component: server] [starter] Bokeh server reports "none" port when there is a port conflict.
    - #5644 Hasprops.apply_theme does not work on container values
    - #5670 [component: tests] Integration test reports are garbled
    - #5695 [component: docs] Typo in palettes docs
    - #5700 [component: bokehjs] Safe-tag-fix
    - #5706 [API: plotting] Bokeh 0.12.4: columndatasource does not work anymore with bokeh.plotting.image
    - #5720 [component: bokehjs] [component: tests] [regression] It's not possible to debug tests anymore since #5659
    - #5731 [component: tests] Tests broken again, this time due to `attributeerror`
    - #5732 [component: bokehjs] [widgets] Datatable not wired up to respond to streaming patching
    - #5742 [component: examples] Missing template in flask_embed.py and tornado_embed.py
    - #5778 [component: bokehjs] [regression] Autoload_static uses jquery .data()
    - #5789 [component: tests] Some integration tests fail when run with python 2.7
    - #5818 [component: build] Conda convert windows packages cause an error
    - #5848 [component: server] Memory leak in bokeh application
    - #5861 [component: bokehjs] [regression] Instance of figure class in bokehjs does not have reference to xaxis and yaxis
    - #5887 [component: docs] Transform docstring ends abruptly
    - #5888 [component: tests] [regression] Tests/examples/examples_report_plugin.py assumes clone has a remote named origin
    - #5891 [component: docs] Dev_guide/server.html has broken link to user_guide/server.html
    - #5900 [component: bokehjs] Attempt to make layout less fragile
    - #5905 Embed components performance
    - #5910 [component: build] All ci jobs failing due to some change affecting js compilation
    - #5916 Cannot import from .ts in a custom extension
    - #5921 [component: bokehjs] Fix for small bug in array intersection method
    - #5936 [component: bokehjs] [component: build] Bokehjs builds are broken because of dependency update
    - #5954 [component: bokehjs] [regression] Latex label example is broken in dev docs
    - #5956 [component: docs] [regression] Sphinxext.bokeh_plot missing linenos option implementation
    - #5959 [layout] [regression] Notebook comms "basic usage.ipynb" broken
    - #5963 [component: bokehjs] [regression] Js error on callback
    - #5977 Themes aren't applied to document when using `save`
    - #5986 [component: bokehjs] Bug with firefox hover tool coordinates
    - #6006 Toolbar tooltips are blank in examples/app/crossfilter
    - #6012 Importing bokeh.models creates zombie process
    - #6014 [component: build] [regression] Sdists prompting for bokehjs build will block pip installs
    - #6015 [component: bokehjs] Fixed bug in model._process_event method
    - #6018 [regression] Hover tool broken due to undefined roundingfunction
    - #6023 [component: server] Accept server connections from any origin
    - #6030 Boxzoomtool and boxselecttool doesn't clear the overlay when end event is off the plot frame
    - #6032 [component: bokehjs] [regression] Multiple selections via shift+select don't work
    - #6037 [notebook] [regression] Repeatedly displaying a plot degrades performance
    - #6045 [component: examples] Fixed hover on gapminder to display country
    - #6051 [component: bokehjs] [regression] Middle and bottom plot won't pan in y-dimension in custom/gears/gears.py demo on firefox
    - #6054 Issues with examples/plotting/server/animated.py
    - #6059 [component: server] Python event callback not called if no js event callback is registered
    - #6063 [component: docs] Fixed href
    - #6069 [component: docs] Fixed broken link to gapminder example
    - #6075 Resettool does not trigger change events on range1d
    - #6100 Correct cursor handling
  * features:
    - #2274 [component: bokehjs] Interactive legends
    - #2414 [starter] Use [non]selection_glyph="auto" to generate automatically, not none
    - #3715 Interactively hide or show lines after plot finished by clicking (without re-ploting like plot browser feature in matlab)
    - #3748 [component: bokehjs] [component: server] Trigger python event when `level_of_detail` mode finishes
    - #4241 [component: docs] [starter] Create a custom 404 page for bokeh docs
    - #4694 [component: bokehjs] [starter] Angle of glyphs in legend doesn't match glyphs in plot
    - #4927 [component: bokehjs] [starter] Event handler for width/height change of plot
    - #5015 [component: bokehjs] [starter] Customjstransform
    - #5278 [component: bokehjs] [component: server] Feature: emitting tool and ui events and attaching callbacks
    - #5442 [component: bokehjs] [starter] Add scale control to gmaps
    - #5592 [component: bokehjs] [geo] [starter] Gmapoptions are not dynamically applied
    - #5692 [component: server]   make it possible to use relative urls
    - #5973 Cds creation from dataframes should not use tolist()
    - #6043 Avoid isinstance checks in _visit_value_and_its_immediate_references
    - #6055 Use math library instead of numpy for nan/inf checks
  * tasks:
    - #2933 [component: bokehjs] Use only `div` and `canvas` in the generated html
    - #2940 Gmapplot coordinate axes
    - #3210 [component: bokehjs] [component: server] [widgets] Improvements to events
    - #3270 [API: charts] General charts examples improvements
    - #4111 [component: bokehjs] [component: tests] [regression] Check js logs in tests
    - #4285 [component: tests] Testing infrastructure bug/wish list
    - #4321 [component: bokehjs] [webgl] Put webgl functionality in separate bokeh-gl.js?
    - #4854 Code of conduct needed
    - #5060 Limit imports of client/server code to only when necessary
    - #5102 [component: bokehjs] Hovertool tooltip css is vunerable to being overridden by other page css
    - #5121 [component: bokehjs] [component: tests] Fix skipped js tests as result of getter/setter work
    - #5174 [component: bokehjs] [starter] Task: support updating computed transforms fields if dependencies change
    - #5209 [component: build] Stop building noarch conda packages
    - #5232 [component: tests] Intermittently failing examples tests - ggplot_density and graphs
    - #5238 [component: build] [component: docs] Help make examples more visible and easy to use
    - #5254 [component: bokehjs] [component: examples] [component: tests] Examples involving transforms using math.random() fail image diff
    - #5495 [component: docs] [component: server] Document non-script and programmatic use
    - #5541 [component: build] Label image diff results "expected" vs "actual"
    - #5613 [component: build] Windows setup.py build from source and versioneer
    - #5625 [component: bokehjs] Drop jquery from core bokehjs
    - #5638 [component: docs] Examples / charts/ readme states incorrect location for jupyter notebook example code
    - #5640 [component: examples] New app example: exploding pivot charts
    - #5647 [API: charts] Make the default hover tooltip work for donut charts
    - #5664 Remove old deprecations
    - #5666 [py3] Python 3.6 compatibility
    - #5677 Permission denied error when invoking show() from inside jupyter notebook
    - #5679 [component: build] Deploy script should automatically create and upload examples tarballs
    - #5691 [component: docs] Fix a typo in layoutdom
    - #5699 [component: examples] Not necessary loop in weather example?
    - #5704 Move abstract out of properties.py
    - #5705 [notebook] Print bokeh version in notebook "bokehjs loaded" message
    - #5710 [API: models] Deprecate bokeh.models.layouts hbox and vbox
    - #5712 [component: tests] Make sure examples' tests wait until bokeh finished rendering
    - #5718 [component: docs] Bad formatting in selected docstring
    - #5726 [component: bokehjs] Tooltip font color can be turned white by outside css because it's not specified by bokeh
    - #5729 [component: bokehjs] Use only what we need from underscore
    - #5748 [component: tests] Bokehjs/examples/electron/node_modules interfere with code quality tests
    - #5754 Revert "clean up and refactor build"
    - #5756 Revert "bryanv/refactor build"
    - #5757 [component: bokehjs] [component: build] Remove bokehjs/src/vendor/kiwi and use bokeh/kiwi
    - #5759 [component: docs] Typo in axes docs
    - #5770 [component: build] Bryanv/build fixups
    - #5771 [component: build] Break up conda operations to prevent timeout
    - #5772 [component: build] Need to call chdir for persistent effect
    - #5773 [component: build] Fix path for css upload
    - #5775 [component: build] Try token with repr, add some diagnostics
    - #5776 [component: build] Globs don't work in subprocesses w/o shell=true
    - #5777 [component: build] Correctly implement put
    - #5787 [component: build] Pin mpl < 2.0
    - #5788 [component: docs] Migration notes and exceptions about mpl compat.
    - #5793 Bokeh calls logging.basicconfig()
    - #5796 [component: docs] Bokeh 0.12.4 needs python 3.3 but this isn't documented anywhere
    - #5799 Revert "fix rect rendering with log axis"
    - #5810 [component: bokehjs] Don't rely on typedarray.map
    - #5822 Hovertool for last value of a line plot sticks on second last value (works fine with circles)
    - #5826 [API: models] Add bokeh.plotting.gmap to create gmapplot correctly and easily
    - #5827 [component: build] Restore pip installable dev builds
    - #5834 [component: docs] Need to use different sintaxis when using command "bokeh serve" in windows command line
    - #5835 [component: examples] County data: most independent cities in virginia have 'city' left out, which causes confusion when trying to match based on county name
    - #5858 [component: docs] Update install.rst documentation
    - #5871 [API: models] Columndatasource constructor slow
    - #5878 [component: examples] Move models' file examples and add migration notes
    - #5880 [component: tests] Flake8 everything
    - #5882 [component: bokehjs] [component: examples] [component: tests] Test bokehjs/examples and run them on travis ci
    - #5895 [component: docs] Give feedback on bokeh server docs
    - #5896 [component: docs] Typo corrections and clarifications for user_guide/server (#5895)
    - #5902 [component: docs] Typo (missing comma) in example code for labels
    - #5915 [component: examples] Including the color option in the embed simple example
    - #5928 [component: tests] Test_api_crawler assumes it is run in the source directory
    - #5930 [component: bokehjs] Align bokehjs' imports with custom models
    - #5934 [component: bokehjs] Enable typescripts' noimplicitany
    - #5946 [component: build] [component: tests] Disable saucelabs tests for now
    - #5947 [component: build] [component: tests] Re-enable saucelabs tests
    - #5965 [component: bokehjs] Legend should have pointer cursor only when `click_policy != "none"`
    - #5969 Tweak defaults for interactive legend inactive labels
    - #5989 Remove deprecated output_server
    - #5998 [component: build] Update docs upload to work now that host site is behind cloudflare
    - #6010 Revert "deprecate mpl compat"
    - #6016 [component: examples] Sprint prints nan for seleted names set to none
    - #6024 [component: bokehjs] Use `throw new error(...)` instead of `throw error(...)`
    - #6036 [component: examples] Updating embed examples
    - #6039 [component: examples] When embedding with autoload into a page with a different public url need relative_urls=false
    - #6048 [component: docs] Leveraging other libraries should include datashader
    - #6058 [component: examples] Added a tiler with a valid url for second plot in plotting/file/airport_map
    - #6066 Change default for
    - #6071 [component: examples] Update element names and symbols in elements.csv

2017-01-09   0.12.4:
--------------------
  * bugfixes:
    - #525 Columndatasource.prototype.get_length gives arbitrary results
    - #2064 Tooltip not working when inverting an axis by passing a `y_range` argument to the figure
    - #2162 Plotting none/nan values fails with log scale axis
    - #2365 [component: examples] Compat/seaborn/sinerror.py is broken
    - #2789 [component: docs] [starter] Range padding possibly discards the log axis properties
    - #3315 [API: charts] Overlapping bins in bokeh charts histogram example
    - #3834 Plot is empty when log scale is used
    - #3931 [component: docs] Update datetimetickformatter docstring with actual default formats from the js side
    - #4602 [API: charts] No x-axis labels on bar graphs with a single bar
    - #4680 [component: bokehjs] [widgets] Datatable header height not large enough to fit header text - in jupyter notebook
    - #4861 [component: bokehjs] Hovertool showing canvas coordinates not data coordinates
    - #5305 [component: docs] [component: examples] [component: server] Embed/animated fails with "did not find model"
    - #5306 [component: examples] [py2] Embed/embed_multiple fails with unicode error on py2
    - #5315 [component: examples] [component: server] [regression] Extension implementation load path problems in apps
    - #5318 Make figure accept title instance
    - #5322 [component: bokehjs] Long "bokeh error"s don't wrap
    - #5323 [component: bokehjs] Colormapper special colors are not respected for images
    - #5324 Colormapper high, low and nan_color do not accept rgb(a) tuples
    - #5330 Syntax error in util/deprecation.py
    - #5333 [component: bokehjs] Document._destructively_move() (in bokehjs) references undefined variable
    - #5337 [component: bokehjs] Charts and plots not rendering with user defined title text_font_size in em
    - #5346 Embedding a server plot will override the window title
    - #5370 [component: bokehjs] Linearinterpolator does not work correctly
    - #5377 [component: docs] Correct comment in dimension example plot
    - #5382 [component: bokehjs] Help tool icon doesn't have transparent background
    - #5389 Creating a line plot with `x_axis_type='log'` fails when `x_max < 1`
    - #5392 [component: bokehjs] [regression] Tools cause hard crash on safari after import/export pr
    - #5398 Datatable css conflict with bootstrap css
    - #5404 Functickformatter.from_py_func() example valueerror
    - #5413 [component: bokehjs] Can't use categorical axis with figure using rects
    - #5453 [py2] Tabe completion on bokeh.palettes doesn't work in python 2
    - #5467 [component: docs] Docstring not reflecting correct function signature
    - #5479 [layout] Merged toolbar is not created properly when row/column layouts added to gridplot
    - #5490 Some named palettes raise valueerror
    - #5522 [component: docs] Bokeh doc website not rendered correctly in ie 11 on win 7
    - #5524 [component: server] [regression] --num-procs broken
    - #5526 [component: bokehjs] Some versions of ie 11 do not support unit8clampedarray
    - #5546 [component: bokehjs] Js column length check logic is backward
    - #5549 [component: bokehjs] Correctly handle data values <= 0 on a log scale
    - #5555 [component: bokehjs] [regression] Bokehjs' examples are broken after import/export pr
    - #5558 [notebook] [py2] [starter] Unicode `__javascript__` external resources breaks output notebook in python 2
    - #5570 [component: bokehjs] Output_notebook raises javascript error if hide_banner=true
    - #5576 [component: bokehjs] Initial range calculation for log plots can cause empty plots
    - #5585 [component: server] Responsive plots don't work with server because of plotdiv
    - #5590 [component: server] Python 2 incompatibility issue with execfile and bokeh server
    - #5591 [notebook] [regression] Custom models don't work in the notebook due to missing __file__
    - #5631 [component: build] [regression] Pin build job to py3.4
    - #5633 [component: build] [regression] Update .travis.yml
    - #5636 Patches incorrectly draws boundaries from geojsondatasource in latest development version on a bokeh server
    - #5645 Font-awesome custom example fails to run
    - #5655 [component: bokehjs] [regression] 0.12.3 resize tool uses plot_width for initializing plot_height
    - #5661 [component: bokehjs] Tool labels appears empty on hover
  * features:
    - #1448 Gridplot could allow 1d child sequence together with (n, m) tuple
    - #1996 Rangeslider needed (again)
    - #2016 [component: bokehjs] X_range = 'auto' with bokehjs
    - #2204 [component: bokehjs] [component: server] [notebook] Look into use of dataviews and arraybuffers for more efficient data send/recv
    - #2833 Using hovertool to display arbitrary html
    - #3817 Toolbar improvements: replace inspector dropdown
    - #5000 Warn on ragged length values in columndatasource
    - #5199 [API: models] Add support bokehjs writable and bokeh readonly properties
    - #5317 Add a colorblind and d3 palettes
    - #5329 Ability to remove tools from plot generated by mpl.to_bokeh
    - #5417 [component: bokehjs] [widgets] Extend textinput with `placeholder`
    - #5435 [component: bokehjs] [enh] add js callback for streaming data
    - #5446 [API: plotting] [component: docs] Improve glyph method function signatures
    - #5471 [component: bokehjs] [enh] add custom classes to elements
    - #5579 [component: bokehjs] [widgets] Adding size attribute to multiselect model
    - #5583 [component: server] [starter] Custom context arguments for the jinja template
  * tasks:
    - #3020 [component: docs] [component: tests] Stricter docs build testing
    - #4290 [component: bokehjs] Clean up toolbar's css
    - #4652 [widgets] Remove broken dialog
    - #4774 [component: docs] Docs: google maps down
    - #4778 [component: docs] Docs: add to reference landing
    - #4785 [component: tests] Clean-up use of saucelabs connect on travisci
    - #4877 [component: docs] Need to include imagesource to docs
    - #4918 Using a custom json encoder
    - #4920 The documentation for `bokeh.plotting.figure` does not describe how to set the axis labels
    - #4991 [component: docs] [starter] Palette option for image/image not documented
    - #5112 [component: docs] [component: examples] [starter] Add an example using categoricalcolormapper and legend
    - #5190 [component: docs] Migration code for 0.12.2 not runnable
    - #5292 Inconsistent legend location naming
    - #5320 [component: bokehjs] [component: build] Use es6 import/export syntax instead of require()
    - #5325 [component: build] Improvements to deploy script
    - #5326 [component: examples] Examples with deprecation warnings
    - #5335 [component: examples] Depreciated example
    - #5339 [component: bokehjs] [component: build] Remove src/vendor/font-awesome and use npm
    - #5360 Better deprecation path for extensions
    - #5362 [component: build] Remove old bokeh-server
    - #5372 [component: server] Remove develop mode stub
    - #5375 [component: tests] [notebook] Notebook image diff tests broken due to "missing kernel"
    - #5376 Change palette references for the brewer qualitative palettes to be slices
    - #5384 [component: docs] Small docs fixes
    - #5395 [component: build] Please consider adding classifiers to setup.py
    - #5400 [component: examples] Add imdb usage notice to movies app
    - #5403 [component: docs] Hbar and vbar need to be added to the user guide
    - #5408 [component: docs] [component: server] Server architecture in dev guide has several out of date links
    - #5411 [component: docs] Document x_axis_location parameter to figure
    - #5423 [component: bokehjs] Prefer const over let in *.ts
    - #5445 [component: server] If main.py is run by bokeh serve, warn about running with directory name instead
    - #5450 [component: bokehjs] Add support for *.tsx source files
    - #5455 [component: tests] Outside pr docs test fails due to missing google api key
    - #5461 [component: docs] Add svg logo
    - #5492 [component: server] Support --port 0 for random port
    - #5493 [component: server] Avoid calling sys.exit in server code
    - #5494 [component: server] Bokehtornado.stop should not stop the ioloop
    - #5507 [component: bokehjs] Replace underscore's functions with native methods were possible
    - #5513 [component: bokehjs] Consider externalizing font-awesome's icons (or removing altogether)
    - #5514 [component: bokehjs] Further slim down boostrap
    - #5517 [component: docs] Small fixups to make sphinx 1.5 work
    - #5532 [component: bokehjs] Deprecate bokeh.$  and bokeh._
    - #5536 [component: bokehjs] Replace `@$(...)` with `@$el.find(...)`
    - #5553 [component: tests] Test custom models' examples
    - #5557 [component: build] [component: docs] [starter] Use python3 version of fabric
    - #5560 Get selenium testing working locally
    - #5562 Correctly deprecating imagergba cols and rows properties
    - #5567 [component: build] Explicitly kill stray processes on travis
    - #5568 [component: bokehjs] [component: build] Upgrade to jsdom 9.x
    - #5578 [API: plotting] [starter] Auto-conversion to columndatasource
    - #5587 [component: docs] Docstring typo
    - #5595 [component: docs] [component: server] Getting bokeh to work behind apache
    - #5602 [component: docs] Document dataspecproperty
    - #5607 [API: charts] Add vbar and hbar glyphs to charts
    - #5609 Investigate removing autoadd, autosave, autopush
    - #5619 [component: docs] Improve palettes docs and docs automation
    - #5626 [component: docs] Split up properties.py
    - #5627 [component: docs] Split up reference docs for bokeh.core
    - #5649 Add nodejs and npmjs version numbers to `bokeh info`

2016-10-07   0.12.3:
--------------------
  * bugfixes:
    - #2415 Trying to render the same plot twice is failing
    - #4347 [API: charts] Hover in charts not displaying data
    - #4616 Cannot edit cells in datatable
    - #4897 [component: docs] Subsections of user guide/adding interactions are rendered twice when selected in site guide
    - #4926 [regression] Autoload_static seems to be broken in version 0.12
    - #5029 Importing us county data fails on 3.5
    - #5107 [component: docs] Bokeh.pydata.org warns that searching 0.12.1 is old but latest isn't pointing to 0.12.2 yet
    - #5113 [component: bokehjs] Vbar / hbar legend missing glyphs
    - #5118 Gmapplot error attributeerror("'basicproperty' object has no attribute 'from_json'",)
    - #5119 Non-server bokeh requires tornado
    - #5123 Vbar hover tooltip not working in master
    - #5125 [component: bokehjs] [component: build] Bokeh npm install
    - #5130 [component: docs] Correct typo in the notebook docs
    - #5132 [component: build] Deploy.sh version update fails when last version is a full release
    - #5134 [component: bokehjs] [regression] Fix bad merge
    - #5156 Session.show() does not take into account browser
    - #5170 Viridis6 appears to be reversed
    - #5188 [component: bokehjs] Glyphview should not extend rendererview
    - #5202 [API: plotting] [regression] Figure legend not merging glyphs on the same data
    - #5218 [API: plotting] [component: bokehjs] [regression] Bokehjs plotting api is broken after pr #5017
    - #5223 [component: docs] Span annotation rejects `x` or `y` for `dimension` argument
    - #5234 [API: models] Plot not shown if datetimetickformatter partially defined
    - #5235 Wheel zoom is centers on center-of-plot, not mouse
    - #5239 [component: docs] Bokeh.models.transforms not in reference guide
    - #5248 [component: bokehjs] [regression] Add a polyfill for math.log1p() that's not supported by ie
    - #5260 [component: bokehjs] [memory] [regression] Plot updates cause heap to grow massively
    - #5271 [component: docs] Docserver.py input causes a syntaxerror
    - #5288 [component: docs] Typo in the legend location docs, and why "right_center" instead of "center_right"?
    - #5291 [component: docs] Docserver.py fix
    - #5294 [component: bokehjs] [layout] [regression] Responsive layouts broken in master
    - #5302 [component: examples] [component: server] [py2] Bokeh serve --show app/gapminder doesn't work
    - #5304 [component: examples] [component: server] [regression] App/surface3d doesn't work because custom model path is wrongly resolved
  * features:
    - #647 Support latex labels
    - #820 Split bokehjs in multiple plugins
    - #916 [starter] Add zoom button that allows zoom by steps
    - #1589 Bokehjs and node.js integration
    - #2381 Plainer default tooltip styling
    - #2590 [component: bokehjs] [webgl] Ongoing webgl related dev
    - #3856 [component: bokehjs] Populate legend with rows of data
    - #4621 Add `args` parameter to `functickformatter` similiar to `customjs`
    - #4886 Allow user defined models to inherit from user defined models
    - #5011 [component: bokehjs] [starter] Colormapping - color values out of high/low
    - #5013 Discrete/categorical colormapper and colorbar
    - #5153 [API: models] Implement _repr_pretty_ on hasprops and model
    - #5164 [API: models] Add support for _repr_html_ to hasprops and model
    - #5175 [component: bokehjs] [widgets] Slider with no title (feature request)
    - #5204 [component: bokehjs] Feature: support passing suggested width/height to document.resize method
    - #5242 Import_optional isn't robust to all import failures
    - #5255 [API: charts] Boxplot: outlier_line_color missing in default_attributes of boxplotbuilder
    - #5279 [API: models] Extensions cannot use own `.eco` templates as compiler won't compile them
  * tasks:
    - #2056 [starter] Deprecate glyph functions accepting datasource and sequence literals simultanously
    - #4526 [API: models] Remove "legend" prefix in some of legend's properties
    - #4879 Remove gear glyph from bokehjs to shrink resource size
    - #5076 [component: tests] [starter] Remove yield tests
    - #5083 [API: plotting] [component: docs] [starter] Add example using hbar/vbar to make bar charts
    - #5106 [component: bokehjs] Replace mget/mset/get/set with getters and setters
    - #5110 Revert "add categorical color mapper"
    - #5116 [component: bokehjs] Make hasprops.id a first class citizen
    - #5124 [component: bokehjs] Replace "else if" with switch statement
    - #5148 [component: examples] Imdb typo in movies app example readme
    - #5159 [component: build] Py.test should use phantomjs from bokehjs/node_modules/.bin by default
    - #5160 [component: bokehjs] Deprecate backbone.model.{get,set}()
    - #5165 [component: bokehjs] Bring some structure to our *.less sources
    - #5167 [component: bokehjs] Replace obj.unset('prop_name') with obj.prop_name = null
    - #5168 [component: build] Revert "pin conda-build version to 1.21.14"
    - #5171 [component: bokehjs] Replacing jsnlog
    - #5180 Deprecation warning with matplotlib-2.0.0.b4 and bokeh 0.12.2
    - #5182 [component: bokehjs] Move js palettes to bokeh-api.js
    - #5211 [component: bokehjs] [component: build] Upgrade timezone dependency and remove timezone from vendor
    - #5216 [component: bokehjs] [component: build] Upgrade to typescript 2.0
    - #5236 Unify and simplify deprecation of things
    - #5250 Change 0.12.4 deprecations to 0.12.3 due to delayed release
    - #5251 Change indentation to 2 spaces in *(.d).ts files to match other bokehjs sources
    - #5258 [component: docs] Double ended sliders extension example
    - #5262 [component: docs] Dev_guide/notes.rst wasn't updated in a year or more
    - #5263 [component: bokehjs] Move common/* to core/* and merge util/ with core/util/
    - #5264 [component: bokehjs] Split off backbone.events and don't depend on backbone.model if not necessary
    - #5277 [component: tests] With --rerun, bokehjs test harness needs to reset directory
    - #5284 Missing ts api for logcolormapper and categoricalcolormapper
    - #5299 [component: build] Use our own bokeh channel and avoid using conda-forge
    - #5312 [component: examples] Clustering app example does not set .data atomically
    - #5319 [component: docs] Issues release notes

2016-09-06   0.12.2:
--------------------
  * bugfixes:
    - #4612 Updating of image colormapper
    - #4855 No fill for background and border doesn't work
    - #4903 [component: build] [regression] Deploy.sh needs explicit list of files updated
    - #4936 [component: bokehjs] Lasso select is broken with non-circle markers
    - #4949 Specifying a selection doesn't work with patches when hit testing tools are present
    - #4950 Non-deterministic ordering of css resources for external resource loading
    - #4960 [component: examples] Examples/models/* aren't validated
    - #4970 [API: charts] Box plot example fails if no outliers exist in data
    - #4984 [component: bokehjs] H_units="screen" and w_units="screen" not respected in imageurl
    - #4987 [notebook] [regression] Problem with 'run all' in jupyter notebooks with bokeh 0.12.1
    - #4992 Colorbar places axis labels incorrectly in some circumstances
    - #4993 Colorbar - setting outline_line_alpha=0 on plot causes bar to not appear
    - #4996 Labelset's text color not updating properly on changing column data source
    - #4998 [component: bokehjs] Typo in arrow.coffee
    - #5006 [component: docs] Remove trailing whitespace
    - #5010 Colormapping - support nan's and data lower than low
    - #5035 [component: bokehjs] Auto-range on vbar and hbar doesn't work
    - #5040 Rendered notebooks not working on nbviewer
    - #5056 Colorbar not working in safari
    - #5074 [component: build] [component: server] Bokeh-0.12.1-py27_0 conda package from defaults missing server/views/app_index.html
    - #5081 [notebook] Plots do not load upon reopening a notebook if notebook handle created
    - #5084 Conda-build 2.0.0 doesn't build noarch packages
  * features:
    - #1441 Colorbar axis
    - #2270 [component: examples] Hide/show image layers
    - #3110 [component: bokehjs] Multi_line and selection callback
    - #4127 [component: bokehjs] Specifying external urls for resources
    - #4828 [component: server] Feature: make get arguments available for bokeh server apps
    - #4906 New feature: hide tooltip arrow
    - #4924 [component: bokehjs] Tooltips unavailable for `vbar` and `hbar` glyphs
    - #4961 [component: bokehjs] Don't end up with white screen under an unhandled exception
    - #4981 Support a colormapper as a data transform
    - #4990 Colorbar default direction should be reversed
  * tasks:
    - #3859 [component: docs] Update technical vision part of docs to reference new data shader repo
    - #3927 [component: tests] More gracefully handle running integration tests for external contributors
    - #4737 [component: examples] Spectrogram example improvements
    - #4824 [component: tests] Devdeps.py doesn't check for test dependencies
    - #4840 Implement quantifiedcode suggestions
    - #4869 [component: docs] [starter] User guide "responsive dimensions" needs updating
    - #4882 [component: bokehjs] Fixed version in version.coffee causes constant "version mismatch" warning
    - #4891 [component: build] Crawl and list all public functions, classes, methods
    - #4892 [component: build] Compare public api across versions
    - #4928 Checkbox example is not working as expected
    - #4938 [component: docs] "getting set up" section of documentation does not mention the base dependencies of bokeh
    - #4959 [component: tests] Imageurl example fails
    - #4976 [component: bokehjs] [component: build] Split off bokehjs js/ts api
    - #4989 Add colorbar public js api definition
    - #5001 [component: docs] Availability of cdn resources via https
    - #5008 Make default hover styling match other default styling
    - #5016 Remove unused reserve_val, reserve_color
    - #5042 [API: models] Disallow set type in `columndatasource.data`
    - #5061 Minor: box plot example indexing
    - #5077 [component: tests] Disable integration tests for external contributors
    - #5096 [component: docs] [notebook] Notebook comms and push_notebook docs are not up to date

2016-07-28   0.12.1:
--------------------
  * bugfixes:
    - #1277 Syncing two input widgets without infinite callback loop
    - #1618 Toolbar buttons do not work on updating server plots
    - #1716 Help tool: hard/impossible to click "learn more" link
    - #2289 Glyph/buttons_server.py dropdown red button looking bad (cut) in chrome
    - #2291 [component: bokehjs] Gyphs/widget_server.py column size
    - #2488 Building the conda recipe does not work on windows
    - #3041 [component: examples] [component: tests] Scikit-learn is needed by examples/plotting/file/clustering.py
    - #3188 [component: build] Installing dev build through pip, receiving standard release instead
    - #3509 Image glyph does not work with server
    - #3639 Bokeh occasionally not working with jupyter notebook
    - #3771 Bokehjs - get_model_by_name() - multiple name error
    - #4329 [component: tests] Test defaults does not report correct mismatched defaults
    - #4525 Shout louder on bokehjs build fails
    - #4560 Resize tool mostly broken
    - #4679 [component: bokehjs] [webgl] Draw legend after webgl glyphs
    - #4692 [component: docs] Docs version dropdown has extra 0.11.1
    - #4693 [regression] Incorrect rendering of embedded bokeh server app in 0.12
    - #4716 [API: models] Typo in bokeh.models.tools.taptool `behavior` attr default
    - #4727 [component: docs] First example in quickstart missing output_file
    - #4730 [component: tests] [regression] Restore real flake8 test failure
    - #4731 [component: docs] Fix documented name for resizetool
    - #4753 [component: examples] Typo in categorical example plot title
    - #4759 Reset button no longer appears on gridplots
    - #4760 [component: bokehjs] Rbush 2.0.1 bug on image render
    - #4766 [component: docs] Bokeh.client example in user guide has a bug
    - #4781 Remove unused import
    - #4783 [component: server] Using functools.partial in combination with add_next_tick_callback() throws exception in py2
    - #4788 [component: docs] Stocks example github link is broken in gallery.rst
    - #4791 [component: docs] Docstring of ``add_tools`` not correct
    - #4793 [component: bokehjs] [regression] Ellipse glyph missing rbush bounds format update
    - #4795 [component: bokehjs] [webgl] Webgl line thickness scales inappropriately with browser zoom level
    - #4800 [component: bokehjs] [widgets] Multiselect not rendering correctly if `options` is `list(dict)`
    - #4806 [component: docs] Update add_glyph docstring
    - #4814 Add npm install to win build; add nodejs to win build deps
    - #4816 [component: docs] Docs fail to build on windows
    - #4834 [component: bokehjs] [regression] Hoover example from tutorials doesn't work
    - #4839 Error when using hovertool and taptool with taptool in "inspect" behavior
    - #4842 [component: docs] Fixes typo: "go" -> "of"
    - #4853 [layout] Hovertool does not show tooltip of last glyph
    - #4862 Wheel zoom not working on chrome on touchscreen laptops, when using scroll wheel
    - #4878 [component: bokehjs] Inline from bokeh.resources has broken js?
    - #4884 Bokehjs fails to load for inline in notebook due to duplicated int32array
  * features:
    - #673 Trim bokehjs size and reduce code duplication
    - #1191 [starter] Deprecate `notebook=true`
    - #1944 Bokehjs should validate values on `@set(value)`
    - #2610 [component: examples] Improve les mis example
    - #3347 Larger color ranges (particularly gray scale)
    - #3423 [API: models] [component: bokehjs] [component: examples] Add vbar and hbar glyphs
    - #4758 Bokeh.palettes missing qualitative brewer color maps
    - #4775 [feature] add cartodb positron tile provider
    - #4808 [component: bokehjs] [component: server] Add .patch method for efficient partial data source updates
    - #4866 Add visible property to glyph renderer
  * tasks:
    - #2193 [component: server] Bokeh server deployment: generic linux server
    - #2683 [component: bokehjs] [webgl] Our webgl support does not work very well on safari
    - #2933 [component: bokehjs] Use only `div` and `canvas` in the generated html
    - #3006 [component: tests] Conda install test dependencies for osx
    - #3008 [starter] Warn about version mismatches
    - #3078 [component: docs] Move annotations section of user guide into it's own page
    - #3383 [API: charts] Remove io logic from charts
    - #3511 [component: tests] [starter] Get basic tests working on windows
    - #3528 [component: bokehjs] [component: build] [component: tests] [starter] Add a test to make sure that bokeh*.js don't increase significantly in size
    - #4533 Run test_code_quality with flake8 group
    - #4691 [component: bokehjs] Update rbush version
    - #4701 Improve pypy compatibility
    - #4743 [component: docs] Bokeh docs heatmap example broken
    - #4755 Feature request: make tool coalescence optional in gridplot
    - #4779 [component: bokehjs] Jqui 1.12 breaks everything, pin to old version
    - #4809 [component: docs] Split interaction.rst into three sections
    - #4831 Revert "moved the wheel speed zoom from internal to defined."
    - #4845 [component: docs] Remove 0.8 and 0.9 links in docs dropdown
    - #4846 [component: docs] Only update cds .data "all at once" in docs
    - #4849 [component: docs] [starter] Docs should have descriptive page titles
    - #4889 [component: build] Simplify changelog
    - #4895 [component: docs] Made a couple copy edits to user guide pages
    - #4896 [component: docs] 0.12.1 release notes

2016-06-27   0.12.0:
--------------------
  * bugfixes:
    - #1256 Vbox doesn't work properly under ie
    - #1445 Changing title on sliders example disables crosshair tool
    - #1642 Selection tools not working with scatter chart
    - #1710 [component: examples] App drop-downs under firefox are the wrong size
    - #1848 Tools not working on gallery - windows 7 + chrome 40.0.2214.111 m
    - #2006 Unable to stack multiple twin axis on same side
    - #2081 Title_text_align plot property behaves strangely
    - #2229 Broken reset tool after use of resize tool
    - #2277 Matplotlib to bokeh conversion discards category labels
    - #2284 Hbox not working properly with plots
    - #2297 [starter] It's possible to extend the lasso tool outside the bounds of a plot
    - #2344 Appvbox: width has no effect (firefox)
    - #2350 [widgets] Hbox/hplot not working in ipython notebook
    - #2504 [widgets] Datatables spills out on server rendering (on ff)
    - #2525 [component: bokehjs] Setting glyph color to none results in an array of nan's
    - #2534 Embed.component  log chart axis label messy
    - #2549 [component: docs] Dropdown button example partially hidden in user guide
    - #2622 [component: docs] List of color tuples broken?
    - #2699 Rendering error on line when super zoomed in
    - #2977 Stock_app errors and fixes
    - #2997 Touch problems on all but the simplest cases
    - #3004 Line tooltip appears when hovering off the line
    - #3073 [component: examples] Sliders demo uses unminified resources
    - #3120 Nan in data causes hover to break if formatter applied
    - #3130 Bokeh does not plot pandas boxplot correctly using mpl.to_bokeh()
    - #3134 When plotting pandas dataframe in ipython notebook, mpl.to_bokeh(), dates on axis are displayed as numbers
    - #3215 Bokeh + ipython widgets: push_notebook() error?
    - #3226 [component: bokehjs] Text_color does not respect `none`
    - #3252 Button or toggle.disabled=true does not gray out the button or toggle
    - #3303 Layout can allow plots to overlap
    - #3329 [component: docs] Docs suggest that add_tools() takes shorthand strings, but it doesn't
    - #3434 [component: bokehjs] [starter] Band fill color issue display
    - #3464 [component: bokehjs] Maps_cities.py data disappears after pan/zoom
    - #3546 [API: charts] Charts + bokeh server: scatter plot added twice
    - #3563 [component: bokehjs] Setting min_border does not work
    - #3576 Bokeh histogram attribute density doesn't work
    - #3581 [component: bokehjs] [component: build] Cannot find module _process error on bokehjs build
    - #3610 [component: examples] Embed examples and airports_map broken on win
    - #3611 [component: examples] Examples/plotting/file/image examples broken on win
    - #3612 [component: examples] Plotting/file/line_compare second combo ("line join") does not work on win
    - #3615 [component: examples] [component: server] Plotting/server/geojson broken on windows
    - #3616 [API: charts] [component: examples] Charts/timeseries (step) chart is broken on windows
    - #3620 Lots of warnings when using bokeh in notebook
    - #3659 [API: charts] Histogram bin size auto select
    - #3660 [API: charts] Histogram empty plot with negative values
    - #3661 [API: charts] Bar plot plotting one value
    - #3702 Handle slow callback functions (like querying a remote data source) when using x_range.on_change in bokeh server
    - #3774 Mpl shifting pandas boxplot
    - #3783 Reset should call the responsive resize
    - #3795 [webgl] Datetime datapoints to pile up with webgl enabled
    - #3800 [webgl] Bokeh 0.11: enables webgl causes inconsistent update of scatter points
    - #3830 [component: docs] Weather example readme references non-existent weather.py
    - #3849 [component: docs] Fix typo in docstring
    - #3850 [component: docs] Problem with formatting on docstring for `output_file`
    - #3871 [component: bokehjs] [widgets] Multiselect: on_change method does not work properly
    - #3875 [API: charts] Error with histogram
    - #3891 [component: docs] Hex rgba strings not supported in 0.11
    - #3893 [regression] Does components() in bokeh.embed work for widgets?
    - #3895 [component: bokehjs] [widgets] Button causing redirect/reload
    - #3899 Timeseries modifies a pd.dataframe inplace
    - #3915 [component: examples] Brendancol/cross filter fix
    - #3920 [component: docs] Fix typo in docs: toolbar_position -> toolbar_location
    - #3924 Fixed color mapper error
    - #3937 Issue while live adding new plots
    - #3943 Using vform method to generate layout can cause extra components to be in the document root
    - #3947 [component: docs] Contributing.md code issue
    - #3952 [component: docs] Function links not rendering
    - #3976 [component: docs] Fixed path to image
    - #3985 [component: bokehjs] Bokeh logo with gridplot
    - #3989 Sliders fail to render (they have no dimension)
    - #3992 [component: bokehjs] [notebook] Boxannotation does not update consistently
    - #3993 [component: bokehjs] Updating a span (line annotation) duplicates it
    - #3996 [component: bokehjs] Box select tool doesn't work when x or y range is reversed
    - #4001 [component: docs] Fix links in readme
    - #4003 [component: docs] Quickstart incorrectly states that default is inline - when it is cdn
    - #4012 [component: bokehjs] Jupyter notebook css is tied to the notebook structure
    - #4018 Fix up formatting of calendars example
    - #4027 Docserver.py is not windows compatible
    - #4034 [component: docs] Fix typo: supervisctl -> supervisorctl
    - #4035 [component: build] Npm install fails on windows
    - #4042 [API: plotting] Generalize the configuration of axes
    - #4044 Fix default bokeh dir on windows
    - #4059 Css in docs broken
    - #4069 [component: bokehjs] [regression] Line picking is broken because glyph.glyph_view is no more
    - #4075 When used with `stat=none`, `heatmap` modifies original dataframe
    - #4080 [component: bokehjs] Don't attach document multiple times when traversing the graph
    - #4086 [component: bokehjs] [widgets] Datatable `getformatter not a function` bug
    - #4090 [component: build] Build not succeeding because path problem looking for the noarch package
    - #4092 [component: docs] Unclear how to run bokeh command when exe not available
    - #4103 Update crossfilter for new typescript api spelling
    - #4104 Crossfilter example: type is not a function error
    - #4109 [component: bokehjs] [component: server] Fix function naming in embed.coffee
    - #4110 [component: bokehjs] [regression] Plot resizing is broken
    - #4131 [component: bokehjs] Change type of bokeh.index to map<view<component>>
    - #4139 Bokeh datatable renders dates one day off
    - #4155 [component: bokehjs] [regression] Fix bokehjs plotting api after making hasprops.set() strict
    - #4157 [component: bokehjs] [regression] Legend doesn't update its location after frame resize
    - #4170 [component: bokehjs] [regression] Bokehjs renders twice after selection
    - #4178 [component: build] Bokeh thinks site_packages is in conda root on windows
    - #4188 [component: bokehjs] Bokeh + flask causes race condition
    - #4190 [component: bokehjs] Toggle button reverses state
    - #4204 Bug report? datepicker widget errors on changing dates
    - #4219 [component: bokehjs] New strict js property updates broke datetimetickformatter
    - #4224 Extra_x_ranges should allow range not only range1d
    - #4246 Weird left toolbar in gridplots in dev build and master
    - #4248 [webgl] Line plot scaling issue when webgl is used
    - #4254 [notebook] [regression] Notebook rendering is broken
    - #4265 [regression] [webgl] Webgl broken because public props do not exist anymore on the glyph
    - #4275 [component: bokehjs] Remove problem styles for sass/autoprefixer support
    - #4278 Label doesn't accept angle property
    - #4313 Save button broken on master
    - #4318 [component: docs] Typo?
    - #4325 Bug --host '*' wildcard result in http "403: forbidden" error
    - #4345 [component: bokehjs] When using the browser zoom the plot content becomes blurry
    - #4350 Ugly border in gmapplot?
    - #4355 Problem enabling zoom on image_url object
    - #4356 [component: tests] Line hover broken in master
    - #4362 Allow unminified bokehjs to load in notebook
    - #4365 [component: examples] Simple_hdf5 example needs to use the full path to the data file
    - #4367 [webgl] Webgl issue on new layout with multiple plots - some plots are blank
    - #4379 Title.title_align='center' not working
    - #4385 Help tool is not de-duplicated in toolbarbox (gridplot toolbar)
    - #4390 Legend is too tall (and maybe too wide) if more than two items
    - #4401 Trigger event when bokeh finishes rendering
    - #4432 [component: bokehjs] Js property mismatches
    - #4435 Chord diagram only has one color when using python 2.7
    - #4439 Multiple renders ocurring
    - #4464 Setting title_text_font_size with title='' errors
    - #4488 [component: bokehjs] [regression] Plots are rerendered on resize even if responsive="fixed"
    - #4498 Dropdown type undefined
    - #4501 Gapminder css issue
    - #4506 Re-rendering widgets in a notebook fails miserably (when they're in a widgetbox)
    - #4513 Jitter import missing, affecting pr #4490
    - #4530 [component: docs] Link to css colors in docs is broken, link address changed
    - #4537 Scale_both isn't quite working right
    - #4541 [component: examples] Clustering app example needs updates for recent changes
    - #4543 Movies example has sliders under plot
    - #4554 Layouts got slightly broken during sizing_mode change
    - #4569 [notebook] [regression] Logo missing from notebook resource load
    - #4572 [component: bokehjs] [widgets] Changing a toggle button's type is broken
    - #4578 Gridplot toolbar broken
    - #4581 Gridplots broken except for fixed
    - #4583 Using gridplot now gives a warning
    - #4587 [component: bokehjs] [component: server] Title js models sending bck properties not on python side
    - #4589 [component: examples] [regression] Spectrogram example needs fixing up
    - #4601 Toggle button layout broken w/ new widgetbox
    - #4603 [component: examples] Ajax data source needs to specify columns explicitly
    - #4606 Toolbar alignment on complex layouts
    - #4611 [regression] Plots disappear after zooming in/out in some browsers
    - #4614 Reset tool does not trigger x/y_range callback events
    - #4622 [component: bokehjs] [regression] Lod downsampling is not working
    - #4633 Taptool on line glyph with webgl=true causes renderers to disappears
    - #4636 Textinput not obeying width parameter
    - #4639 Divide by zero error in logcolormapper
    - #4658 Google maps no longer working due to api update?
    - #4663 Dropdown callbacks broken
    - #4666 Call to reset breaks layouts
    - #4672 Charts heatmap uses deprecated attribute internally
  * features:
    - #149 Allow plot titles to be located on any edge of the plot (not just the top)
    - #219 Preview save tool should auto download-prompt
    - #572 Support for pan/zoom range limits
    - #713 Adding legends through the js interface
    - #844 [API: charts] Add chord chart
    - #1085 [starter] Orientation on titles
    - #2026 [component: server] Allow bokeh server scripts to take command-line arguments
    - #2583 [starter] Can't serialize timedelta column
    - #2715 [component: bokehjs] [widgets] Can't add callbacks to checkboxgroups
    - #2865 Off-canvas legends
    - #2992 [API: charts] Step chart should have 'index
    - #2995 Reset doesn't reset selections?
    - #3054 [starter] Toolbar improvements: active is programmable
    - #3217 [component: docs] Build documentation with canonical links to "latest"
    - #3346 Slider size from python code to css
    - #3493 [starter] Collections.deque should serlialize
    - #3515 Having a __conda_version__.py under bokeh causes version to be wrong
    - #3738 [component: bokehjs] [component: server] Add support for bokeh static command
    - #3822 Improved annotations and legends
    - #3825 [API: models] Computed transforms
    - #3829 Add stamen toner background tile provider
    - #3832 Support horizontal legend orientations
    - #3846 [component: bokehjs] Real properties for bokehjs
    - #3848 Oval with height=width does not produce a circle
    - #3881 Add support for geojson geometrycollection
    - #3957 [component: bokehjs] [widgets] Delayed update slider
    - #3962 Custom web templates with `bokeh serve`
    - #3994 [component: server] Add option to extend sys.path with app directory
    - #4008 Allow for the injection of raw html code
    - #4051 --host allowlist doesn't trust 127.0.0.1 by default
    - #4057 [API: charts] Request: reorderable legends with chart api
    - #4064 [component: bokehjs] [component: examples] Add stock example using ts api
    - #4065 [component: bokehjs] The box (zoom or select) tool should be configurable to respect aspect
    - #4077 Avoid copies in columndatasource.stream
    - #4082 Expose geometries to taptool callbacks
    - #4118 [component: examples] Add implicit filename support for save()
    - #4150 [component: server] App-specific static file serving for directory apps
    - #4164 Improving bokeh's layout
    - #4179 Small improvements to label
    - #4180 Set default width and height for markup widgets to none
    - #4184 [component: bokehjs] Expose {x,y}axis in ts plotting api
    - #4201 [component: bokehjs] Make reset tool configurable as to what is reset
    - #4205 [component: bokehjs] Add the computedtransforms to the dataspec system
    - #4206 [component: examples] Add example for customjs callback for exporting columndatasource to csv
    - #4261 There should be an actual click tool
    - #4307 New title api & implementation
    - #4311 [API: charts] [component: bokehjs] Create js/ts charts api
    - #4344 [API: charts] Timeseries not correclty represent x-axis when applied to dataframe with datetime index
    - #4363 Bokeh server w/ multiple processes
    - #4372 Logcolormapper?
    - #4373 Add callback support to lassoselecttool
    - #4380 Titles should align with the edge of the frame not the edge of the canvas
    - #4384 New layout api - bokeh.layouts - layout, row, column, gridplot
    - #4412 [component: server] [starter] Redirect from `/` to `/app_name`
    - #4425 Improve server index page
    - #4462 Adding a funcformatter for ticks based on pyscript
    - #4548 [component: bokehjs] Add viridis and other new color maps
  * tasks:
    - #861 Clean up top level directories
    - #1149 [component: build] Build_and_upload.sh needs improvements
    - #1268 [component: docs] Bokeh.plotting.image_url glyph is missing width and height parameters in the documentation
    - #1455 Move all base64 encoded images to *.less files
    - #1595 Streaming stock ticker demo
    - #2239 [component: docs] [starter] Docs for styling selection overlays
    - #2657 Bokehjs: imageurl glyphrenderer improvements
    - #2752 [component: tests] Selenium tests to do
    - #2759 [component: bokehjs] [starter] Resolve misleading property names in `bokeh.index[<item_id>].renderers` and `bokeh.index[<item_id>].model.renderers`
    - #2876 [component: examples] [starter] Example embed_multiple.py is using old static links
    - #2882 [starter] Allow local resources when building docs
    - #2888 Something in bokeh.util.testing.py breaks making the docs
    - #2897 Ci error on current master (404/410 error with ggplot example notebook)
    - #2922 [component: bokehjs] Use numbro.js instead of numeral.js for formatting numbers
    - #3014 [API: charts] Pandas sort deprecated in new charts, use sort_values instead
    - #3083 [starter] Remove logo_url from resources
    - #3084 [component: docs] Update docs to point to tagged release of bokeh examples
    - #3146 Document breaks with roots that are also in non-root layouts
    - #3232 [component: tests] Screenshot testing for selenium tests
    - #3390 Known pending issues/tasks for 0.11 release
    - #3514 [starter] Rename bokeh.client.connection
    - #3571 Missing bokeh entry point (otherwise bokeh.bat) for windows
    - #3575 [component: server] Bokeh server should display bokeh version on startup
    - #3582 [component: docs] [component: server] Embed docs out of date
    - #3586 [component: examples] [component: server] Crossfilter example refactor
    - #3651 Unifying bokeh and bokehjs project structure
    - #3675 Defining a js callback using python for python 2.x
    - #3730 Difference between public and internal session lifetime units
    - #3759 [component: docs] Quickstart edits
    - #3770 [component: server] Periodic callbacks continue after tabs are closed
    - #3784 Responsive is false by default, no need to set
    - #3797 [component: bokehjs] Containing all bokeh style to .bk-plot
    - #3826 Visual diff tests
    - #3827 Cross browser automated testing
    - #3844 [component: docs] Remove quickstart
    - #3864 [component: bokehjs] Clean bokehjs cruft
    - #3868 Remove leftover comment from when examples were disabled
    - #3869 Test with firefox on saucelabs
    - #3877 [API: models] Pyscript now also works on py27
    - #3889 [component: tests] Speed up examples tests by using pytest-xdist
    - #3908 [API: charts] Add xaxis, yaxis accessors to chart class
    - #3913 [component: bokehjs] Some canvas and layout improvements
    - #3927 [component: tests] More gracefully handle running integration tests for external contributors
    - #3936 [component: docs] Creating -> create
    - #3938 [component: bokehjs] Changed .bk-plot to .bk-root for style wrapper
    - #3945 Demo more prominant report location
    - #3948 [component: docs] Concepts file changes [ci disable examples]
    - #3949 [component: docs] Remove duplicate of seaborn from req'd pkgs [ci disable examples]
    - #3950 [component: docs] Fixes to 'plotting' [ci disable examples]
    - #3951 [component: docs] Add links to more external libraries
    - #3955 [component: build] Noarch conda package and entry points
    - #3963 Revert "changed .bk-plot to .bk-root for style wrapper"
    - #3968 [component: docs] Document usage of a reverse tunnel to an instance of a standalone server
    - #3970 Disable data_tables_server example
    - #3997 [component: docs] Issue #3656: added more documentation for how to use widgets in the user guide
    - #4029 [component: docs] Fix output_notebook(resources) default docstring
    - #4037 [API: plotting] [component: bokehjs] Implementation of typescript api
    - #4063 [component: tests] Pytest consistently erroring on logging
    - #4076 [component: bokehjs] [component: docs] In developer guide, it's not obvious that "following pages" are indexed in the sidebar on the left
    - #4078 [component: bokehjs] Remove support for backbone collections
    - #4085 [component: bokehjs] More typescript api
    - #4087 [component: build] Anaconda auth token got staled
    - #4099 [component: build] [component: tests] Fix phantomjs download failures
    - #4100 [component: docs] [starter] Add prominent banner to old versions of the docs
    - #4101 Head breaks apps that use widgets with type parameter
    - #4116 [component: examples] [component: server] Add a simple app showing usage with hdf5
    - #4119 [component: build] Try use setuptools in setup.py (so entry points get installed on windows)
    - #4122 [component: docs] [starter] Add new div widget example to user guide
    - #4124 [component: bokehjs] Remove obsolete css classes and bokehjs/src/templates
    - #4126 Release 0.12 planning
    - #4132 Hotfix - fix path to phantomjs executable
    - #4141 Declarative property management
    - #4149 [component: server] [starter] Log pid on server startup
    - #4159 [component: bokehjs] [component: examples] Add linked plotting example to bokehjs
    - #4168 [component: tests] Apply basic code quality rules to all source files
    - #4173 [component: docs] There is no make.bat serve to view locally build docs on windows
    - #4186 [component: docs] [starter] Need docs support for bokehjs widgets split
    - #4187 [component: docs] [starter] Document "bokeh sampledata" better
    - #4194 [component: tests] Disable pandas_dataframe test temporarily
    - #4195 [component: tests] Restore pandas_dataframe test
    - #4210 [component: bokehjs] [component: build] Built js and css not included in npm package
    - #4212 More ts api improvements
    - #4217 Add paragraph and pretext widgets to user guide
    - #4222 [component: examples] Remove or update accidentally committed template
    - #4230 [component: docs] Document how to run screenshot tests
    - #4234 [API: charts] [component: docs] Better docs for the chord chart
    - #4242 [component: docs] [component: server] Document use of bokeh server with apache
    - #4244 [component: examples] Add example with drawing networkx graphs
    - #4251 [component: tests] Jitter tests can fail
    - #4253 [component: docs] [component: tests] Add note to testing docs about installing bokeh
    - #4267 [component: docs] User guide adding annotations uses p.renderers.extend instead of p.add_layout
    - #4279 [component: tests] [webgl] Tests for webgl
    - #4281 It at all -> if at all
    - #4292 Add webgl support for more kinds of markers
    - #4293 [webgl] Webgl blurry on os x, not visible in safari
    - #4323 Move plot to plotcanvas
    - #4341 Refactor webgl into smaller chunks
    - #4358 Revert "make hidpi work for webgl"
    - #4360 Merges the hipdi work into the layout pr
    - #4381 Api issue: title_standoff, title_padding, title_offset
    - #4382 Is title padding working?
    - #4383 Is min_border working?
    - #4387 [component: docs] Layout documentation
    - #4396 Api - name the responsive modes
    - #4397 Update all examples to use new layouts
    - #4399 [API: models] Make toolbar right by default?
    - #4406 Confirm that toolbar works under streaming (ref #3334)
    - #4423 Changed docserver shutdown instruction
    - #4429 [component: examples] #4397 (partial) examples/models update layout
    - #4440 [component: docs] Update readme for greater user friendliness
    - #4446 [component: docs] Improve dev guide's documentation section
    - #4454 Doc: mentioning ``ulimit -n`` in dev guide
    - #4457 [component: docs] Explicitly document installing into the bokehjs directory
    - #4466 [component: docs] Remove deprecated api usage from docs examples
    - #4475 Remove dupe props in plotcanvas, cleanup
    - #4480 [component: build] Unnecessary ansi escapes are generated by setup on windows
    - #4482 Quiet boto log level
    - #4485 [component: docs] Update docs and docs build to be clear that only html output is supported
    - #4492 Tweaks to almar's resize pr
    - #4494 Remove un-used layout css
    - #4496 Undeprecate vbox and hbox
    - #4512 A few fixes to the typings
    - #4514 Split out responsive and sizing_mode as per discussion on #4484
    - #4515 [component: tests] Cannot run test_code_quality.py on windows
    - #4520 Resize tool should not be in defaults
    - #4529 Update docs
    - #4547 [component: docs] [starter] Readme.md under examples/plotting/notebook refers to ipython not jupyter
    - #4550 Warn when sticky toolbars might visually overlap other components
    - #4557 Improvements to layout functions
    - #4559 [component: examples] Ggplot api update
    - #4566 Pin ggplot version preceding uploading new versions to anaconda.org
    - #4584 Set gridplot default location to above
    - #4591 [component: examples] Add surface3d custom model example
    - #4594 Issue with pandas in examples/app/weather
    - #4609 Remove hack unneeded since #4607 introduced in #4312
    - #4620 Responsive no longer supported?
    - #4626 Mpl compat needs minor updates
    - #4629 Small styling tweaks
    - #4654 Examples tweaks
    - #4655 Skip 3 more flaky js tests
    - #4662 Examples cleanup
    - #4669 [component: docs] Arrowhead documentation
    - #4670 Clean up notebook examples
    - #4675 Undeprecate .from_df
    - #4684 Code quality
    - #4685 [component: examples] Bryanv/hotfix examples
    - #4687 [component: docs] Last docs 012

2016-06-27    0.12.0
--------------------
  * bugfixes:
    - #1256 Vbox doesn't work properly under ie
    - #1445 Changing title on sliders example disables crosshair tool
    - #1642 Selection tools not working with scatter chart
    - #1710 [component: examples] App drop-downs under firefox are the wrong size
    - #1848 Tools not working on gallery - windows 7 + chrome 40.0.2214.111 m
    - #2006 Unable to stack multiple twin axis on same side
    - #2081 Title_text_align plot property behaves strangely
    - #2229 Broken reset tool after use of resize tool
    - #2277 Matplotlib to bokeh conversion discards category labels
    - #2284 Hbox not working properly with plots
    - #2297 [starter] It's possible to extend the lasso tool outside the bounds of a plot
    - #2344 Appvbox: width has no effect (firefox)
    - #2350 [widgets] Hbox/hplot not working in ipython notebook
    - #2504 [widgets] Datatables spills out on server rendering (on ff)
    - #2525 [component: bokehjs] Setting glyph color to none results in an array of nan's
    - #2534 Embed.component  log chart axis label messy
    - #2549 [component: docs] Dropdown button example partially hidden in user guide
    - #2622 [component: docs] List of color tuples broken?
    - #2699 Rendering error on line when super zoomed in
    - #2977 Stock_app errors and fixes
    - #2997 Touch problems on all but the simplest cases
    - #3004 Line tooltip appears when hovering off the line
    - #3073 [component: examples] Sliders demo uses unminified resources
    - #3120 Nan in data causes hover to break if formatter applied
    - #3130 Bokeh does not plot pandas boxplot correctly using mpl.to_bokeh()
    - #3134 When plotting pandas dataframe in ipython notebook, mpl.to_bokeh(), dates on axis are displayed as numbers
    - #3215 Bokeh + ipython widgets: push_notebook() error?
    - #3226 [component: bokehjs] Text_color does not respect `none`
    - #3252 Button or toggle.disabled=true does not gray out the button or toggle
    - #3303 Layout can allow plots to overlap
    - #3329 [component: docs] Docs suggest that add_tools() takes shorthand strings, but it doesn't
    - #3434 [component: bokehjs] [starter] Band fill color issue display
    - #3464 [component: bokehjs] Maps_cities.py data disappears after pan/zoom
    - #3546 [API: charts] Charts + bokeh server: scatter plot added twice
    - #3563 [component: bokehjs] Setting min_border does not work
    - #3576 Bokeh histogram attribute density doesn't work
    - #3581 [component: bokehjs] [component: build] Cannot find module _process error on bokehjs build
    - #3610 [component: examples] Embed examples and airports_map broken on win
    - #3611 [component: examples] Examples/plotting/file/image examples broken on win
    - #3612 [component: examples] Plotting/file/line_compare second combo ("line join") does not work on win
    - #3615 [component: examples] [component: server] Plotting/server/geojson broken on windows
    - #3616 [API: charts] [component: examples] Charts/timeseries (step) chart is broken on windows
    - #3620 Lots of warnings when using bokeh in notebook
    - #3659 [API: charts] Histogram bin size auto select
    - #3660 [API: charts] Histogram empty plot with negative values
    - #3661 [API: charts] Bar plot plotting one value
    - #3702 Handle slow callback functions (like querying a remote data source) when using x_range.on_change in bokeh server
    - #3774 Mpl shifting pandas boxplot
    - #3783 Reset should call the responsive resize
    - #3795 [webgl] Datetime datapoints to pile up with webgl enabled
    - #3800 [webgl] Bokeh 0.11: enables webgl causes inconsistent update of scatter points
    - #3830 [component: docs] Weather example readme references non-existent weather.py
    - #3849 [component: docs] Fix typo in docstring
    - #3850 [component: docs] Problem with formatting on docstring for `output_file`
    - #3871 [component: bokehjs] [widgets] Multiselect: on_change method does not work properly
    - #3875 [API: charts] Error with histogram
    - #3891 [component: docs] Hex rgba strings not supported in 0.11
    - #3893 [regression] Does components() in bokeh.embed work for widgets?
    - #3895 [component: bokehjs] [widgets] Button causing redirect/reload
    - #3899 Timeseries modifies a pd.dataframe inplace
    - #3915 [component: examples] Brendancol/cross filter fix
    - #3920 [component: docs] Fix typo in docs: toolbar_position -> toolbar_location
    - #3924 Fixed color mapper error
    - #3937 Issue while live adding new plots
    - #3943 Using vform method to generate layout can cause extra components to be in the document root
    - #3947 [component: docs] Contributing.md code issue
    - #3952 [component: docs] Function links not rendering
    - #3976 [component: docs] Fixed path to image
    - #3985 [component: bokehjs] Bokeh logo with gridplot
    - #3989 Sliders fail to render (they have no dimension)
    - #3992 [component: bokehjs] [notebook] Boxannotation does not update consistently
    - #3993 [component: bokehjs] Updating a span (line annotation) duplicates it
    - #3996 [component: bokehjs] Box select tool doesn't work when x or y range is reversed
    - #4001 [component: docs] Fix links in readme
    - #4003 [component: docs] Quickstart incorrectly states that default is inline - when it is cdn
    - #4012 [component: bokehjs] Jupyter notebook css is tied to the notebook structure
    - #4018 Fix up formatting of calendars example
    - #4027 Docserver.py is not windows compatible
    - #4034 [component: docs] Fix typo: supervisctl -> supervisorctl
    - #4035 [component: build] Npm install fails on windows
    - #4042 [API: plotting] Generalize the configuration of axes
    - #4044 Fix default bokeh dir on windows
    - #4059 Css in docs broken
    - #4069 [component: bokehjs] [regression] Line picking is broken because glyph.glyph_view is no more
    - #4075 When used with `stat=none`, `heatmap` modifies original dataframe
    - #4080 [component: bokehjs] Don't attach document multiple times when traversing the graph
    - #4086 [component: bokehjs] [widgets] Datatable `getformatter not a function` bug
    - #4090 [component: build] Build not succeeding because path problem looking for the noarch package
    - #4092 [component: docs] Unclear how to run bokeh command when exe not available
    - #4103 Update crossfilter for new typescript api spelling
    - #4104 Crossfilter example: type is not a function error
    - #4109 [component: bokehjs] [component: server] Fix function naming in embed.coffee
    - #4110 [component: bokehjs] [regression] Plot resizing is broken
    - #4131 [component: bokehjs] Change type of bokeh.index to map<view<component>>
    - #4139 Bokeh datatable renders dates one day off
    - #4155 [component: bokehjs] [regression] Fix bokehjs plotting api after making hasprops.set() strict
    - #4157 [component: bokehjs] [regression] Legend doesn't update its location after frame resize
    - #4170 [component: bokehjs] [regression] Bokehjs renders twice after selection
    - #4178 [component: build] Bokeh thinks site_packages is in conda root on windows
    - #4188 [component: bokehjs] Bokeh + flask causes race condition
    - #4190 [component: bokehjs] Toggle button reverses state
    - #4204 Bug report? datepicker widget errors on changing dates
    - #4219 [component: bokehjs] New strict js property updates broke datetimetickformatter
    - #4224 Extra_x_ranges should allow range not only range1d
    - #4246 Weird left toolbar in gridplots in dev build and master
    - #4248 [webgl] Line plot scaling issue when webgl is used
    - #4254 [notebook] [regression] Notebook rendering is broken
    - #4265 [regression] [webgl] Webgl broken because public props do not exist anymore on the glyph
    - #4275 [component: bokehjs] Remove problem styles for sass/autoprefixer support
    - #4278 Label doesn't accept angle property
    - #4313 Save button broken on master
    - #4318 [component: docs] Typo?
    - #4325 Bug --host '*' wildcard result in http "403: forbidden" error
    - #4345 [component: bokehjs] When using the browser zoom the plot content becomes blurry
    - #4350 Ugly border in gmapplot?
    - #4355 Problem enabling zoom on image_url object
    - #4356 [component: tests] Line hover broken in master
    - #4362 Allow unminified bokehjs to load in notebook
    - #4365 [component: examples] Simple_hdf5 example needs to use the full path to the data file
    - #4367 [webgl] Webgl issue on new layout with multiple plots - some plots are blank
    - #4379 Title.title_align='center' not working
    - #4385 Help tool is not de-duplicated in toolbarbox (gridplot toolbar)
    - #4390 Legend is too tall (and maybe too wide) if more than two items
    - #4401 Trigger event when bokeh finishes rendering
    - #4432 [component: bokehjs] Js property mismatches
    - #4435 Chord diagram only has one color when using python 2.7
    - #4439 Multiple renders ocurring
    - #4464 Setting title_text_font_size with title='' errors
    - #4488 [component: bokehjs] [regression] Plots are rerendered on resize even if responsive="fixed"
    - #4498 Dropdown type undefined
    - #4501 Gapminder css issue
    - #4506 Re-rendering widgets in a notebook fails miserably (when they're in a widgetbox)
    - #4513 Jitter import missing, affecting pr #4490
    - #4530 [component: docs] Link to css colors in docs is broken, link address changed
    - #4537 Scale_both isn't quite working right
    - #4541 [component: examples] Clustering app example needs updates for recent changes
    - #4543 Movies example has sliders under plot
    - #4554 Layouts got slightly broken during sizing_mode change
    - #4569 [notebook] [regression] Logo missing from notebook resource load
    - #4572 [component: bokehjs] [widgets] Changing a toggle button's type is broken
    - #4578 Gridplot toolbar broken
    - #4581 Gridplots broken except for fixed
    - #4583 Using gridplot now gives a warning
    - #4587 [component: bokehjs] [component: server] Title js models sending bck properties not on python side
    - #4601 Toggle button layout broken w/ new widgetbox
    - #4603 [component: examples] Ajax data source needs to specify columns explicitly
    - #4606 Toolbar alignment on complex layouts
    - #4611 [regression] Plots disappear after zooming in/out in some browsers
    - #4614 Reset tool does not trigger x/y_range callback events
    - #4622 [component: bokehjs] [regression] Lod downsampling is not working
    - #4633 Taptool on line glyph with webgl=true causes renderers to disappears
    - #4636 Textinput not obeying width parameter
    - #4639 Divide by zero error in logcolormapper
    - #4658 Google maps no longer working due to api update?
    - #4663 Dropdown callbacks broken
    - #4666 Call to reset breaks layouts
    - #4672 Charts heatmap uses deprecated attribute internally
  * features:
    - #149 Allow plot titles to be located on any edge of the plot (not just the top)
    - #219 Preview save tool should auto download-prompt
    - #572 Support for pan/zoom range limits
    - #713 Adding legends through the js interface
    - #844 [API: charts] Add chord chart
    - #1085 [starter] Orientation on titles
    - #2026 [component: server] Allow bokeh server scripts to take command-line arguments
    - #2583 [starter] Can't serialize timedelta column
    - #2715 [component: bokehjs] [widgets] Can't add callbacks to checkboxgroups
    - #2865 Off-canvas legends
    - #2992 [API: charts] Step chart should have 'index
    - #2995 Reset doesn't reset selections?
    - #3054 [starter] Toolbar improvements: active is programmable
    - #3217 [component: docs] Build documentation with canonical links to "latest"
    - #3346 Slider size from python code to css
    - #3493 [starter] Collections.deque should serlialize
    - #3515 Having a __conda_version__.py under bokeh causes version to be wrong
    - #3738 [component: bokehjs] [component: server] Add support for bokeh static command
    - #3822 Improved annotations and legends
    - #3825 [API: models] Computed transforms
    - #3829 Add stamen toner background tile provider
    - #3832 Support horizontal legend orientations
    - #3846 [component: bokehjs] Real properties for bokehjs
    - #3848 Oval with height=width does not produce a circle
    - #3881 Add support for geojson geometrycollection
    - #3957 [component: bokehjs] [widgets] Delayed update slider
    - #3962 Custom web templates with `bokeh serve`
    - #3994 [component: server] Add option to extend sys.path with app directory
    - #4008 Allow for the injection of raw html code
    - #4051 --host allowlist doesn't trust 127.0.0.1 by default
    - #4057 [API: charts] Request: reorderable legends with chart api
    - #4064 [component: bokehjs] [component: examples] Add stock example using ts api
    - #4065 [component: bokehjs] The box (zoom or select) tool should be configurable to respect aspect
    - #4077 Avoid copies in columndatasource.stream
    - #4082 Expose geometries to taptool callbacks
    - #4118 [component: examples] Add implicit filename support for save()
    - #4150 [component: server] App-specific static file serving for directory apps
    - #4164 Improving bokeh's layout
    - #4179 Small improvements to label
    - #4180 Set default width and height for markup widgets to none
    - #4184 [component: bokehjs] Expose {x,y}axis in ts plotting api
    - #4201 [component: bokehjs] Make reset tool configurable as to what is reset
    - #4205 [component: bokehjs] Add the computedtransforms to the dataspec system
    - #4206 [component: examples] Add example for customjs callback for exporting columndatasource to csv
    - #4261 There should be an actual click tool
    - #4307 New title api & implementation
    - #4311 [API: charts] [component: bokehjs] Create js/ts charts api
    - #4344 [API: charts] Timeseries not correclty represent x-axis when applied to dataframe with datetime index
    - #4363 Bokeh server w/ multiple processes
    - #4372 Logcolormapper?
    - #4373 Add callback support to lassoselecttool
    - #4380 Titles should align with the edge of the frame not the edge of the canvas
    - #4384 New layout api - bokeh.layouts - layout, row, column, gridplot
    - #4412 [component: server] [starter] Redirect from `/` to `/app_name`
    - #4425 Improve server index page
    - #4462 Adding a funcformatter for ticks based on pyscript
    - #4548 [component: bokehjs] Add viridis and other new color maps
  * tasks:
    - #861 Clean up top level directories
    - #1149 [component: build] Build_and_upload.sh needs improvements
    - #1268 [component: docs] Bokeh.plotting.image_url glyph is missing width and height parameters in the documentation
    - #1455 Move all base64 encoded images to *.less files
    - #1595 Streaming stock ticker demo
    - #2239 [component: docs] [starter] Docs for styling selection overlays
    - #2657 Bokehjs: imageurl glyphrenderer improvements
    - #2752 [component: tests] Selenium tests to do
    - #2759 [component: bokehjs] [starter] Resolve misleading property names in `bokeh.index[<item_id>].renderers` and `bokeh.index[<item_id>].model.renderers`
    - #2876 [component: examples] [starter] Example embed_multiple.py is using old static links
    - #2882 [starter] Allow local resources when building docs
    - #2888 Something in bokeh.util.testing.py breaks making the docs
    - #2897 Ci error on current master (404/410 error with ggplot example notebook)
    - #2922 [component: bokehjs] Use numbro.js instead of numeral.js for formatting numbers
    - #3014 [API: charts] Pandas sort deprecated in new charts, use sort_values instead
    - #3083 [starter] Remove logo_url from resources
    - #3084 [component: docs] Update docs to point to tagged release of bokeh examples
    - #3146 Document breaks with roots that are also in non-root layouts
    - #3232 [component: tests] Screenshot testing for selenium tests
    - #3390 Known pending issues/tasks for 0.11 release
    - #3514 [starter] Rename bokeh.client.connection
    - #3571 Missing bokeh entry point (otherwise bokeh.bat) for windows
    - #3575 [component: server] Bokeh server should display bokeh version on startup
    - #3582 [component: docs] [component: server] Embed docs out of date
    - #3586 [component: examples] [component: server] Crossfilter example refactor
    - #3651 Unifying bokeh and bokehjs project structure
    - #3675 Defining a js callback using python for python 2.x
    - #3730 Difference between public and internal session lifetime units
    - #3759 [component: docs] Quickstart edits
    - #3770 [component: server] Periodic callbacks continue after tabs are closed
    - #3784 Responsive is false by default, no need to set
    - #3797 [component: bokehjs] Containing all bokeh style to .bk-plot
    - #3826 Visual diff tests
    - #3827 Cross browser automated testing
    - #3844 [component: docs] Remove quickstart
    - #3864 [component: bokehjs] Clean bokehjs cruft
    - #3868 Remove leftover comment from when examples were disabled
    - #3869 Test with firefox on saucelabs
    - #3877 [API: models] Pyscript now also works on py27
    - #3889 [component: tests] Speed up examples tests by using pytest-xdist
    - #3908 [API: charts] Add xaxis, yaxis accessors to chart class
    - #3913 [component: bokehjs] Some canvas and layout improvements
    - #3927 [component: tests] More gracefully handle running integration tests for external contributors
    - #3936 [component: docs] Creating -> create
    - #3938 [component: bokehjs] Changed .bk-plot to .bk-root for style wrapper
    - #3945 Demo more prominant report location
    - #3948 [component: docs] Concepts file changes [ci disable examples]
    - #3949 [component: docs] Remove duplicate of seaborn from req'd pkgs [ci disable examples]
    - #3950 [component: docs] Fixes to 'plotting' [ci disable examples]
    - #3951 [component: docs] Add links to more external libraries
    - #3955 [component: build] Noarch conda package and entry points
    - #3963 Revert "changed .bk-plot to .bk-root for style wrapper"
    - #3968 [component: docs] Document usage of a reverse tunnel to an instance of a standalone server
    - #3970 Disable data_tables_server example
    - #3997 [component: docs] Issue #3656: added more documentation for how to use widgets in the user guide
    - #4029 [component: docs] Fix output_notebook(resources) default docstring
    - #4037 [API: plotting] [component: bokehjs] Implementation of typescript api
    - #4063 [component: tests] Pytest consistently erroring on logging
    - #4076 [component: bokehjs] [component: docs] In developer guide, it's not obvious that "following pages" are indexed in the sidebar on the left
    - #4078 [component: bokehjs] Remove support for backbone collections
    - #4085 [component: bokehjs] More typescript api
    - #4087 [component: build] Anaconda auth token got staled
    - #4099 [component: build] [component: tests] Fix phantomjs download failures
    - #4100 [component: docs] [starter] Add prominent banner to old versions of the docs
    - #4101 Head breaks apps that use widgets with type parameter
    - #4116 [component: examples] [component: server] Add a simple app showing usage with hdf5
    - #4119 [component: build] Try use setuptools in setup.py (so entry points get installed on windows)
    - #4122 [component: docs] [starter] Add new div widget example to user guide
    - #4124 [component: bokehjs] Remove obsolete css classes and bokehjs/src/templates
    - #4126 Release 0.12 planning
    - #4132 Hotfix - fix path to phantomjs executable
    - #4141 Declarative property management
    - #4149 [component: server] [starter] Log pid on server startup
    - #4159 [component: bokehjs] [component: examples] Add linked plotting example to bokehjs
    - #4168 [component: tests] Apply basic code quality rules to all source files
    - #4173 [component: docs] There is no make.bat serve to view locally build docs on windows
    - #4186 [component: docs] [starter] Need docs support for bokehjs widgets split
    - #4187 [component: docs] [starter] Document "bokeh sampledata" better
    - #4194 [component: tests] Disable pandas_dataframe test temporarily
    - #4195 [component: tests] Restore pandas_dataframe test
    - #4210 [component: bokehjs] [component: build] Built js and css not included in npm package
    - #4212 More ts api improvements
    - #4217 Add paragraph and pretext widgets to user guide
    - #4222 [component: examples] Remove or update accidentally committed template
    - #4230 [component: docs] Document how to run screenshot tests
    - #4234 [API: charts] [component: docs] Better docs for the chord chart
    - #4242 [component: docs] [component: server] Document use of bokeh server with apache
    - #4244 [component: examples] Add example with drawing networkx graphs
    - #4251 [component: tests] Jitter tests can fail
    - #4253 [component: docs] [component: tests] Add note to testing docs about installing bokeh
    - #4267 [component: docs] User guide adding annotations uses p.renderers.extend instead of p.add_layout
    - #4279 [component: tests] [webgl] Tests for webgl
    - #4281 It at all -> if at all
    - #4292 Add webgl support for more kinds of markers
    - #4293 [webgl] Webgl blurry on os x, not visible in safari
    - #4323 Move plot to plotcanvas
    - #4341 Refactor webgl into smaller chunks
    - #4358 Revert "make hidpi work for webgl"
    - #4360 Merges the hipdi work into the layout pr
    - #4381 Api issue: title_standoff, title_padding, title_offset
    - #4382 Is title padding working?
    - #4383 Is min_border working?
    - #4387 [component: docs] Layout documentation
    - #4396 Api - name the responsive modes
    - #4397 Update all examples to use new layouts
    - #4399 [API: models] Make toolbar right by default?
    - #4406 Confirm that toolbar works under streaming (ref #3334)
    - #4423 Changed docserver shutdown instruction
    - #4429 [component: examples] #4397 (partial) examples/models update layout
    - #4440 [component: docs] Update readme for greater user friendliness
    - #4446 [component: docs] Improve dev guide's documentation section
    - #4454 Doc: mentioning ``ulimit -n`` in dev guide
    - #4457 [component: docs] Explicitly document installing into the bokehjs directory
    - #4466 [component: docs] Remove deprecated api usage from docs examples
    - #4475 Remove dupe props in plotcanvas, cleanup
    - #4480 [component: build] Unnecessary ansi escapes are generated by setup on windows
    - #4482 Quiet boto log level
    - #4485 [component: docs] Update docs and docs build to be clear that only html output is supported
    - #4492 Tweaks to almar's resize pr
    - #4494 Remove un-used layout css
    - #4496 Undeprecate vbox and hbox
    - #4512 A few fixes to the typings
    - #4514 Split out responsive and sizing_mode as per discussion on #4484
    - #4515 [component: tests] Cannot run test_code_quality.py on windows
    - #4520 Resize tool should not be in defaults
    - #4529 Update docs
    - #4547 [component: docs] [starter] Readme.md under examples/plotting/notebook refers to ipython not jupyter
    - #4550 Warn when sticky toolbars might visually overlap other components
    - #4557 Improvements to layout functions
    - #4559 [component: examples] Ggplot api update
    - #4566 Pin ggplot version preceding uploading new versions to anaconda.org
    - #4584 Set gridplot default location to above
    - #4591 [component: examples] Add surface3d custom model example
    - #4594 Issue with pandas in examples/app/weather
    - #4609 Remove hack unneeded since #4607 introduced in #4312
    - #4620 Responsive no longer supported?
    - #4626 Mpl compat needs minor updates
    - #4629 Small styling tweaks
    - #4654 Examples tweaks
    - #4655 Skip 3 more flaky js tests
    - #4662 Examples cleanup
    - #4669 [component: docs] Arrowhead documentation
    - #4670 Clean up notebook examples
    - #4675 Undeprecate .from_df
    - #4684 Code quality
    - #4685 [component: examples] Bryanv/hotfix examples

2016-02-04   0.11.1:
--------------------
  * bugfixes:
    - #2495 [widgets] Multiselect appears broken
    - #3055 [docs] Search isn't working correctly on docs - bokeh.pydata.org
    - #3069 [docs] Table of contents is not scrolling properly on bokeh website
    - #3173 Cb_obj for range callback is plot not range
    - #3257 Confusing deprecation message in bokeh/models/plots.py
    - #3304 [examples] Stocks app example is not py2 compatible
    - #3468 [bokehjs] Embed_responsive_with_height.py starts out wrong size
    - #3530 _make_io_complainer method of scripthandler uses not-imported sys module
    - #3543 [bokehjs] Annulus glyph does not render correctly in ie and edge
    - #3552 Use self.mode instead of mode in baseresources.__init__()
    - #3562 [docs] Python callback example in user guide not rendering
    - #3569 [docs] Imageurl example in reference guide is broken
    - #3578 [charts] [docs] Sizing plots, charts: inconsistency between doc an api
    - #3591 [docs] Correct links to be demo.bokehplots.com links
    - #3604 [bokehjs] Hovertool.always_active is not implemented
    - #3605 [bokehjs] Webgl aa is broken on firefox on windows
    - #3626 [bokehjs] [server] Support swapping of axes/ranges without re-creating entire plot
    - #3636 [tests] Travisci failing every py27 examples test
    - #3646 Fix bad path to bokeh logo static
    - #3658 Hplot spacing too large
    - #3680 [bokehjs] Notebook comms only update last plot
    - #3683 Movies app razzies file path
    - #3690 Add `bind_bokeh_event` methods to `tilerenderer` and `dynamicimagerenderer`
    - #3692 [server] Fix error about blocked websocket to list allowed origins
    - #3695 [docs] Server example out of date
    - #3698 [docs] Doc: data_source is not an expected attribute to text
    - #3699 [charts] Boxplot 1st and 4th whiskers are just of equal length
    - #3705 Inline css from embed_multiple.py jinja template overrides bokeh plot icon css
    - #3709 [bokehjs] Issue with legend when 'oval shape' is used
    - #3710 [bokehjs] [build] Restore support for --build-dir argument to gulp
    - #3711 [bokehjs] Allow to align plot title to left and right (center worked before)
    - #3712 [regression] Use make_id() instead of str(uuid.uuid4())
    - #3714 [regression] Restore pretty json formatting and make sort_keys=true the default
    - #3726 [server] Pandas required to use the server!
    - #3727 [examples] Update elements.csv
    - #3753 [bokehjs] Should not set parent on anything anymore
    - #3758 Fix bad layouts imports in examples
    - #3769 [bokehjs] Reset tool resets selection incorrectly
    - #3778 Fix issue with bar chart grouping/stacking order
    - #3803 [bokehjs] Publish bokehjs separately in a notebook to avoid parsing issues in jquery
    - #3807 [docs] Sync mpl.to_bokeh docstrings with current available parameters
    - #3811 [bokehjs] Hot fix for selection reset code
    - #3812 Use import_required for nbformat and nbconvert
  * features:
    - #1683 Reset orignal plot's size
    - #2346 [bokehjs] Extend jscallback support
    - #3254 Add support for undo and redo tools
    - #3505 "bokeh sampledata" command
    - #3506 [starter] "bokeh static" command
    - #3541 [server] Add session expiration time options to `bokeh serve`
    - #3542 Log more detailed stats information from the server
    - #3553 [server] Add __main__.py so we can do "python -m bokeh"
    - #3592 [docs] Add a sitemap builder
    - #3593 [server] Add option to parse jupyter notebooks as input to bokeh command
    - #3638 [server] Provide method for turning server autoadd off
    - #3682 Add headers and contenttype configuration to ajax data source
    - #3768 Initial commit of streaming api
  * tasks:
    - #2159 [docs] [server] Bokeh server documentation is incomplete
    - #3243 [tests] Build new pytest-selenium package
    - #3305 [server] Evaluate bokeh server on windows
    - #3404 [docs] Todos for new docs
    - #3417 [charts] [examples] Add detailed tutorial on individual charts components
    - #3508 Remove remotedata directory
    - #3548 [tests] Latest versions of firefox have a heavy to load startpage that we don't need
    - #3566 Remove bokeh/styling_tool_overlays.html
    - #3568 Use split not contains for browser compatibility
    - #3583 [docs] Remove some example notebooks that are superfluous
    - #3587 Add plotting of razzies
    - #3588 [docs] Quick add of demo apps to gallery
    - #3599 [examples] Update periodic table example to reflect recent changes
    - #3607 [build] Add javascript channel to meta.yaml and improve scripts/dev_environment
    - #3633 [docs] User guide server
    - #3637 [docs] 0.11.0 documentation fixes and flake8
    - #3662 [bokehjs] Remove hasparent (involves moving glyph display_defaults into defaults)
    - #3663 Remove abstractrendering cruft
    - #3664 [docs] Examples reorg
    - #3672 [bokehjs] Fix base of bokehjs class hierarchy
    - #3676 [build] Minified files should not try to load .map files
    - #3677 Server should optionally enable xheader support
    - #3686 [docs] Auto-update the "releases" link in conf.py
    - #3687 [docs] Docs updates/0.11.0
    - #3694 Remove not filled out portions of docs
    - #3697 Add renderer base class to *_renderer models
    - #3703 Task/add component base class
    - #3721 [docs] Hotfix small doc addition to select
    - #3728 Removed rogue debugger statement
    - #3735 [bokehjs] [models] Task/3651 unify directory structure
    - #3739 [build] [tests] Remove version pin from pytest-selenium
    - #3742 [docs] Reference docs have bad path to layouts.py (autodocs fail for layouts)
    - #3749 [bokehjs] Move defaults.coffee (for models and widgets) into test/ directory
    - #3751 [bokehjs] Remove unused close_wrapper module and coffee/api directory
    - #3752 [bokehjs] [build] Generate defaults for test task, not scripts:coffee
    - #3755 [docs] Quickstart edits
    - #3766 [bokehjs] Task/rename hasproperties to hasprops
    - #3775 Removing blazedatasource
    - #3790 Don't use spaces in json separators to reduce data size
    - #3802 [bokehjs] Move vbox and hbox to top since they are layouts on coffee layer
    - #3805 [build] Add new creds for rackspace
    - #3808 [docs] Fix quotes around links to examples notebooks
    - #3815 Hotfix/apps examples

2016-01-06   0.11.0:
--------------------
  * bugfixes:
    - #1349 Image component + circle
    - #1732 [bokehjs] Push_notebook memory leaks
    - #2059 [regression] Running server example twice duplicates layout
    - #2319 Imageurl not extending as expected (until after zoom / pan)
    - #2560 Support css colornames in value()
    - #2621 Convert from mpl breaks if mpl axis object has no xticks
    - #2643 Error with mpl (showing in violin plot)
    - #2679 [docs] Weird artifact on file_html generate docs
    - #2700 [build] 0.9.0 build on anaconda has wrong md5
    - #2730 Donut chart emits validation error
    - #2731 Histogram emits a validation error
    - #2776 Spurious error message in plotting/file/ajax_source.py and ajax_source_realtime.py
    - #2780 Bokeh timeseries chokes on nan values
    - #2893 Ranges using numpy types, when creating a new figure, fail
    - #2904 Editable fields in a sorted datatable do not update correctly
    - #2910 [docs] Testing addopts are note recognized with listed dependencies installed
    - #2918 [charts] Support for irregular observation intervals for area charts
    - #2928 [bokehjs] [build] Watch.coffee has bad path for bokehjs watchsources (gulp watch is broken)
    - #2932 [bokehjs] Use custom function to compute the maximum value of a large array
    - #2945 [bokehjs] Plotting "large numbers" with webgl=true causes point coordinates to be miscalculated
    - #2951 Border_fill and background_fill don't accept rgb tuples or rgba values
    - #2953 [bokehjs] Bokehjs 0.10 very verbose in the console using cdn
    - #2965 [charts] Custom bar chart hover tooltips
    - #2978 [tests] ../tests/travis/nbexecuter.py tests not compatible w/ ipython=4.0
    - #2980 [tests] Move location of license copy in setup.py
    - #2998 Fix pinch zoom
    - #3001 Hotfix/box selection for mobile
    - #3015 Hotfix/broken charts
    - #3017 Stocks example bug with numpy v1.10.1
    - #3022 [bokehjs] Logmapper can overwrite inputs, also falls over with one bad value
    - #3023 [docs] Wrong variable names  in file_html() for jinja2 template in documentation
    - #3036 Gulp build script creates incorrect source map and gulp watch has bad path to license.txt
    - #3048 Small fix to hover.py example
    - #3057 [charts] Bar chart broken on update
    - #3059 Fixes/tile renderer enhancements
    - #3066 [examples] [server] Glyphs.py server issue - plots appearing twice
    - #3071 [regression] Hotfix/image_rgba
    - #3076 Hot fix: fixed default settings for tile sources
    - #3085 Y_axis_type='log' collapses values
    - #3089 Hotfix/fix flake8
    - #3092 [charts] [docs] Bar plot example seems to be broken
    - #3094 Text_font_size props in default.yaml raise deprecated warn
    - #3100 [tests] Ipython notebook cells not being executed in examples tests
    - #3102 [server] Do not open up server to all cross-origin connections
    - #3108 [server] Fix `curdoc()` inside of callbacks
    - #3124 Histogram gives valueerror or overflowerror with automatic binning on a  nearly homogenous dataset
    - #3162 [server] Set correct websocket_path on each app pattern in the server
    - #3165 [server] Avoid using host header from the http request
    - #3167 [bokehjs] [TP] Wheel zoom tool on chrome
    - #3169 Slider ignores changes to the model
    - #3172 Fix autoload.js from server to include all js_urls
    - #3192 Unit of period in add_periodic_callback() changed to seconds
    - #3195 [docs] Example-breaking typo in the documentation
    - #3213 [build] Conda list returns too much without -f
    - #3216 [docs] Add missing call to output_file in quickstart.rst
    - #3218 [build] [regression] Try forcing inline resources for notebooks
    - #3240 Support for functools.partial functions as callbacks
    - #3249 [server] The example https://github.com/bokeh/bokeh/blob/master/examples/plotting/server/line_animate_widget.py does not work in the developer build??
    - #3253 [regression] Document does not maintain object insertion order
    - #3259 [tests] Shrink test_objects.py::testcollectmodels::test_references_large
    - #3275 [server] Bokeh prod issues
    - #3283 Fix broken docstring automation
    - #3291 [server] Websocket connections timing out despite keep-alive
    - #3296 [charts] [regression] Charts defaults are broken
    - #3299 [server] Data not always bytes
    - #3300 Border shading area not resizing correctly
    - #3307 [examples] Use add_root not add in sliders.py and fourier_animated.py examples
    - #3310 Support asynchronous coroutines in `add_timeout_callback`
    - #3313 [examples] [regression] Selections are broken on app/stocks
    - #3318 Timeout callbacks should remove themselves after they run
    - #3320 [charts] [server] Bokeh server not working with charts and client sessions
    - #3327 Fix erroneous dispatch method
    - #3334 [bokehjs] Hotfix to only render toolbar once
    - #3335 [examples] Line_animate_widget.py is broken
    - #3338 [bokehjs] [server] Fix problem where replacing children did not update document
    - #3339 [bokehjs] [examples] [widgets] Adding user defined layouts
    - #3341 When we customize property serialization, also customize deserialization
    - #3350 --host eats the script names
    - #3356 Dataspecproperty.set_from_json: check whether json is a dict before assuming
    - #3361 [bokehjs] [server] Opening same session of sliders example in two tabs breaks
    - #3368 No_{glyph->data}_renderer warning
    - #3376 [bokehjs] Inspected is a non-serializable attr at least for now
    - #3379 [server] Add connection write_lock
    - #3385 Fix change suppression on units-spec values
    - #3392 Geojson_points example cannot set initial bounds
    - #3402 Add in bokeh_theme layout
    - #3403 Add in remaining html templates
    - #3408 [bokehjs] [server] Improve datarange updating policies re: server usage
    - #3418 [bokehjs] [widgets] Update toggle.coffee
    - #3425 [server] Server breaks with tornado versions < 4.3
    - #3427 Fixed json encoder import error
    - #3428 [bokehjs] Fix refefences clobbering
    - #3429 Periodic callbacks are invoked once when added
    - #3430 Refactor document callbacks
    - #3431 [bokehjs] Add missing logical connective
    - #3445 Add control over cross-origin websocket
    - #3446 Removed .value when retrieving outline_line_width for tile attribution
    - #3449 Fix unclosed file in resources _inline()
    - #3452 [models] Fix fontsizespec deprecationwarning
    - #3453 [bokehjs] Possible solution to store model instead of view on 0d selections
    - #3460 Fix error in snap_back. now will not request tiles outside of min/max zoom
    - #3462 [charts] Boxplot whisker, marker styles ignored
    - #3465 Esc does not clear selections
    - #3467 [bokehjs] Hover tool performance seems degraded
    - #3469 [bokehjs] Can't turn wheel zoom tool back on
    - #3472 [bokehjs] [server] Make plot use the title_panel from the server if one is provided
    - #3473 Dynamic map example: fixed issue with dynamic image becoming unhinged from basemap
    - #3474 [examples] Airports example: fixed panning/zooming and refactored to use figure
    - #3479 Lots of extra events on document load
    - #3490 Fix a leftover log message and broken log message in has_properties.coffee
    - #3500 [bokehjs] Bokeh.js must load first, before widgets, compiler
    - #3512 Make bokeh.js set window.bokeh not only bokeh in current scope
    - #3513 [server] Accept implicit port 80 on allowlist
    - #3525 Random tiles example: temporary fix for bounds issue on map
    - #3532 [bokehjs] Add support for inline autoload and restore support for inline resources in notebook
    - #3540 Graphs are not displayed when using runipy
    - #3547 Hotfix: don't exec bokeh embed until dom ready
    - #3550 [examples] Small fix in scatter.ipynb - allow making selection
    - #3560 Fix interactive excel example
  * features:
    - #578 [docs] Put plotting commands at the top of gallery pages
    - #718 Make it possible to add tools to bokehjs without modifying bokeh source
    - #900 Configurable ports for demos
    - #1450 [bokehjs] [starter] Wheel zoom interaction improvements
    - #1476 Glyphrenderer should have hover_glyph property
    - #2021 Transparent background
    - #2659 [bokehjs] Bokeh cdn doesn't support https
    - #2681 [bokehjs] Webgl line glyph
    - #2788 Opportunities for pyscript to efface js for bokeh users?
    - #2794 Server rewrite based on tornado
    - #2800 Implementation of user-defined models
    - #2805 [bokehjs] Add max_retry_attempts and retry_interval_ms for imageurlview
    - #2824 [bokehjs] Line annotation
    - #2900 [geo] Feature/add tile layer renderer
    - #2923 [bokehjs] Add support for htmlformatter in datatable
    - #2934 Exploration on splitting our tests
    - #2942 Feature request: constrain zoom out to fixed range/domain
    - #2949 [bokehjs] [widgets] Allow plots to be responsive also for available height
    - #2970 [charts] Bar chart : would be amazing to be able to use dataframe index as label
    - #2975 Support negative bar lengths
    - #3050 Feature/dynamic image renderer
    - #3080 [server] Add support for periodic callbacks on a session/server app
    - #3090 Add document.title and titlechangedevent
    - #3104 [server] Include version information in document.to_json json
    - #3112 Add document.get_model_by_name
    - #3119 [server] Add server timeout callbacks
    - #3129 Allow for configuring the ip address of the bokeh server
    - #3133 Improve locking and async for tornado server side
    - #3147 [server] Improve document changed events chain (multipledispatching)
    - #3171 `pull_session` should let you provide app_path, host, port
    - #3184 [bokehjs] [build] Add gulp dev-build task for faster development
    - #3189 Adding attribution for tile renderer
    - #3194 Better error reporting
    - #3202 Clean up bokeh command and add json subcommand
    - #3211 Rename propertygenerator to propertyfactory
    - #3219 Basic theming
    - #3261 Rename legend.{orientation->location} and implement more locations
    - #3273 [docs] [server] Production bokeh
    - #3344 Bokeh subcommand to generate secret key
    - #3345 [server] Support --prefix for server
    - #3355 Enable autoload_server from a static page
    - #3360 Add ?v=contenthash to static paths served by the server
    - #3364 Tile wrap around
    - #3370 [bokehjs] Better approach to notebook comms:
    - #3387 [examples] Movies example
    - #3409 Server lifecycle hooks feature
    - #3437 [build] [examples] [models] [server] [widgets] Allow use custom models on the server
    - #3450 Some fixes to notebook patching
    - #3459 Add controls over who can create sessions; test session creation much better
    - #3507 [examples] Add examples with excel files
  * tasks:
    - #908 Remove columnref, etc
    - #945 [docs] Update examples to current bokeh status for clarity and simplification
    - #1246 Remove arraymanagement dependency
    - #1289 [geo] Remove geojsplot
    - #1726 Interactive tester improvements
    - #1773 Misc charts codebase improvements
    - #1814 Better variable names throughout bokeh.charts
    - #1917 Remove _glyphfunctions
    - #2194 [server] Distribute bokeh server separately.
    - #2448 [docs] Document when the callback occurs on the  textinput widget.
    - #2491 [examples] Several plots throwing column length error (0.9.1)
    - #2572 Output_notebook resources
    - #2901 [docs] Update test dependencies listed on bokeh developer guide
    - #2911 [docs] Faq code block needs wrap
    - #2924 Turn off bar plot sorting by category axis labels
    - #2947 [docs] Automate examples generation in glyph model docs
    - #2952 Make widgets optional and refactor bokeh.resources
    - #2954 [docs] Line_dash attr in styling visual attributes doc incomplete
    - #2958 [docs] Make license obligations easier and clearer to understand
    - #2973 To_bokeh renders datetime ticks as integers
    - #2983 [branches] [server] Document and provide all defaults in python bindings
    - #2985 Refine coverage reports
    - #3005 [tests] Problems installing pytest-selenium
    - #3010 [tests] Add `.cache` to `.gitignore`
    - #3019 [tests] Restore examples tests on travisci as default action
    - #3024 [charts] Replace legacy charts with new ones
    - #3028 Remove leftover debugger statement from render loop
    - #3031 [examples] Bug: stocks.app does not work with pandas .17 because read_csv doesn't accept headers=false in .17
    - #3035 Make .clone private
    - #3042 [examples] Plotting/file/ajax_*.py examples are "interactive" (require server)
    - #3052 [docs] Documentation/python only tests
    - #3053 Bye bye cli
    - #3058 Remove superfluous server examples
    - #3063 New server docs fixes
    - #3065 Update numfocus contact email in docs
    - #3068 [docs] Document need to install futures on py27
    - #3079 Tests (and fixes) for plot resizing
    - #3088 Add plotobject.to_json and to_json_string
    - #3096 Lengthen timeout on test_client.coffee to 7500 from 2000 millis
    - #3103 [server] Mark document.add deprecated or remove todo comment above it
    - #3105 [server] Rename bokeh.application.spellings and spellinghandler
    - #3106 Rename `plotobject` to `model`
    - #3107 [server] Remove global `set_websocket_url` in embed.coffee
    - #3109 Property cache cleanups
    - #3111 Misc server examples
    - #3113 Keep-alive ping on server websocket
    - #3118 Add server.show() and `bokeh serve --show`
    - #3122 Py35 in travisci
    - #3132 [charts] Restore `chart(server=true)`
    - #3140 [bokehjs] Remove cruft related to old ar implementation
    - #3141 [branches] More work to sync coffee and python for tilerenderer / tilesource
    - #3144 [docs] [server] Change tone of docstring on server show() slightly
    - #3145 Hasparent: share one instance of display_defaults per class, not per instance
    - #3149 Fix commented out `push_notebook` method from columndatasource
    - #3150 Move columns out of datasource into columndatasource
    - #3152 Add a new geojsondatasource
    - #3160 Add checking for optional and required dependencies
    - #3181 [server] Rename spellinghandler to handler
    - #3185 [bokehjs] Selection of lines need improvements
    - #3190 Tweaks to the property system
    - #3193 [examples] Desired_num_ticks not working when using custom x_range
    - #3205 Warnings cleanup
    - #3208 [charts] Replace legacy donut chart
    - #3214 Checking for extra_patterns kwarg and forwarding to bokehtornado
    - #3223 Relax no_glyph_renderers validation
    - #3225 [examples] Add bokeh logo and a link to the gapminder demo
    - #3227 [charts] Remove legacy charts
    - #3228 [docs] Typos in documentation, comments, and strings
    - #3230 [docs] Add more missing calls to output_file in plotting
    - #3234 [bokehjs] Coffee units handling
    - #3236 [build] [tests] Ci build breakdown
    - #3242 Add tags default in coffeescript
    - #3248 Do not default numberspec/anglespec/distancespec to field name
    - #3251 [docs] [server] Bokeh command docs
    - #3255 [bokehjs] Correct lots of defaults to match between python and coffeescript
    - #3256 [bokehjs] Properties.coffee: remove dead code in distance._init angle._init
    - #3258 [bokehjs] Add skipped test to compare python and coffee defaults
    - #3262 [build] Check dependencies list for release
    - #3263 [docs] Add sphinx directive to create versioned links into the repo
    - #3264 Clean up developer guide
    - #3268 [charts] Remove pandas deprecation
    - #3278 [examples] Keep the output_file the same name as the example file
    - #3282 [server] Remove broken ws_url property from server
    - #3285 Remove unnecessary paren in error message
    - #3301 Plotting/file/burtin.py has validation warnings
    - #3311 [tests] Add charts/plotting and charts/file to testing locations, warning
    - #3326 [bokehjs] [tests] Finishes remaining js test_document todos
    - #3337 [bokehjs] [tests] Test that coffee/python sync issues are not increasing
    - #3351 Make `bokeh json` and `bokeh html` work in a similar way
    - #3354 [examples] [server] Add chdoig's scikit-learn clustering demo
    - #3367 [docs] Reduce the number of top-level items in the docs
    - #3374 Reorganize top level package
    - #3375 [examples] Cleanup embed examples
    - #3377 [examples] Cleanup interactions examples
    - #3382 [server] Periodic callback refactor
    - #3388 [docs] Bring documentation styling in line with bokehplots.com
    - #3391 [charts] Cleanup charts
    - #3400 [build] Remove caching mechanism
    - #3401 Server annotations
    - #3406 [examples] Plotting/file cleanup
    - #3407 [examples] [server] Plotting server cleanup
    - #3415 Revert "server annotations"
    - #3419 [bokehjs] Default sync
    - #3422 [examples] Add streaming ohlc and macd indicator example
    - #3424 Remove crossfilter example and associated bokeh code
    - #3438 Hotfix: add file omitted by gitignore
    - #3439 Attempt to make widgets look a bit better
    - #3443 Turn off sending defaults to bokehjs
    - #3444 Add cast to sql query results
    - #3451 Remove for-now-unused "working" message
    - #3457 Add warning for bokeh-server
    - #3471 Examples tweaks and tasks
    - #3475 Pr for docs/examples tweaks for 0.11
    - #3477 [charts] [docs] Update charts docstrings and sphinx documentation
    - #3485 Remove legacy charts from example notebooks
    - #3488 Bokeh.resources.inline.render_js() unnecessarily exposes minor info about server in html (0.11.0.dev7)
    - #3491 [build] Bokeh-compiler.js not uploaded to cdn
    - #3497 Docs/examples tweaks for 0.11 (3)
    - #3498 Update readme.md
    - #3504 [examples] Fix selection histogram layout
    - #3516 Docs/examples 011 4
    - #3521 Add some more host and origin tests
    - #3522 Start cleaning up docs
    - #3524 Left justify hbox
    - #3527 [examples] Remove notebooks using server
    - #3536 [docs] Small tweaks to a couple of bits of markup
    - #3537 [docs] An initial "server architecture" chapter for the developer guide
    - #3544 [docs] Report that annulus is broken in release notes (+ typo fixes)
    - #3545 Hotfix set range defaults to ``none``
    - #3549 Revert "hotfix: don't exec bokeh embed until dom ready"
    - #3554 Clean up numerous inconsistencies
    - #3557 Fix more examples
    - #3559 Fix geojson user guide plot
    - #3561 [docs] Docs updates

2015-09-25   0.10.0:
--------------------
  * bugfixes:
    - #1335 [geo] Gmap points don't move consistently
    - #2172 [docs] Incorrect image sizes in bokeh documentation
    - #2332 [bokehjs] Sub-second timezone strftime support
    - #2444 Legend does not accept none as a border_line_color
    - #2550 [docs] Scrolling on info page of user guide is broken
    - #2619 [docs] Doc: broken plot in user guide
    - #2785 [bokehjs] Imageurl glyph initial render is incorrect
    - #2787 Regression in bokeh-server (client side?)
    - #2801 [bokehjs] Bug in linear_color_mapper palette generation
    - #2816 [charts] [examples] Charts donut nb example raise a long set of warning
    - #2818 [charts] Categorical charts use `:` to set categories
    - #2835 [docs] Embed docs missing required closing script tag
    - #2846 Be more selective when you look for the id
    - #2848 Workaround to local installation
    - #2853 [docs] Fix typo. snipped -> snippet
    - #2855 Fix gapminder notebook & clean-up unecessary triggers
    - #2868 Clean-up tests, pytest fixture overrides, add the new sensitive-url parameter
    - #2872 Skip remotedatasource column warnings
    - #2878 [tests] Nvm install failing on travisci
    - #2887 Wrap testing import so testing libraries aren't required
    - #2894 [bokehjs] Line join property broken
  * features:
    - #1128 [docs] Documentation checklist
    - #2375 Allow more subtle uses of resources - provide lower-level jsresource & cssresource
    - #2678 Make plots responsive
    - #2782 Create example of using hover tool to display custom images
    - #2802 Add alpha control for imageurl objects
    - #2823 Hardcode some dark colors for theme idea "1b"
    - #2829 Have glyph methods return the glyph renderer, not the plot
    - #2834 Changes to tornado pr
  * tasks:
    - #1143 [docs] Widget docs, examples and deprecation status
    - #1514 [docs] Add docs for ipython notebook interactors
    - #2563 [docs] Autoload_server docs issues
    - #2662 [docs] [examples] Bokeh needs migration guide
    - #2705 [docs] Faq - add note `make sure to close all script tags` message
    - #2743 Remove 3.3
    - #2751 [build] [tests] Remove 3.3 from testing and building
    - #2768 [docs] Scientific citation
    - #2769 Annotations should get an abstract base class
    - #2783 Remove 0.10 references
    - #2795 Pin ipython and ipython notebook to 3.2.1
    - #2797 Pin ipython and ipython notebook to 3.2.1
    - #2798 Remove hard dependency on scipy in mpl_helpers
    - #2806 Task/build fixes
    - #2809 Fix regex to take 0.10.0 versions
    - #2811 Merge dev 0.10 branch back to master
    - #2815 Do we want to deprecate callbacks in 0.10 or push out further?
    - #2827 Better names for the devel builds
    - #2831 [docs] Customjs for widgets on bokeh webpage
    - #2832 [docs] Circle_x method example is broken in reference guide
    - #2843 Fix regex again
    - #2844 Pytest-selenium 1.0b1 does not use the --destructive argument
    - #2858 Update example - cities gmap
    - #2880 [build] Replace nvm for a conda package
    - #2889 Add .gitignore files to examples directories that didn't have it
    - #2902 [build] [examples] Collect hotfixes and examples fixes for 0.10.0 release

2015-08-28    0.9.3:
--------------------
  * bugfixes:
    - #1863 [docs] Docs - images overlapping at certain viewports
    - #2413 Datetimetickformatter format attr ignores %n %t chars
    - #2486 Test_matrix errors
    - #2508 [starter] Multiple select doesn't work on linked_tap_server example
    - #2515 [docs] Doc: broken plots in examples
    - #2518 [docs] Clarify docstrings on timeseries
    - #2533 Compat/seaborn/violin.py is broken
    - #2559 Support camelcase css names
    - #2631 [bokehjs] Dropdown always returning the last menu item
    - #2645 [bokehjs] Fix previewsavetool dom elements not being removed
    - #2651 [docs] Sphinxcontrib-napoleon extension loaded incorrectly
    - #2658 [docs] Fix typo in legend user guide: s/p.grid/p.legend/
    - #2664 [bokehjs] Inconsistent handling of `null` in common/properties.coffee
    - #2665 Gear.{angle,module} have their types mixed up
    - #2669 [docs] Broken link for css colors
    - #2674 [bokehjs] [regression] Renderers are still sorted improperly
    - #2682 Updating glyph style from javascript not working
    - #2690 [docs] Fix typo on image glyph docstring
    - #2698 Plot.text(legend="") results in console traceback and clipped legend rendering
    - #2708 [docs] Fix typo in example code of server deployment docu
    - #2709 [bokehjs] (0.9.3) bokehjs not loading in ipython notebook
    - #2712 [examples] Fixes for the us_marriage example
    - #2728 [bokehjs] Html escaping in hovertool not working
    - #2742 [build] Fix upload of js and css into the cdn
    - #2755 [bokehjs] Components on multiple objects duplicates objects in all_models
    - #2767 [tests] Fix comflict (not merge conflict) because of those inter-related prs
    - #2770 Remove hash from elementid
    - #2773 [tests] Disable canteen and xfail integration test
    - #2779 Hotfix/taptool not responding to callback
  * features:
    - #1238 [starter] Support horizontal or vertical spans (similar to aaxhspan/axvspan in matplotlib)
    - #2392 Alerts for the "white screen of death"
    - #2455 Active tab not reflected
    - #2537 [examples] Interactive example: u.s. marriages and divorces chart with tooltips
    - #2614 Add a warning for : in categorical strings
    - #2625 Add background fill properties for legend
    - #2626 Add channels to "extra" section in meta.yaml
    - #2627 Make raw_components version of bokeh.embed.components
    - #2671 [bokehjs] [build] Clean up gulp source mapping
    - #2739 Do not zoom if boxzoomtool selects range <= 5 pixels
  * tasks:
    - #1984 [tests] Investigate the use pytest instead of nose
    - #2117 [docs] Mention nonselection_glyph and selection_glyph options in tools documentation
    - #2419 Setup.py not deleting pycs
    - #2499 Use bokeh.$ in server test template tab_play?
    - #2544 [docs] Docstring for hovertool needs updating as does now work with line
    - #2581 [docs] Columndatasource.from_df class method doesn't return columndatasource instance
    - #2609 Hotfix/fix docs
    - #2612 [docs] Server error https://bokeh.pydata.org/en/latest/docs/gallery.html
    - #2613 [docs] Small changes to development documentation
    - #2642 Add aliases to --build_js/--install_js in setup.py
    - #2650 Fix to take version into the fab deploy script
    - #2654 [docs] Clean up models section of reference guide
    - #2660 [build] Add support for --build-dir argument to gulp build
    - #2668 Remove the data tables example from plotting
    - #2691 Better hit testing for quads
    - #2697 Transfer demos from digital ocean to aws
    - #2703 Prevent bokeh from eating scroll events if wheel tool isn't active
    - #2706 Setting node to current stable (0.12) on travisci
    - #2714 [build] Change binstar to anaconda after some name changes in the anaconda stuff
    - #2718 [tests] Added mocha test for wheel event propagation
    - #2726 [tests] Task/selenium tests
    - #2727 [branches] [tests] Broke out into functions for more testable code
    - #2735 [branches] Added simple test to show that tz always uses utc
    - #2778 [examples] Collect hotfix for examples and release highlights

2015-07-23    0.9.2:
--------------------
  * bugfixes:
    - #735 Inconsistent conversion of np.nan to json data in bokehjs
    - #1005 Nan in data source column causes problem with glyph interface
    - #1039 Bokeh server can display an empty document without any visible errors
    - #1075 [tests] Test failure if websocket client is not installed
    - #1139 Hover tool swaps sides at an off-center position
    - #1176 Session.store_document() fails in table_server example
    - #1264 Stock app fails to refresh after drop down is updated
    - #1381 Fill_color argument doesn't handle rgb(a) tuples properly
    - #2513 Fix release script failures
    - #2514 Bug: all patches vanish on selection
    - #2524 Setting a fixed font size value as a string is deprecated warnings
    - #2529 [docs] Internal server error on quickstart
    - #2582 [bokehjs] [regression] Slow plot rendering for 0.9.1
    - #2586 [bokehjs] Decimated glyph needs visuals set also
    - #2593 [docs] Fix typo in charts user guide
    - #2600 [bokehjs] Hotfix/fixed ticker
  * features:
    - #194 [widgets] Widget/controls integration
    - #2379 Get a warning about an invalid column name
    - #2496 Improve mouseover information in texas example
    - #2548 [bokehjs] Need more control over ticks and gridlines
  * tasks:
    - #2441 Warning when instantiating plot with no arguments
    - #2540 Add console warning when bokeh-plot fails
    - #2541 [docs] Breaking out inline plot examples in user guide into files
    - #2543 Mpl update
    - #2546 Clean up examples, use standard bokeh.io output
    - #2547 [docs] Fix typo in components deprecation message
    - #2554 [branches] Fix bug on ie (avoid using indices)
    - #2577 [docs] Editing up to concepts
    - #2598 Serializing data with numpy optional
    - #2605 Hotfixes 0.9.2

2015-07-03    0.9.1:
--------------------
  * bugfixes:
    - #1254 [docs] Setting small plot_width or plot_height to categorical plot without min_border
    - #1255 [docs] Bokeh.embed.components second parameter not optional
    - #1926 [docs] Tap_select tool is actually tap
    - #2040 Expose level parameter in python
    - #2161 Color tuples not supported
    - #2176 Fix error: unable to parse uri to data
    - #2245 Bokeh-server --url-prefix is being ignored
    - #2282 [starter] [tests] Testmatrix script not in sync with bep 2
    - #2303 [build] Tagging on release produce wrong names in binstar packages
    - #2306 [bokehjs] [regression] Fix issues preventing bokehjs 0.9 working on jsfiddle site
    - #2311 [bokehjs] [docs] Broken link to help pages from bokeh plots
    - #2316 Text glyph font size from columndatasource field not working in 0.9
    - #2329 Diamond/diamondcross both show diamonds
    - #2336 [docs] Categorial heatmap gallery example missing (bad path)
    - #2338 Valueerror: min() arg is an empty sequence
    - #2356 [bokehjs] Force glyphs to always beginpath before rendering
    - #2357 Crosshairtool lacks "dimension" property
    - #2359 [docs] Animated line and animated glyph gallery examples are broken
    - #2365 [examples] Compat/seaborn/sinerror.py is broken
    - #2366 Patches doesn't render with reversed ranges
    - #2376 Hover on discontinuous patches
    - #2396 [bokehjs] [docs] Tools seems to be broken in latest version of chrome and chromium
    - #2416 Datetime scalar transformation loss of resolution
    - #2431 Datarange1d start and end bug
    - #2436 Bokeh jquery overriding previously loaded jquery
    - #2445 Prevent non-compliant json generation
    - #2459 Hotfix for components
    - #2478 [examples] Pin seaborn version
    - #2482 Deactivate tests before building to avoid huge packages
    - #2484 Use the correct extension
    - #2498 Use bokeh's jquery for server template
  * features:
    - #602 Add object integrity validation
    - #1727 Add categorical y axis
    - #1754 `to_bokeh` ignores alpha
    - #1873 [docs] Palette argument for charts not well documented
    - #1960 Throw exception if nonexistent keyword arguments are given
    - #2100 Fix handling of initial columns in crossfilter
    - #2213 Feature: bokeh-server with https enabled
    - #2335 Tab completion for splattable lists
    - #2348 Extend embed.component to let multiple objects be rendered in multiple divs
    - #2354 Add support for `styles` in google map `map_options`
    - #2368 [bokehjs] Minor grid lines
    - #2371 [docs] Add mailing list to gmane
    - #2390 [examples] Slider demo - animated bubble
    - #2410 Allow users to specify jinja2 template variables
    - #2411 Task/add range update callback
    - #2465 Callback for box selection tool
  * tasks:
    - #850 [docs] Clarify how axes can be labelled
    - #853 [docs] Widget documentation
    - #2234 [bokehjs] Better bokehjs debug mode
    - #2293 [docs] [starter] Update bep2 install instructions
    - #2302 Updating bokeh server image
    - #2305 [docs] Server section on user guide
    - #2308 [build] [docs] Improve some tooling around version reporting
    - #2309 [docs] User guide improvements/typo corrections
    - #2313 [docs] Sampledata.download() defaults to home directory
    - #2320 Remove extra whitespace
    - #2322 [docs] [doc] changed `tap_select` to `tap`
    - #2337 [docs] Change binstar.org references to anaconda.org references
    - #2342 [build] Remove sbt-based build system
    - #2343 [docs] Keep output html filename consistent with exercise name
    - #2358 [examples] Added palettes example to gallery
    - #2400 [branches] Extend embed.component to let multiple objects be rendered in multiple divs
    - #2403 [branches] Added test, improved conditionals
    - #2404 [branches] Added error prompt wth message
    - #2406 [branches] Added document support alongside plotobject
    - #2407 [branches] Line too long
    - #2412 [bokehjs] Standardize callback interface with args
    - #2420 Build enhancements
    - #2421 Quasi-complete automation
    - #2433 Spectrogram improvements
    - #2440 Allow gridplot.select uses name & type paramters
    - #2457 [examples] Add example plotting widget with play stop
    - #2477 Add hovertool callback examples
    - #2481 [docs] Open docs pr for 0.9.1 release
    - #2483 [examples] Open pr for small example (only) updates for 0.9.1
    - #2485 Elide some unnecessary checks for map plots
    - #2510 [docs] Add 0.9.1 release highlights
    - #2511 Revert some automated commits

2015-05-15    0.9.0:
--------------------
  * bugfixes:
    - #746 Grid without axis?
    - #1479 Indicator of stacked hover tooltip has vertical offset
    - #1599 Glyph renderer not masking data before rendering
    - #2066 Angle property not working for square glyph
    - #2095 Examples/glyphs/data_tables.ipynb error
    - #2105 Release_update.sh is generating a superfluous "id" package
    - #2119 Simpleapp broken
    - #2124 Stock_app_simple.py does not respond to 2. change on the dropdown field
    - #2128 [examples] Simpleapp stock demo histograms not updating on selection
    - #2130 [docs] Fixed typo in documentation
    - #2134 Selections not working with nominal/categorical axis
    - #2153 [docs] Fix typo, example has two css, one should be js
    - #2158 [charts] Color cycles for bokeh charts
    - #2180 Add shrinkwrap to lock to versions and upgrade jsdom
    - #2217 [regression] Selection_histogram example broken after new hit_test redesign
    - #2228 [docs] Update quickstart.rst
    - #2231 [bokehjs] Multiselect broken
    - #2233 [bokehjs] [regression] Vboxform broken
    - #2238 Avoid layout breaking when simpleapp managing buttons
    - #2246 [regression] Update datarange1d that wasn't updated on notebook after last api change
    - #2253 Run binstar upload in the correct 'scripts' location
    - #2256 Use another env variable is case of weird previous use of the i var
    - #2258 Pin binstar until binstar build fix the platform path problem
    - #2261 [docs] Fix two small typos
    - #2262 [bokehjs] Direction is not being passed to draw_legend in annular wedge, arc, and wedge
    - #2269 [bokehjs] [regression] Hbox/hplot broken
    - #2278 Examples failures
    - #2280 [docs] Doc: grammar fix for intro to models
  * features:
    - #351 Cycle colors for plots
    - #1486 Add line hit testing and hover inspection along lines
    - #1517 Change datarange objects to query renderers for preferred bounds
    - #1519 [starter] Add simple lod downsampling on the client side
    - #2098 Decimal.decimal cannot be sent across session
    - #2112 Remove as much of src/vendor as is practical
    - #2137 Move data sources on to glyphrenderers
    - #2140 [bokehjs] [build] Streamline bokehjs build in develop mode
    - #2151 [docs] Add cdn links in embedding docs
    - #2156 Add an option to remove the `help` button of the bokeh toolbar
    - #2174 Simple callback action
    - #2178 Add a "callback" to a source.selected event
    - #2185 Allow users to specify a desired number of ticks
    - #2207 [docs] User guide rewrite
    - #2275 [examples] Initial commit of color_sliders.py
  * tasks:
    - #1751 Remove pinned packages
    - #2038 [bokehjs] [build] What is the best way to develop bokehjs with incremental rebuilds?
    - #2078 [tests] Use pyflakes
    - #2087 Simplifying glyph units
    - #2106 Setup.py build message improvements
    - #2126 [examples] Update selection histogram example
    - #2132 Reduce bokehjs boilerplate
    - #2139 [docs] Updating exercises to match current master
    - #2146 Automatic devel build only in py27 in the new travisci matrix
    - #2168 Remove extraneous comma from unemployment csv
    - #2196 Bokehjs install failing because dependencies source doesn't exist
    - #2211 [bokehjs] [regression] Make relative dev work again
    - #2224 Make a script to check for dev and docs dependencies
    - #2237 [docs] Update readme.md
    - #2241 [build] Obsolete protocole sslv3
    - #2254 Revert "run binstar upload in the correct 'scripts' location"
    - #2257 Follow-on for user guide
    - #2285 Setup.py: note that this also works with `develop`
    - #2296 Remove '*' imports from examples
    - #2298 [tests] Add info in the warn message about some missing dependecies

2015-03-25    0.8.2:
--------------------
  * bugfixes:
    - #1064 Invoking nosetests doesn't always work properly
    - #1659 Explicit notebook display codes not working
    - #1901 Charts xlabel and yabel defaults
    - #1913 [build] Try to make y.y.yrc, not y.y.y.rc in dev build to avoid being listed above y.y.y release
    - #1953 Develop installation fails: no such file or directory: '/usr/lib/python3.4/site-packages/bokeh.pth'
    - #1956 [starter] Two instances of autoload_server??
    - #1973 [starter] Logging.basicconfig should not be called by 'import bokeh'
    - #1978 Restore glyph/trail.py (and fix the hover not working)
    - #1983 Never use empty dict/list as default argument
    - #1988 [starter] Use absolute_import throughout
    - #1990 [bokehjs] Bokeh should use a private jquery
    - #2001 [bokehjs] Map config not used for main.coffee it seems
    - #2002 Check boxplot equation
    - #2011 [docs] Fix grammar error
    - #2024 [bokehjs] Ugly buttons when plotting inside notebook on firefox 36
    - #2041 Load_notebook depends on utils.py which depends on flask
    - #2048 [charts] Cannot seem to make x-values different than default in line
    - #2063 [build] Fix dev fingerprint check on version
    - #2067 [bokehjs] Spectrogram coffee needs recompile
    - #2074 [docs] Typo in stock_applet docs for moving quantquote data
  * features:
    - #1218 Use production quality server for bokeh-server
    - #1784 [starter] Automatically fill masked arrays when encoding
    - #1797 Preliminary work to get bokehjs working in node.js
    - #1881 Feature/simpleapp
    - #1898 [bokehjs] Ajax realtime improvements
    - #1998 [docs] Visual hierarchy on autogenerated docs could be clearer
    - #2033 Is there any reason why p.select() shouldn't take **kwargs?
    - #2062 [docs] Userguide intro and interfaces
  * tasks:
    - #1916 Collect implicit interfaces into a single module
    - #1927 [docs] [examples] Bokeh-notebooks needs update to use the new plotting api
    - #1936 Use _.isxxx(x) instead of typeof(x) == "xxx"
    - #1949 [examples] [tests] Tests scripts enhancements
    - #1961 [tests] Don't log intentional exceptions during tests
    - #1966 Release 0.8.1
    - #1970 Change default bokeh server backend to "memory"
    - #2010 Deprecate vbox/hbox in plotting and charts
    - #2017 [tests] Update tests/travis/nbexecuter to ipython 3
    - #2023 [docs] Update/refresh installation guide and quick start
    - #2043 [docs] Incorporate quickstart feedback
    - #2047 Clean up __init__.py
    - #2051 Simplify bokeh/__init__.py even more
    - #2070 [docs] Minor style changes to interfaces docs
    - #2073 [docs] User guide edits

2015-02-23    0.8.1:
--------------------
  * bugfixes:
    - #1801 Bokeh server crashing when reloading flask app
    - #1909 Make tooltips properly centered on data points
    - #1910 [docs] [examples] Fix charts gallery
    - #1914 Remove spurious curplot
    - #1918 Nameerror: name 'jsbuild' is not defined
    - #1920 [regression] Examples/plotting/file/hover.py broken after 0.8 release
    - #1921 [docs] [regression] Tutorial gallery is broken
    - #1922 [examples] App_reveal fails importing old plotting stuff
    - #1925 [docs] Docs error in chart section
    - #1933 [docs] Bokeh glyph quick reference 404 (docs)
    - #1940 Spectrogram needs updating to use figure()
    - #1943 `publishing` example from the `embed` directory fails
    - #1945 [docs] More broken doc links
    - #1946 [docs] Fix charts on userguide showing old functionality
    - #1963 Feature/fix ar zoom
  * features:
    - #899 [docs] Hosted server examples in the gallery
    - #1929 [starter] Image glyph method should have a default palette
  * tasks:
    - #1731 [docs] Add a section about bokeh-scala/bokeh.jl/... to main documentation
    - #1905 Better error messages for blaze version mismatch
    - #1908 Release 0.8.0
    - #1962 Hot fixes for examples

2015-02-16    0.8.0:
--------------------
  * bugfixes:
    - #165 May need to dilate canvas 1px
    - #766 Resize handle offset when there are axis labels
    - #833 Screen units for x,y
    - #1221 Call to `show()` not displaying figure in ipython notebook
    - #1286 Decouple show method in charts
    - #1296 Map_from_screen broken
    - #1305 [docs] `cd sphinx; make html` fails
    - #1522 Tools "help button" issues
    - #1578 Donut charts example not drawing annular lines
    - #1584 Investigate serialization of alpha values
    - #1702 [build] Running bokeh-server in development environment under windows
    - #1705 [docs] Reset doesn't reset box select
    - #1709 [examples] Selection_update stack trace when doing pan/zoom/select ops
    - #1717 [docs] Documentation: wrong title font property name in user guide
    - #1721 [docs] Documentation: user guide describes unsupported axis locations
    - #1723 [bokehjs] Setting plot_{width,height} doesn't work
    - #1738 [docs] [starter] Reference guide formatting issues
    - #1749 [bokehjs] Datatable requires columndatasource to have an `index` field
    - #1753 Make sure sys is available for sys.exit() call on failure
    - #1761 Importing bokeh breaks standard python if ipython also installed
    - #1775 Using bokeh keyword in host url affect config.prefix value
    - #1787 [docs] Autoload script examples out of date
    - #1798 Use_prefix for include not functioning completely correctly
    - #1809 Seems to be some curplot leftover in the codebase
    - #1821 Bokeh ipython magic imports plotting.hold, but plotting.hold is dead
    - #1824 [regression] Bokeh_pretty doesn't have an effect
    - #1835 Enable runs of travisci in branches tagged with xxx.dev[rc].xxxxxxxx form
    - #1837 Fix any caracther in the ruby regex to support the tag containing sha
    - #1838 Hotfix for files encryption
    - #1839 [docs] Fix parameter name: host -> root_url
    - #1840 Fix broken werkzeug import in bokeh-server
    - #1864 Fix charts not working with server
    - #1876 Boxplot chart does not work with iterables of lists
    - #1896 [docs] Fix up docstring table rendering in sphinx
    - #1897 [docs] Make source location in glyphs docstrings be actual links
    - #1902 Feature/server gallery
    - #1904 [examples] Change [x,y]_label to [x,y]label in charts examples
  * features:
    - #380 Add some examples of mplsupport inside ipython notebooks
    - #586 [tests] Add sphinx tutorials to travis
    - #626 [starter] Make radius dimension configurable for circles
    - #749 Adding support for a constrained box zoom
    - #822 [docs] Update docs with architecture diagram
    - #842 [bokehjs] Add axis label formatters (sprintf-style, etc.)
    - #889 Bokeh.plotting.patches line_dash argument only takes a list
    - #987 [starter] Pan and zoom in categorical plots
    - #1091 [bokehjs] Text autocomplete widget
    - #1217 Make bokeh-server gunicorn friendly
    - #1257 Embedding using matplotlib compatibility layer
    - #1281 Scatter doesn't have box zoom
    - #1375 Load bokehjs in a notebook during `import bokeh`
    - #1464 Charts palette should be configurable
    - #1478 [bokehjs] Hoverplot.tooltips should allow html and/or markdown and/or
    - #1515 Restore bokehjs interface
    - #1546 We need to support bokeh[version].[min].js[css] in the cdn to support devel builds
    - #1574  charts should be subclasses of plot
    - #1635 Implement blaze/remote data source to support streaming data in plots
    - #1682 Ajax/json data source
    - #1703 Extending/fixing crossfilter
    - #1730 Being able to hide the axis
    - #1733 Adding horizon high-level chart (clean version)
    - #1734 Bound needs to accept datetime obects
    - #1746 [docs] Add simple inline examples to all or most plotting.py glyph functions
    - #1768 Enable tabbed faceting on crossfilter
    - #1779 Try to only build on master
    - #1780 Negative bar charts
    - #1786 [starter] Vbox/hbox should accept single list as well
    - #1788 Build on travis ideas
    - #1792 Allow grids to shade alternating bands
    - #1795 [bokehjs] Tap+open url
    - #1799 Copy on write
    - #1802 [examples] Add glyphs/linked_tap_server example
    - #1815 Step chart should use line, not segment
    - #1816 [docs] Add bokeh-plot examples to chart docstrings
    - #1823 Add support for bokeh_dev=true python something.py
    - #1858 Feature/multiuser applet support
    - #1862 Hotfix to support local docs with a correct bokehjs
    - #1887 Feature/blaze interface
  * tasks:
    - #906 [docs] Axis and grid needs an update in the user guide
    - #946 [docs] Columndatasource documentation update
    - #1060 [docs] Document that some ar example need scipy + pil to work
    - #1148 [build] Dev build sdists do no carry correct version info
    - #1170 [docs] Need documentation for bokeh server
    - #1503 [bokehjs] Remove unused datafactorrange
    - #1518 [build] Build/release automation improvements.
    - #1540 Some improvements on the devel build
    - #1568 Programmatically upload bokeh js/css to the container
    - #1571 Remove deprecated plotting api
    - #1593 Scatter plot demo with linked density histograms
    - #1656 Plotting.gridplot setting id from name
    - #1687 Release 0.7.1
    - #1688 [docs] Documentation build improvements
    - #1690 [docs] Sphinx autoprops dependency for bokeh models
    - #1692 [docs] Better reported version for deployed dev docs
    - #1694 [docs] Sphinx plot extension directive
    - #1695 Pin scipy
    - #1696 Selection/histogram minor issues
    - #1697 Load_notebook doesn't work with ipython master
    - #1712 [examples] Charts examples should split file/server/notebook
    - #1728 [docs] Timeseries tutorial formatting improvements
    - #1739 Create test matrix script
    - #1743 [docs] Add to doc best use of push_notebook for interact style things, not streaming
    - #1745 Catch ioerror in load_notebook and add logging to the python side
    - #1747 [docs] Document all model attributes
    - #1750 Temporary fix until conda get fixed with python3
    - #1755 Wip fix for conda build
    - #1758 Check apps are in sync with the new api
    - #1765 Task/remove bokeh js
    - #1766 [examples] [tests] Move/rename examples.html
    - #1770 Remove debugging lines
    - #1771 Add doc build to the devel build script
    - #1777 Feature/deploy
    - #1794 [docs] [labels] Add "starter" tag
    - #1813 [docs] Document new charts design
    - #1817 Split chart builders into a sub-package
    - #1818 [tests] Improve/re-org charts tests
    - #1819 Use properties for private models and builders in bokeh.charts
    - #1834 [build] Pin conda-build to get travisci running again
    - #1843 Rename range property to interval
    - #1846 [docs] Add proper docs for properties.py
    - #1860 [docs] Split up dev guide into multiple files
    - #1867 [docs] Clearer docs, new section about installing npm and nodejs
    - #1870 Rename get_data, get_source, prepare_values, draw builders methods
    - #1884 Remove click for dependencies
    - #1885 Axis.hide should have been called axis.visible
    - #1889 Delete click from the conda recipe
    - #1899 [docs] Change docstring example with better data

2015-01-12    0.7.1:
--------------------
  * bugfixes:
    - #127 Implement proper caching headers and gzip on bokeh.pydata.org
    - #167 It is possible to outrun the resize tool edit
    - #236 Opening a notebook containing embed.js causes typeerror if bokeh-server was restarted
    - #382 Hover tool pops up in odd places in the notebook
    - #520 Let escape reset selections
    - #593 Gridplot breaks layout / overlaps next input cell in ipython notbook
    - #821 Need explicit synchronization for render loop
    - #1265 Handontable rendering issue
    - #1316 Examples/app/stock_applet does not work when embedded
    - #1385 Server/image.py example failing on master
    - #1397 Dropdown tool buttons don't have tooltips and dropdown menus broken
    - #1409 [tests] Tests sometimes fail with `websockettimeoutexception` on travis-ci
    - #1490 Scatter chart auto creates wrong x/y labels
    - #1510 [regression] Hover tool behaviour with multiple renderers
    - #1513 [build] Update tutorial gallery to new plotting.py api
    - #1523 [docs] Gallery thumbs out of sync
    - #1527 Dot chart segment badly renders in some use cases
    - #1529 Donut chart is broken when called with dataframe inputs
    - #1535 [docs] Obsolete returned value in plotting.figure() documentation
    - #1539 Debugjs setting was broken
    - #1545 Grey9 very light with 0.7.0
    - #1551 Donut chart is broken when called with iterables of non float values
    - #1554 Mpl.to_bokeh() should return a handle to the plot
    - #1556 Travis ci failures
    - #1592 Bokehjs unrecoverable errors in notebook
    - #1601 Plotting.save still relies on global state
    - #1605 [regression] Remove 0xa0 characters (and encode source files properly)
    - #1606 $ can get overridden in the notebook
    - #1613 [docs] Corrected typo to fix issue #1612
    - #1621 Charts behaviour when notebook=true and server arguments are specified
    - #1622 Minor selection bugs
    - #1625 Plot.add_tool wrong error message
    - #1627 [regression] Resources(..., minified=false) in bokeh.plotting
    - #1628 Typo fix ``line_with`` -> ``line_width`` in ipython interactive widgets notebook example
    - #1643 Don't request_render() twice during plot initialization
    - #1644 Hovertool with snap_to_data=true fails on some glyphs
    - #1654 Line downsample zoom to fine-level detail results in error on js client
    - #1658 [docs] Fix typo
    - #1660 Pan/zoom being allowed on categorical charts
    - #1679 Slider should accept float stepwise
  * features:
    - #190 Selection architecture
    - #596 Need to support italic+bold font style in textproperties enum
    - #646 [docs] Specifing a parameter without any usage does not result in a warning
    - #696 There should be a way to control order that renderers are drawn
    - #978 Bokeh command line tool
    - #1134 Add_glyph()'s signature should have `glyph` as the first argument
    - #1220 Histogram normalization
    - #1459 Charts should make tools configurable
    - #1484 Add glyphs/sprint example
    - #1489 Authentication refactoring
    - #1507 Odd histogram behaviour
    - #1516 Easy range1d interface
    - #1524 Some matplotlib markers are not handled correctly
    - #1538 [tests] Add charts base tests
    - #1557 Mpl.to_bokeh() should use the same tools found in bokeh.plotting.figure
    - #1567 Use the containerized travisci infrastructure
    - #1629 Charts.gmap class
    - #1636 Gridplot should accept none for empty positions
    - #1657 Add/improve minimal cli features
    - #1663 [docs] [documentation] on embedding
    - #1665 [docs] Embed simple
  * tasks:
    - #1129 [docs] Bokehjs documentation nor source does not mention that it uses jquery and jqueryui
    - #1406 Remove bokeh.{objects,glyphs,widgets}
    - #1471 [tests] Add tests for dataadapter and new charts implementation
    - #1472 Remove bokeh.charts.categoricalheatmap and promote heatmap as only heatmap chart available
    - #1475 Improve bokeh.chart code style and docstrings
    - #1506 Release 0.7.0
    - #1537 Use conda graphviz package
    - #1544 Use more specific type for plot.{left,right,above,below}
    - #1548 [docs] S/dic/dec
    - #1550 [docs] Fixed typo: bojehjs -> bokehjs
    - #1553 [docs] Update readme.md
    - #1575 Don't "fix" singleton array case when expected type is array
    - #1579 [docs] Auto document json for bokeh.models
    - #1580 Provide hooks to easily dump models with all properties
    - #1581 [docs] Write script to integrate all bokeh.models and their json into dev docs
    - #1583 Remove crufty glyph properties
    - #1590 Add missing properties to ticker classes
    - #1593 Scatter plot demo with linked density histograms
    - #1594 Additional kernels for numba examples
    - #1596 Streaming netcat example for bokeh cli tool
    - #1597 Interactive filter using cli tool
    - #1598 Twitter scrapping map demo using cli tool
    - #1600 [docs] Documenting relations between bokeh and yhat/ggplot?
    - #1604 [tests] Add some widget testing and minor fix for object testing
    - #1607 [docs] Update release notes on pydata.org
    - #1608 [docs] Docs build/deploy improvements
    - #1610 [tests] Examples using yahoo's finance data should use a fixed period
    - #1612 Typo in chartobject error message when filename argument is missing
    - #1619 [docs] Fix broken link to quickstart
    - #1661 Small fixes or updates to demos leading to 0.7.1 release
    - #1675 [docs] Misc docs updates leading to 0.7.1 release

2014-12-05    0.7.0:
--------------------
  * bugfixes:
    - #598 Hover tool doesn't work with gridplot
    - #616 Less build doesn't properly detect changes
    - #623 Issue with inverted ranges
    - #704 Errow message in windows
    - #798 Embedded notebook style problem
    - #802 Toolbar hidden behind gridplot when wrapped
    - #804 Spaces in file name causes problems when distributing via rdist on unix-like os
    - #808 Cannot style minor ticks
    - #827 Spectrogram app not working: custom.coffee missing
    - #870 Need real solution for mpl plot clone problem
    - #881 Changes script output needs manual intervention
    - #919 Bokeh/examples/glyphs examples broken
    - #926 Legends don't appear on a plot in the order they're given
    - #927 [docs] Bad state on save
    - #936 Remove google maps js from _page_base.html
    - #972 Hover in plots stops working in angularjs upon navigation
    - #983 [docs] Bar chart is not documented
    - #1021 Running stock_app and slider_app fails on reload
    - #1027 [regression] Bokeh 0.5 over 10x slower than 0.4.4
    - #1055 Current setup.py install released js with devel build using pip but not with conda
    - #1062 Cleaning some examples failures
    - #1076 [tests] Mpl 1.4.0 is causing failures in test through the mplexporter
    - #1192 `conda install bokeh` not installing pyzmq
    - #1202 Gridplot() renders new toolbar in a funky way
    - #1245 Wheel zoom not working with chrome
    - #1252 Tool order inconsistent across all examples
    - #1267 Mapoptions json encoding problem
    - #1271 Fix for axis types string comparision (is vs ==)
    - #1287 Sorting/selecting broken in ht example
    - #1293 [regression] Plots with vertical toolbar have extra space above the plot
    - #1295 Make selection geometry available to the python side
    - #1298 Line_color=none not respected
    - #1299 Multiple plots now stack horizontally
    - #1300 Hover tool does not display
    - #1303 Stocks app histograms do no update on selection
    - #1306 Crossfilter filter does not work
    - #1313 'help' button text box sometimes disappears before you can click 'learn more'
    - #1314 Tools don't have a blue underline in notebook and server examples
    - #1319 Bokeh.charts.bar displays overlapping bars
    - #1320 Multiple gmapplot instances on a single document causes errors
    - #1337 Build_palettes.py not python 3 compatable
    - #1338 Bugfix/py3 palettes (closes #1337)
    - #1342 Linked brushing broken in notebook
    - #1343 Gridplot causes javascript error in notebook
    - #1348 Fix gridplots with hover tools
    - #1367 Properly set map div height
    - #1377 Data table not displaying
    - #1378 [docs] Fix spelling: s/embded/embed/
    - #1380 Fix "python setup.py build"
    - #1384 - fixing document merging
    - #1386 [regression] Fixing crossfilter
    - #1400 Hasprops.clone() should use changed_properties_with_values()
    - #1403 [build] Meta.yaml doesn't specify minimal tornado version
    - #1414 Broken server downsample -- property 'type' not found
    - #1415 Server downsample -- pandas error
    - #1417 Fix typo
    - #1422 Strange "nan" string in some mpl plots
    - #1425 Bokeh cdn assets are currently unavailable
    - #1427 Plotting/file/periodic and plotting/file/hover broken on master
    - #1429 Broken examples on master
    - #1431 [windows] Notebooks/animated not working (only on windows) on master
    - #1433 Tools get lost on grid plots
    - #1435 Embed fontawesome's fonts in css (to avoid 404 errors)
    - #1442 [regression] Fix spectrogram issues
    - #1446 Plotting/server/image example broken on master
    - #1461 Some gridplot issues
    - #1466 Abstract rendering -- deserialize on client js not working
    - #1474 Charts markers not showing correctly on legend
    - #1485 More specific css - otherwise when bokeh plots are embedded inside list
    - #1496 Fix unitialized var usage in bokeh.index
    - #1500 Fix charts not working with server output
  * features:
    - #72 Mechanism to express color mappings to bokehjs
    - #144 Add an example with multiple axes
    - #543 Websockets refactoring
    - #546 Plotting.show for server session should just show a single object
    - #547 Don't include gmaps api script in templates
    - #683 Remove pandasdatasource
    - #693 Examples/app/applet should use bokeh.sampledata
    - #761 [docs] Hard to find example notebooks
    - #774 Modify build_and_install.sh to handle release candidates
    - #849 We need a tools refactor
    - #863 Allow plot frame/tools to be configurable
    - #911 Rewrite spectrogram demo to use mostly python
    - #918 Multiple axis exposed on the python side
    - #1198 Abstract rendering: version check
    - #1225 Replace glyphspecs with the properties system
    - #1240 Support for geojs maps
    - #1273 Feature/geojs
    - #1285 Single axis zoom
    - #1294 Feature/more tools
    - #1309 Passing iterables straight to bokeh.charts (histogram)
    - #1321 Small tweaks to the coffeescript
    - #1327 Add 'help' to properties
    - #1345 Refactor plotting interface
    - #1351 Allow to specify alternative types for properties
    - #1359 Cleanup of table widgets
    - #1368 Add option (maybe default?) for bokeh logo to be de-saturated and placed on the rhs of the toolbar
    - #1372 More systematic approach to tool validation
    - #1374 Feature/server startup cleanup
    - #1392 Support subtyping for view models
    - #1411 Update examples to use new plotting api
    - #1437 Need methods to clear docs
    - #1451 Add glyphs/calendars example
    - #1488 Method to update data source contents in the notebook
  * tasks:
    - #836 Dev packages should be available at least for linux-64 and osx
    - #862 Remove data files in bokeh/tests
    - #880 Credentials for the release
    - #907 Rename widgetobjects.py
    - #909 Simplify dataspecs
    - #950 [docs] Update quickstart/bokeh.js build instructions
    - #999 Migration to bokeh organization
    - #1004 Change setup.py - building js
    - #1243 Clicking buttons in plots embedded in forms triggers form submit
    - #1250 Add more properties to handsontable, e.g. {row,column}_resize
    - #1251 Tools hidden by default in plotting/server/elements.py
    - #1253 Release 0.6.1
    - #1261 [docs] Add info about sample data download to user guide and faq
    - #1310 Rename glyph-> glyphrenderer and baseglyph -> glyph
    - #1311 Introduce bokeh.api module
    - #1325 Set {np.}random.seed(1) in examples/test
    - #1330 Reduce weight of gallery images
    - #1333 [docs] Dvreed77/palette docs
    - #1336 Hotfix for problem with pandas 0.15
    - #1353 Remove 'type' property from guides
    - #1357 Add missing icon files
    - #1364 Replace continuumio organization with bokeh and remove kinectjs
    - #1370 Removing gevent
    - #1371 Remove objectexplorer
    - #1382 Improve implementation of slickgrid-based datatable
    - #1389 Remove unused ar views, inherit from hasproperties instead of hasparent
    - #1391 [docs] Improve documentation: make it easier for users to get started
    - #1401 Hotfix/figure subclass of plot
    - #1407 Deprecate bokeh.{objects,glyphs,widgets}
    - #1408 [docs] Add contributing guidelines
    - #1418 [tests] Increase socket timeout
    - #1424 [tests] More unit tests
    - #1436 [BEP] [docs] Conventions for tying issues and prs
    - #1458 Try to recover the slideshow example featuring the embed api
    - #1465 Task/examples
    - #1473 [docs] Document new bokeh.chart implementation
    - #1498 [BEP] [docs] Add bep 0 with meta-information about bep process
    - #1499 [docs] Add deprecations to glyph funcs on document
    - #1504 Documentation updates for release 0.7

2014-09-24    0.6.1:
--------------------
  * bugfixes:
    - #730 Hover tool failing
    - #854 Hover when hold is true
    - #947 Toolbar moves to bottom if window is not wide enough
    - #1144 Support rc candidates in devel builds
    - #1157 Active tool underline doesn't line up with gray bar
    - #1160 X overflow doesn't trigger vertical scrollbar
    - #1175 Toolbar icons remain in "depressed" state even after toggled off
    - #1179 [tests] Test script does not handle release number version
    - #1187 [regression] Toolbar changes break grid plots
    - #1195 Gmap plot zoom broken and has positioning error
    - #1200 Fix query for conjuctions
    - #1203 Bokeh-server -d: double prints server configuration
    - #1219 Need to store document in decorator
    - #1222 [docs] Inaccurate docstrings for xaxis() and axis() in plotting.py
    - #1226 Support devel build with miniconda 3
    - #1233 Use $.contains(...) to detect that element was added to dom
    - #1235 [docs] Bokehjs: website links and npm package not up to date (v.0.6)
    - #1237 [tests] Unpin matplotlib and delete mplexporter tests
    - #1249 Fix error instantiating close wrapper
  * features:
    - #992 Toolbar improvements
    - #1131 Button widgets
    - #1194 Expose google map type to python
    - #1197 Add glyphs/trail example (altitude profile + map)
    - #1216 Update version change script
    - #1223 [docs] Add axis labels to plots in tutorial
  * tasks:
    - #933 Make --build_js the default
    - #980 Complete hands on table
    - #1177 [docs] Add contributors.rst
    - #1180 [build] [docs] Updates to reflect not checking in bokehjs releases
    - #1181 Release 0.6.0
    - #1182 [docs] Continue improving the 0.6 docs
    - #1185 Support ipython 2.2.0 in bokeh_magic
    - #1208 Cleanup some ugly code in bokehjs (part 1)
    - #1209 Remove pinning of requests
    - #1212 Remove unused imports, standardise import order, etc
    - #1215 Use one codepath for py2 and py3
    - #1231 Code cleanup (part 2)
    - #1241 Task/docs 061

2014-09-09    0.6.0:
--------------------
  * bugfixes:
    - #111 When axis objects are located in data space (vs "min" or "max"), they should clip to plot bounds
    - #366 Hover tool sets cursor to crosshair although the tool is disabled by default
    - #852 Bokeh logo on plots should open bokeh.pydata.org in a new tab
    - #935 Fix boxplot and more refactor
    - #940 Fix conda.recipe on windows
    - #951 [docs] Some plots in the tutorial at bokeh.pydata.org render with title on top of plot
    - #953 [docs] Scatter example in https://bokeh.pydata.org/docs/dev_guide.html#scatter broken
    - #955 Plots in bokeh/examples/app/downloads not showing in dev-0.5.2
    - #1010 Xaxis() and yaxis() broken  in 0.5.2
    - #1012 Scatter broken in axis placement
    - #1019 Running the stock applet
    - #1023 Server-based notebook are broken
    - #1024 Multiple plots in a notebook not showing content in the first plot
    - #1028 [docs] Quickstart documentation suggests invalid resources output_file argument
    - #1036 Fix spectrogram axis locations
    - #1058 Show() shows previous plots in ipython notebook
    - #1059 Server_source_upload is failing on master
    - #1095 Box zoom tool does not draw zoom box
    - #1100 Request error hit our travis ci test
    - #1104 Ms / ns issue in protocol serialize/deserialize
    - #1114 Abstract rendering box-zoom+base-map
    - #1122 Fix broken logger statement
    - #1123 Hit testing is completely broken
    - #1124 Fix bug introduced when experimenting with logging
    - #1132 Updates to allow pip packages to install cleanly
    - #1133 Hotifx/crossfilter
    - #1138 Update tool hit testing to account for multiple raneges
    - #1142 Remove abstract rendering as a hard dependecy
    - #1145 Use none instead of "none" in toolbar_location
    - #1147 Fixed setup.py and add missing dependencies
    - #1151 Fix websockets in tornado 4.0 from notebook
    - #1154 Hotfix/toolbar notebook appearance
    - #1164 [build] [windows] Fix windows build
    - #1165 Added pyzmq and tornado as dependencies in the conda recipe
    - #1168 Hotfix/np int in ranges
    - #1174 Upgrade handsontable to fix scrolling issues
  * features:
    - #106 The x-axis of the stock example doesn't have a unit
    - #742 Tornado websockets (gevent optional)
    - #961 Big charts refactor
    - #981 Added stock example embedded into external flask app
    - #982 Feature/sin example
    - #1014 Add independent examples to bokeh chart
    - #1029 Extending ar integration with categories tools
    - #1038 Handsontable improvements
    - #1042 Allow remote connections to spectrogram demo
    - #1050 [tests] Update scripts/changes.py for bep 1
    - #1065 Don't repeat include properties' prefix
    - #1068 [tests] Improvements to examples/test (s3 conn, version detection)
    - #1070 [tests] Add test for new gear gylph
    - #1097 Upgrade rbush
    - #1102 Grouped pinning of upstream packages with bugs
    - #1106 [tests] Feature/charts tests
    - #1109 Feature/timeseries chart
    - #1110 Feature/object selection
    - #1113 Feature/toolbar
    - #1115 Abstract rendering resource consumption
    - #1126 Feature/heatmap
    - #1127 Feature/twinx
    - #1146 Clean up and improve the crossfilter
    - #1152 Updating css for different toolbar positions
    - #1158 Make select much more useful
    - #1169 Made scipy a soft dependency for chart histogram
  * tasks:
    - #754 [docs] Update dev_guide
    - #756 Copy wpp2012_sa_db03_population_quinquennial.csv to s3
    - #824 [tests] Example sampleapp not working
    - #986 Axis.location vs plot.{left,right,above,below}
    - #1001 Remove "default" from glyph specs
    - #1009 [docs] Possible error in bokeh boxplot tutorial and documentation code
    - #1041 Some usability cleanup
    - #1045 Don't include rejected issues in scripts/changes.py
    - #1046 [tests] Use conda-build 1.7.0 until get fixed
    - #1048 [docs] Better options for js building
    - #1057 Update readme.md
    - #1061 Cleaning some additional failing examples
    - #1066 Disable redis(-py) dependency on windows (#940)
    - #1071 Remove embed tool
    - #1072 Don't repeat color names
    - #1077 Mpl temp down
    - #1081 Made command line output less cluttered (and, in one case, less misleadi
    - #1083 [docs] [tests] Task/cleanup2
    - #1090 Update mpl support and charts to use the new add_* low level functions
    - #1092 [docs] License.txt in pypi?
    - #1096 Re-enable license comments in bokehjs
    - #1099 [docs] [tests] Task/cleanup3
    - #1119 [tests] Test_ar_downsample flaky; assumes dict keys sorted
    - #1140 Split user guide into separate docs
    - #1141 Collecting fixes for our examples
    - #1150 [labels] Add tag for build
    - #1156 Hover tool missing icon still?
    - #1161 [build] Copy examples into conda packages
    - #1163 Remove more unused widgets
    - #1171 [wip] updating documentation for 0.6 release
    - #1178 Task/update examples

2014-08-15    0.5.2:
--------------------
  * features:
    - #891 Using --tags with git describe
    - #901 Allow xfield and yfield paramters to be scalar values
    - #931 Add hovertool for patches
    - #942 Hit testing for patches
    - #976 Server-side colors and iso contours
    - #977 Add line property in `line_cap` to terminate segment with arrow
    - #995 Various improvements to example widget testing script
    - #996 Grid and axes improvements
  * bugfixes:
    - #242 Zoom does not work on firefox 26.0
    - #814 Bokeh-server starting error
    - #890 Documentation not correct for plotting and changing the title text font size
    - #892 Updated the title attributes in the docs example
    - #894 Minor documentation bug
    - #903 Fix case where colorspecs mishandled serializing to dictionaries when the value was unset
    - #910 Subtypes, such as numpy int64, are not considered instance of np.int
    - #912 Simplify canvas dom render, and fix toolbar positions issue
    - #913 Fix broken wheel zoom in firefox
    - #915 Not redirected to `/bokeh/` when i load the server
    - #917 Add return statement in welcome view (#915)
    - #929 Fixed axis location in categorical plots after layout landed
    - #943 Fix up plotting.py and js examples
    - #944 Check patch hit testing for split patches
    - #954 Plots not working in bokeh.plotting when passing columndatasources with column names different than 'x' and 'y' in dev-0.5.2
    - #956 All plots in charts.ipynb get the yaxis label cut in ipython notebook (dev-0.5.2)
    - #957 Fixed labels in charts interface
    - #960 Bugfix/server downsample
    - #962 Update _glyph_functions.py
    - #963 Circle glyph bug on if fill_color is not passed
    - #974 Fix missing mouse callbacks
    - #990 Examples/glyphs/daylight contains duplicated yaxis
  * documentation:
    - #932 Remove reference to "bokehjs site" on gallery docs

2014-07-23    0.5.1:
--------------------
  * features:
    - #631 Hover activated by default
    - #706 Better message when the you have forgot to start the bokeh-server
    - #777 Removing dinitialize
    - #788 Load inline resources lazily (on render, not on init)
    - #826 Added boxplot chart
    - #840 Advice to the user about start the bokeh-server
  * bugfixes:
    - #463 Hover tool on categorical heatmap example on bokeh.pydata.org is broken
    - #644 Can't import bokeh when resources aren't available
    - #682 Trouble with encoding on windows
    - #758 ./test -d is not finding example correctly
    - #776 Feature/safeguards for deferred initialization
    - #809 Nbviewer glitches on `output_notebook()`
    - #811 Fixes bokeh logo repetition in nbviewer notebooks
    - #812 Add mpl renderers to setup.py
    - #815 Unicodeencodeerror
    - #818 Fix python3 compat issue in setup.py
    - #831 Multi-document plots
    - #841 Fixed launching the tests suite from the examples folder
    - #864 Log files still have dinitialize method

2014-07-09    0.5.0:
--------------------
  * features:
    - #63 Flesh out pandasdatasource
    - #79 Need to be able to specify plot range
    - #133 Add nicer default frame around bokeh plots
    - #159 Boheh dashboard app
    - #174 Rename display_defaults - these props are more deferred lookups/inherited props
    - #176 I need an htmlfilesession that gives me standalone div (htmlfragmentsession)
    - #287 Output_notebook should accept kwargs to pass through to notebookserversession ctor
    - #308 Remove event sinks
    - #310 Bokeh/serverconfig.py is very verbose
    - #339 Adding widgets?
    - #340 Name for plots
    - #438 Display pinch zoom and pinch box zoom button on touch devices
    - #440 Pan drag working on touch devices
    - #483 Experimental bokehjs build system using sbt (scala)
    - #504 Include bokehjs tests in travisci
    - #533 Example plot showing daylight hours
    - #534 Updated package.json and bower.json
    - #542 Default backend should be inmemory?
    - #555 Use shelve for default, add some config printouts
    - #564 Use types to compute value of has_ref attribute
    - #566 Image_url enhacement request
    - #571 Provide convenient way to set axis titles in the figure() or in glyph functions
    - #575 Feature: datetime axis date format
    - #577 Expose datetimetickformatter.formats in python api and add an example
    - #591 Improve range1d constructor to take two numbers, or a length-2 iterable
    - #592 "tools" kwarg should accept a list of strings as well as a comma-delimited string
    - #600 We need a bug info function
    - #614 Make an npm module for bokeh-js
    - #622 Create bokeh nightly conda packages
    - #635 Range1d for dates?
    - #640 Testing bokeh.report_bug function
    - #642 Continuous integration on bokeh
    - #650 Better logging, docs, and error checkout for autoload_static
    - #656  example for referencing links using the hover_tool
    - #667 Made report_issue function py3 compatible and docs
    - #670 Better styling in donut plot (web browser market share)
    - #671 Bokeh.pydata.org/docs/bokehjs.html is *very* slow and resource intensive
    - #674 Remove license comments from minified bokehjs
    - #686 Added new ipython versions and raise exception if ipython versions do not match
    - #689 More succinct server config message
    - #691 Allow ranges to be specified as sequences
    - #698 Remove serverconfig
    - #703 Logarithmic axes for plots
    - #707 Initial integration of abstract rendering
    - #709 First working version of automated execution of notebooks in example folder
    - #717 Feature/range1d datetime
    - #720 Add support for log scale axes
    - #733 Execute ipynb and write a nbconverted html
    - #739 Feature/crossfilter
    - #745 Frame improvements
    - #752 Add click tool, allow click and hover tools to be always on
    - #753 Add support for minor ticks
    - #755 Feature/abstract rendering guides
    - #757 Add support for minor ticks
    - #759 Added total-downloads.py example
    - #768 Bokeh charts
    - #773 Log axes support
    - #775 Add tags option for build and upload script
    - #778 Minor improvements to log axes
    - #783 Reduce the number of queries changes script makes
  * bugfixes:
    - #48 Ggplot gives error on aesthetic object
    - #103 There is an error when trying to serialize script_inject_escaped
    - #120 Axes/grid coords to do not recompute if underlyinge range is not datarange1d
    - #309 Strange css errors on bokeh-server
    - #464 Tools make plot disapears when x-axis is set to not numeric
    - #466 Figure() kwargs don't match curplot() attributes
    - #531 Get rid of "plots" div in default template
    - #548 Potobject.references should return a set
    - #551 Fix and expose imageuri
    - #553 Expose, fix, rename image url
    - #556 Scientific notation is always on
    - #559 Nbviewer rendering broken
    - #570 Scatter legend markers too large when combined with lines
    - #595 Hover tooltip does not work in ipython notebook inline plotting
    - #599 Datetime axis not rendering properly after multiple calls to line in tutorial example
    - #603 Non helpful error message in case you don't have some object to plot yet
    - #604 Test_objects fail - order dependent
    - #610 Missing plotcontext?
    - #613 Fix static embedding (and gallery build)
    - #645 Compute self._models on the fly
    - #662 Setup clean doesn't clean out directories
    - #672 Precision error in stacked bar charts?
    - #675 Hover is off the page
    - #679 Need to include google maps api on demand.
    - #682 Trouble with encoding on windows
    - #684 Enforce utf-8 enconding in output_file
    - #687 Bokeh server main page is broken
    - #695 Widgets examples become unresponsive
    - #697 Plot width and height attribute name breaks some examples
    - #699 Explicitly ignore zero dim rects
    - #727 Skip pan/zoom tool registration
    - #729 "offsets to time due to json serialization implementation"
    - #734 Enhance the settimeout for starting qunit. attempting to fix random failures in travis
    - #743 Include version '2.0.0-wakari'
    - #748 In merging docs, only merge new objects
    - #769 Need to add new package to setup.py.. not sure why travis did not catch
    - #770 Avoid abstract rendering package installation on py3
    - #771 Fixes to build and upload script
    - #779 Adding bokeh.charts to setup.py
    - #780 Fix pagination issue in changes script
    - #782 Removing old bokeh install path
    - #784 Add missing mplexporter package to setup.py
  * tests:
    - #435 Test script does not execute notebooks
    - #541 Nosetests errors when run locally
    - #544 modified server unit tests to use in memory backend, switchable to use
    - #549 Check plotobject.references test
    - #560 Bokeh manual release testing
    - #772 Test_references_by_ref_by_value (bokeh.tests.test_objects.testplotobject) fails randomly
  * documentation:
    - #316 Quickstart.md has to be integrated with the devel docs
    - #532 Selection problem on gallery
    - #565 Seaborn and ggplot examples misrender on deployed gallery
    - #576 Autosave=true does not work (or is wrongly documented?)
    - #639 Fix small typo in the tutorial
    - #651 Docs refresh
    - #661 Bokehjs handles nulls as 0
    - #680 Periodic table example hover errors
    - #694 Make it easier to run bokehjs demos
    - #721 Bokehjs demo docs fix-ups

2014-04-16    0.4.4:
--------------------
  * features:
    - #407 Object explorer
    - #418 Support --user in non-setuptools setup.py develop
    - #419 Improve handling of static resources in htmlfilesession
    - #427 Clean up properties and introduce type safety
    - #429 Explose tick formatters as backbone objects to python
    - #430 [wip] expose bokehjs objects as backbone objects more consistently
    - #431 Subplots support in mpl
    - #434 Pypy compatibility:
    - #439 Option to dilate pixel distances on some glyphs
    - #441 Expose remaing tickers to python
    - #446 Feature/data directory
    - #447 Added gzip from flask_gzip, this gzips data before the flask server resp
    - #448 Second round of improvements to properties
    - #456 Feature/bigdata lineplots
    - #459 Feature/bigdata image
    - #461 Add support for testing on travis ci
    - #462 Remove [close] button from default plot html template
    - #469 Hover tool does not work with quad
    - #477 Feature/new json encoder
    - #478 Some enhancements to mpl polycollection support
    - #482 Added ggplot examples
    - #485 Background and grid support in mpl
    - #495 Basic xkcd support for mpl
    - #508 Add tool names for constrained pan and zoom
    - #514 Fix changes script to properly ignore unwanted issues (incorporates fixed chages to paginate api call. #513)
  * bugfixes:
    - #416 `bokeh/session.py` and `bokeh/session/*.py` contain duplicated code
    - #420 Large object graphs
    - #424 Recursively_traverse_plot_object() and session._collect_objs() don't collect refs in embedded objects
    - #425 Fixed nan issue in bokeh-server, closes #231
    - #428 Nan issue with circles (and presumably other marks
    - #443 Last big prs are generating errors in the py3 environment
    - #450 Can't connected to bokeh server if change the server to ip except 127.0.0.1
    - #454 Fix subprocess error exception call
    - #457 One histogram example renders badly on chrome
    - #458 Fixed missing datetime import
    - #465 Fix server sessions (inmemorysession and shelvesession)
    - #475 Scatter plot with multiple y-data fails with ipython notebook
    - #479 Datetime x_axis shows the wrong label at year resolution
    - #481 Fix years formatting problem
    - #488 Pr #448 breaks `from bokeh.plotting import *`
    - #489 Add missing type parameter declaration in serverdatasource (fixes #448)
    - #490 Server broken in py3 environment
    - #491 Adding hover tool from js fails
    - #494 Bokehjs error calling undefined function
    - #507 Datetime ticking broken
    - #509 Need new xpan, ypan... button
    - #511 Outline and title properties not being propagated to plots
    - #521 Point selection broken for wedge, annular wedge glyphs
    - #522 Recurrent time out failure in travis

2014-03-07    0.4.2:
--------------------
  * features:
    - #353 A simple extension to activate interactive support in the IPython notebook
    - #359 remove setuptools
    - #371 First basic implementation of PolyCollection.
    - #383 add ability to use a different ip address and port for bokeh-server
    - #388 Feature/unredis
    - #392 generalize packaging data dir
    - #395 Added script for load and install the extension.
    - #396 Added a little notebook to explain some ways to use the bokeh extension.
    - #397 Added script to generate changelog.
    - #399 let figure() accept keyword arguments for next plot
    - #411 Add point hit testing to other circle-like glyphs
  * bugfixes:
    - #377 np not imported, zeros_like is
    - #378 bokeh 0.4.1 vs virtualenv
    - #379 Adding a missing getsitepackage function to install in dev mode
    - #381 Deleted reference to sys.real_path in setup.py
    - #389 small typo fixes and adding olympics json file to setup.py
    - #405 Hover tool does not work with multiple plots

2014-02-17    0.4.1:
--------------------
  * features:
    - #365 Removing setuptools
    - #362 Change Name="..." to title="..." in plotting/file/hover.py
    - #355 Note about dependencies to install PyAudio successfully in debian-based systems
    - #337 Simplify plotting module and make auto-documentable
    - #336 Added redis-server to note about low level dependencies.
    - #344 add elements data and example
    - #328 Added a note about the need of some low level dependencies.
    - #325 Change grunt devdeploy to grunt deploy
    - #321 Add contributors.rst file
  * bugfixes:
    - #354 Axes properties do not seem to update.
    - #320 Unable to execute: redis-server
    - #315 Better fix for gevent's KeyError issue
    - #314 Properties aren't checking for attrs on backbone views/models
    - #313 Better error message from subprocess.Popen() and fix KeyError issue again
    - #311 Make Bootstrap's JS not interfere with IPython's notebook (#260)

2014-02-03      0.4:
--------------------
  * features:
    - #206 Rename "zoom tool" to "wheel zoom tool"
    - #216 Add 'legend' Method to Retrieve Current Legends
    - #220 Put bokehjs on a cdn
    - #222 bokeh-server ImportError handler just prints the error message
    - #223 Resolution on Time Axis in 'datetime' Plot is Very Coarse
    - #227 dev setup for bokehjs
    - #228 Direct column datasource
    - #233 Scroll zoom for XY-Axes and independent X- and Y-Axis
    - #234 Python 3 support
    - #241 Bollinger band examples
    - #244 css paths were missing "http://"
    - #248 BaseGlyph testing and refactoring test_properties
    - #252 Adding mpg dataset
    - #253 Feature/embed issues
    - #254 Restored Python 3 compatibility
    - #255 Make gevent optional - websockets wont' work, but that's mostly ok
    - #256 More tests and a fix
    - #257 Feature/selection
    - #259 Remove ObjectArrayDatasource and replace them with column data sources
    - #260 output_notebook() breaks the file/edit/etc. toolbar in IPython Notebook examples
    - #261 Improved sessions, bug fixes and headless testing of examples
    - #262 Adding link to actual webpage for tutorial information
    - #272 Circles should default to size/screen units like other markers
    - #273 scatter() should not special-case circle radii anymore
    - #274 Use "marker" for scatter(...) argument
    - #276 Update examples to use simpler specification for 'size'
    - #277 Replace deprecated 'type' parameter with 'marker' in examples
    - #278 remove bower dependecy
    - #279 Use [0...a.length] instead of [0..a.length-1]
    - #280 Add eco task to watch list in Gruntfile.coffee
    - #283 Improve dev docs about how to build bokehjs
    - #285 Start of some tests for bokeh.protocol
    - #288 Changes to server plots not showing automatically
    - #291 Better ticking for datetime data (and regular data)
    - #292 Fixes to make CDX work with bokeh@master
    - #293 More Tests
    - #296 Add support for color mapped and rgba images from python
    - #299 Don't special-case ColumnDataSource in glyph.coffee
    - #314 Properties aren't checking for attrs on backbone views/models
    - #313 Better error message from subprocess.Popen() and fix KeyError issue again
    - #312 Automatically activate pan tool on mousedown
    - #307 Remove event sinks
    - #303 Axes not showing up on line plot in spectrogram
    - #301 Set cursor matching active tool during dragging
    - #300 Fix tools so that keypress doesn't trigger tool activation
  * bugfixes:
    - #208 SyntaxWarning: import * only allowed at module level
    - #211 Fix broken links in README to demos
    - #212 Expose legend positioning via Python API
    - #214 label_text_align and label_text_baseline duplicated in legend.coffee
    - #224 select tool only draws selection bounds when moving the mouse
    - #226 tool sometimes switches to pan with no notification for the user
    - #235 Select then Zoom out creates rendering errors
    - #154 Another issue Json fault
    - #229 KeyError with bokeh-server
    - #238 'color' Argument of bokeh.plotting.text Ignored
    - #239 Error when executing burtin.ipynb
    - #240 Setting range requires having a second renderer
    - #243 Output .html file breaks if directory changes
    - #246 Pull function is broken - it calls session.load, which doesn't exist...
    - #247 Running the bokehserver with splitjs False and devjs True does not work.
    - #250 Bugfix/build error
    - #251 Semi-fixing hold behavior for notebook
    - #265 Problem with Pattern property
    - #266 Legend text color changing unexpectedly
    - #269 text_color should not use get_default_color() as-is?
    - #270 hold(1) does not work with patches and circle
    - #271 Alpha not treated correctly as a data spec
    - #281 Text baseline not being respected
    - #282 Bokeh server tests error
    - #295 Fix issues with require.config()
    - #297 Datarange1d computes start/end incorrectly when single points are negative
    - #306 bokehjs demos broken

2013-11-18      0.3:
--------------------
  * features:
    - #68 Remove guidespec and bake the attributes directly into the GuideRenderer
    - #158 Made FAQ fonts consistent
    - #157 xaxis, etc should return collection object
    - #151 Merge BokehJS repository
    - #129 The sampledata download is confusing
    - #105 All of the glyph examples have the same color
    - #82 Improve hold() functionality in notebook
    - #163 Rebuild only files that changed
  * bugfixes:
    - #155 ColumnDataSource does not update column_names
    - #152 Possible to have two Preview/Save tools
    - #150 If you plot circles that all have a position (0,0), there is a crash
    - #131 "Fork me on github" corner banner appears underneath some text boxes
    - #117 axis_line_color=None does not work
    - #162 Preview save tool broken
    - #199 Setting renderer.root_url has no effect

2013-10-11      0.2:
--------------------
  * features:
    - #73 Update bokeh.sampledata.download to take an alternate download directory
    - #89 Need better message if user forgets output_file(), etc
    - #90 Need better message if output_notebook is used outside a notebook
    - #71 Add datetime axis from bokehj
    - #70 Use request animation frame where possible
    - #65 Make colors representable by DataSpecs.
  * bugixes:
    - #98 line() without line_color does not render
    - #112 Add missing requirements, include bokeh.vendor into build
    - #115 Plotting a single point in causes javascript error in ticking
    - #77 colorspec on Grid and Axis objects not serialized
    - #76 Cannot find redis.conf
    - #69 None does not pass as null to bokehjs
    - #55 The last plot in a page full of plots behaves weird when the Zoom tool
      button is depressed
    - #54 legend rendering bug in plotting/file/legend.py
    - #75 Why are our rectangle borders goofy-looking?


2013-09-05    0.1.1:
--------------------
  * improve error messages on server examples


2013-09-03      0.1:
--------------------
  * initial release
