various cleanups, fixed a regression with carbon-client.py, added more secure unpickling support and USE_INSECURE_UNPICKLER option
setting version to 0.9.9, finally
making MANIFEST.in self-inclusive to fix Bug #876991
cherry picking changes from lp:~mleinartas/graphite/dashboard branch
groupByNode preserves order
bring sumSeriesWithWildcards back since groupByNode does not cover all its uses
Add storage schema for internal carbon metrics
areaMode=stacked&yMax=max will now prevent whitespace above stacked graphs
make yUnitSystem=binary use powers of 2 when calculating yStep
Scale down yStep when using yMax=max to force 100% usage of vertical space
grr i hate has_key
When creating new whisper files, create it sparsely (and thus quickly) by
seeking to the end and writing a single byte. This should make large whisper
file creation very quick compared to the previous method of zeroing the whole
file.
Make sparse file creation an optional behavior and put the old full-allocation
behavior back as the default. This also refactors the original zeroing behavior
to write small chunks at a time to avoid allocating a massive chunk of memory
that python isn't likely to return to the system. bug/885944
two bugs, one shoe.
Fix for Bug #890743 - Extra commas in composer_widgets.js breaks use of IE
check-dependencies.py now verifies twisted.__version__ >= 8.2
Always compact hashes to create keys for memcached

Currently, the code compacts if the length of the request key is > 249.
The memcache max key length is 250, so this would appear to make sense.
Unfortunately, under the covers, django's memcached handling creates a
key by combining it "with the cache prefix and key version to provide
a final cache key".

See for more:
https://docs.djangoproject.com/en/dev/topics/cache/#cache-key-transformation
Added ability to show graph URL in context menu heading.
Use Hash to remember what dashboard I'm editing right now. For compulsive reloaders.
Fix broken auto-select feature with working one.