History panel: have all edit panels show contents in reverse order (not just current panel)
Dynamically load workflow module descriptions in mako editor.

This again falls under the umbrella of making workflow modules more like true plugins. This should allow one to add new modules downstream without needing to modify templates/webapps/galaxy/workflow/editor.mako. One can imagine a new API endpoint for the new load_module_sections method will be useful as the editor UI shifts to a single page app and actual API clients need to determine what workflow modules are available. Such an API endpoint is not included but would be easy to add now.
Implement workflow requests (API only) and a scheduling 'plugin' framework to evaluate them.

Models:

Some initial elements of these model changes were based on model changes in Kyle Ellrott's Galaxy farm work (https://bitbucket.org/kellrott/galaxy-farm/branch/workflow_migrate). I made heavy modifications to the model to enforce referential integrity on parameter to workflow step mappings and made some cosmetic changes various other details.

Scheduling Plugins:

Used the pattern setup with dependency resolvers and job metrics to build a dynamic plugin infrastructure for defining workflow schedulers. I hesistate calling anything with only one implementation a plugin infrastructure, but I am confident enough that the combination of persisted workflow request combined with scheduler tag could be used to build a galaxy-farm plugin that would wait for another Galaxy instance to become available and it would pull the workflow down and

This work piggy backs on Galaxy job handlers to have them process workflows in the background (i.e. during submission each workflow being scheduled in the background is assigned a unique job handler and only that job handler thread will process the workflow). It should be pretty easy to allow the definition of a new kind of handler - that is a workflow handler instead of a job handler.

API:

TODO: Document.

Testing:

One can issue a workflow request by running the following test.

./run_tests.sh -api test/api/test_workflows.py:WorkflowsApiTestCase.test_workflow_request
Implement explicit workflow invocation cancellation.
Infrastructure for supporting modules cancelling workflows.
Update workflow invocations when their jobs complete.

This could allow more efficient checks when recovering workflow state.
Implement pause module for workflows.

New module type that pauses a workflow and gives time for the runner to review it before proceeding with execution.

 - Introduce concept of beta workflow modules - I guess we should just keep the pause module as beta until their is a UI to support it.
 - Extracts base class ouptut of InputModule for modules that are "simple" - i.e. their configuration state is represented as a dictionary and configuration form is rendered via the generic template.
 - Test Cases (for this and for workflow cancellation).
Conditionally force queueing of traditional workflow invocations.