2014-08-15    0.5.2:
--------------------
  * New Layout system
  * Improved automate testing infrastructure
  * AR testing, server-side downsample fixes and ISO Contours
  * New "dashboard-like" example: examples/app/applet/stock_example.py 
  * 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:
--------------------
  * Hover activated by default
  * Boxplot in bokeh.charts
  * Better messages when you forgot to start the bokeh-server
  * Fixed some packaging bugs
  * Fixed NBviewer rendering
  * Fixed some Unicodeencodeerror
  * 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:
--------------------
  * Widgets
  * Improved Embed API
  * bokeh.charts
  * Abstract Rendering
  * 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:
--------------------
  * 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
