Refactor setting up valid extensions in DataToolParameter to eliminate code duplication, extra computation (multiple loading of same datatypes in unit tests for instance), and reduce code nesting.
Centeralize logic for checking if a given galaxy datatype is any of the datatypes in a given iterator (tuple, list) (used when building up tool input options and evaluating tools, checking conversions, etc...). I think this is a solid (though slight) design improvement in its own right, but it will also ease the eventually merging of composite multifiles (https://bitbucket.org/galaxyp/galaxy-central-homogeneous-composite-datatypes) into galaxy-central or at least limit the divergence between galaxy-central and that fork long term.
Small refactoring of logic used to build up list of valid formats for an input data parameter.
Leave process_dataset immediately if input data is `None` in collect_input_datasets of DefaultToolAction, simplifies code and eliminates some unneeded computation.
Fix for Postgres versions < 9 (see https://trello.com/c/Z0EynAV2)
Branch close from search API.
Implement dynamic toolbox filters.
Overview: Right now these filters are implemented via python code, but a higher level configuration mechanism could be implemented on top of this one easily. Added the well documented file lib/galaxy/tools/filters/examples.py.sample that outlines the implementations of some possible filters and how to configure them in universe_wsgi.ini.

Implementation: Refactored Toolbox.to_dict and remove Tool._is_hidden_for_user, moving and unifying all filter building functionality into tools/filters/__init.py. Implemented new dynamic filters for tools, labels, and sections. Multiple such filters can be specified by giving module (relative to galaxy.tools.filters) and function names for each as comma seperated list to the respective options tool_filters, tool_label_filters, and tool_section_filters in universe_wsgi.ini. Explicit example lines to add to universe_wsgi.ini can be found in examples.py.sample (described above).

WARNING: This mechanism only controls what tools are visible to the user. I imagine a savy user could call any tool by building custom requests or utilizing the API, to truely block users from accessing certain tools I recommend using the dynamic job runners.
Dynamic Toolbox Filtering: Allow whitespace around commas between filters in configuration file.
Fix for TabularToolDataTable.get_column_name_list() when value column is overloaded by e.g. name.
Trackster: whitespace additions between functions.
Fix API uploads (must have broken with API/Web transaction unification).
Fix API uploads (must have broken with API/Web transaction unification).
Fix job splitting to rewrite references in config files in addition to command-line.
Fix job splitting to rewrite references in config files in addition to command-line.
Fix detection of 2bit files when uploading them.

When 2bit files are uploaded, they were not detected as 2bit files:

Example:
  test.2bit
    empty
    format: twobit, database: hg19
    The uploaded binary file contains inappropriate content

This issue is solved by registering the TwoBit file format in:
  ./lib/galaxy/datatypes/binary.py
Starting the provenance API. Provides information about the source of datasets.
Improved exception and error handling conditions for the LWR job runner. PEP-8 fixes.
Adding source following in provenance tracing
Fixes for backward compatibility with 2012-12-20 release of Galaxy.
Merged in fixes from next-stable.