<commit_before>
Ideas for future development. Some of these will be implemented in BokehJS. In no particular order:

* retina/HiDPI improvement

* code cleanup
 - should use html templates in some places
 - css files have lots of cruft
 - some places just need it

* minor ticks

* legend improvements

* annotations
 - arrows

* datetime axis

* bugs

* graphs/trees

* map projections

* computed columns, for:
 - stacking bars and areas easily
 - jitter, etc

* more efficient binary data transfers to bokehjs

* additional selection and inspection tools

* decouple selection reporting from highlighting or other policies
 - more general selections (point, line, box, poly, circle)

* out-of-tree build for js

* tests
 - unit tests
 - image comparisons

* better save capability
 - offscreen render, size choice

* demo improvements
 - code simplification
 - option for static page generation
 - more demos

* better docs/interactive gallery

* bindings in other languages

* streaming data sources<commit_msg>Updating roadmap doc<commit_after>This is both a TODO list as well as a roadmap document for future versions.

Roadmap
=======

Version 0.2 (Sept 2013)
-----------------------

 * Improved examples and documentation
 * Fixed grid plot
 * Performance optimization of Javascript layer
 * Adding support for colors to be DataSpecs in most glyphs
 * Made bokeh.plotting package more consistent; removing plot() function in favor of scatter/line/bar/etc.

Version 0.3
-----------

 * Redo source tree layout, remove BokehJS subtree and incorporating Sahat's JS suggestions
 * More functioning ggplot aesthetics and some stats functions
 * Abstract Rendering
 * Touch events
 * New logo, frame around plots for consistent look & feel on all Bokeh plots


TODO List
=========

Core Plotting
-------------

 * Axis improvements

  * Improved datetime axis
  * minor ticks
  * good ticking & tick formatting for lat/long axes

 * Annotations

  * Arrows, text boxes
  * Improve legend

 * graphs/trees
 * map projections
 * better save capability
 * offscreen render, size choice
 * Abstract Rendering server
 * computed columns, for:

  * stacking bars and areas easily
  * jitter, etc

 * streaming data sources
 * support for Blaze remote arrays
 * bindings in other languages


Backends
--------

 * Better support for retina/HiDPI
 * Fix rendering in Chrome on HiDPI
 * Make consistent rendering between all
 * more efficient binary data transfers to bokehjs
 * Touch events for browsers on tablets
 * Check compatibility with mobile browsers


Interactions
------------
 * additional selection and inspection tools
 * decouple selection reporting from highlighting or other policies
 * more general selections (point, line, box, poly, circle)


Code Cleanup
------------

 * should use html templates in some places
 * css files have lots of cruft
 * some places just need it
 * Improve source tree layout for JS and build; incorporateSahat's suggestions
   for new BokehJS layout, and remove the subtree from Bokeh, relying instead
   on pre-built JS files (minified and un-minified for debug), as well as
   having clear instructions for how to do dev on both Bokeh and BokehJS at the
   same time.


Docs & Testing
--------------

 * tests: Unit tests, image comparisons for regression
 * better docs/interactive gallery
 * demo improvements
   * code simplification
   * option for static page generation
   * more demos

{'fraction_non_alphanumeric': 0.07535641547861507, 'fraction_numerical': 0.0023276112889147513, 'mean_word_length': 3.402048655569782, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3897593', 'n_tokens_mistral': 921, 'n_tokens_neox': 840, 'n_words': 429}