Taverna 2.5.1 Server Release Notes
==================================

This is the second public release of Taverna 2.5 Server. We welcome feedback
on both the things that are there and the things that are not.

Key Features
------------
 * Runs arbitrary Taverna 2 workflows
   * Based on Taverna 2.5 Workflow Engine
   * Includes support for Components and Interaction processors
 * REST and SOAP interfaces
   * All functionality available through both interfaces
 * Manages files for workflows
   * Make files, read files, delete files
   * Create subdirectories, list directory contents
   * Can download a whole directory structure as a ZIP
 * Tidies up when workflow runs expire
   * Expiry time fully configurable
   * Can force immediate deletion of a workflow run
 * Generates Run Bundles
   * Contains formal description of the workflow run, designed for
     sharing, including the inputs, outputs and provenance trace
 * Security
   * Encrypted communication supported
   * Multiple users
     * Users isolated from each other (via sudo)
     * Workflows isolated from server
     * Users may grant access to other users
   * Specify credentials for workflows to access back-end services
 * Notification framework
   * Inform users when workflows terminate
     * Many protocols: Atom feed, email, SMS, Twitter, Jabber
 * Management interface
   * Administrative access to all server's tunable parameters
     * Authenticated web interface, JMX
   * Usage monitoring/accounting
 * General quality improvements
   * Improved speed
   * Improved robustness
     * State can persist over (limited) server restarts
   * Improved installation
     * Self-contained server package
   * Support for transfer of large data files

Significant Changes
-------------------
 * Now requires Java 7

Planned Future Features
-----------------------
 * Support for Cluster Deployment
 * Full WebDAV access to run working directory
 * Access to Provenance

Specific Issues Addressed in This Release
-----------------------------------------
See http://www.mygrid.org.uk/dev/issues/browse/TAVSERV

TAVSERV-5 Need to detect interactive localworkers
TAVSERV-76 Support user-supplied functionality
TAVSERV-283	Invocation is spelt as invokation in the admin interface
TAVSERV-293	A HEAD or OPTIONS to the wsdl address returns a 500 error
TAVSERV-301 Interaction feed address is not a full URI
TAVSERV-309 Failure in getRunOutputDescription SOAP operation
TAVSERV-310	Support OPTIONS in main interface
---- 2.5.0 release ----
TAVSERV-219 Some server errors are reported as 403 when 500 is more
            appropriate
TAVSERV-290 Support restricting what URLs to use workflows from
TAVSERV-307 Users created through the admin web interface are not properly
            set up in "insecure" mode
TAVSERV-321 Interaction service internal bug
TAVSERV-322 Atom feed updated timestamp being rounded down
TAVSERV-325 Can't create run with long default name
TAVSERV-326 Log concatenation
TAVSERV-328 An OPTIONS request to any resource produces incorrect headers
---- 2.5.1 release ----
TAVSERV-42 Provenance: Access and Lifetime
TAVSERV-44 Managing Workflow Instances
TAVSERV-69 Provenance: core
TAVSERV-297 Running instance of Taverna Server 2.4.1 hangs after a while;
            submitting a new workflow using REST API results in "HTTP 403
            Permission denied"
---- 2.5.2 release ----
