2014-04-16    0.4.4:
--------------------
  * Improved MPL interface, subplots, styling plus more examples
  * TravisCI testing integration
  * Tool enhancements, constrained pan/zoom, more hover glyphs
  * Server remote data and downsampling examples
  * Initial work for Bokeh "app" concept
  * enhancements:
    - #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:
--------------------
  * Improved MPL interface, PolyCollection plus examples
  * Extensive tutorial with exercises and solutions
  * %bokeh magic for IPython notebook
  * InMemory storage backend for bokeh-server (usable without Redis)
  * enhancements:
    - #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:
--------------------
  * Improved matplotlib interface, including LineCollections and more examples
  * Scala interface
  * Support for categorical data, axes, and ranges
  * hover tool
  * improved interactions with Pan tool so it automatically triggers on
  mousedown
  * Added %bokeh magic for IPython Notebook
  * enhancements:
    - #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:
--------------------
  * enhancements:
    - #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:
--------------------
  * merge bokehjs into bokeh repository
  * bokehjs build refactor to use grunt
  * added colorbrewer palettes on python side
  * enhancements:
    - #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:
--------------------
  * enable (optional) HiDPI mode in bokehjs for retina displays
  * improve examples and documentation
  * expose sample data through bokeh.sampledata
  * implement more bokehjs primitive glyphs (patches, multiline)
  * add static HTML embed capability
  * add versioneer
  * add many new glyph/marker types
  * enhancements:
    - #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
