Apache Taverna's source code is hosted at gitbox.apache.org, with two-way mirroring with GitHub.
Checking out Apache Taverna¶
To check out Apache Taverna from GitHub, select [GitHub HTTPS]
below, e.g.:
git clone https://github.com/apache/incubator-taverna-****.git
Tip: Taverna committers who have linked their ASF accounts on GitBox may push directly to GitHub, although the convention is to raise pull requests to discuss changes.
If you have a GitHub account with SSH
keys configured, then
use [GitHub SSH]
instead.
If you are unable to use GitHub or prefer using ASF's git server, select
[Apache GitBox]
below, e.g.:
git clone https://gitbox.apache.org/repos/asf/incubator-taverna-****.git
Tip: Taverna committers can always push to GitBox using ASF credentials. Changes are synchronized both ways.
If you want to access using the
git://
protocol,
then use [GitHub git]
. This is typically the fastest way to check out, but
require firewall access to port 9418 and is not secure; verify the
latest commit ID against the Browse button.
You can [Browse]
the code through GitHub or Apache GitBox below.
Using GitHub you are free to fork the projects and raise pull requests to
contribute to Apache Taverna, in which
case you should push changes to your fork instead of the below repository.
Source code repositories¶
Click on the textbox and copy the value.
The Apache Taverna source code is organized into multiple git repositories:
incubator-taverna-mobile
|
Browse | Android app for running Taverna workflows remotely | |
incubator-taverna-maven-parent
|
Browse | Common Maven parent for the below | |
incubator-taverna-language
|
Browse | API for workflow definitions (SCUFL2) and workflow inputs/outputs (DataBundle) | |
incubator-taverna-osgi
|
Browse | OSGi-based plugin system | |
incubator-taverna-engine
|
Browse | Taverna workflow engine | |
incubator-taverna-common-activities
|
Browse | Common activity implementation for engine (e.g. WSDL, REST, Tool, Interaction) | |
incubator-taverna-commandline
|
Browse | Command line for running Taverna workflows | |
incubator-taverna-server
|
Browse | A REST and WSDL service for running Taverna workflows | |
incubator-taverna-workbench
|
Browse | Graphical workbench for editing and running Taverna workflows | |
incubator-taverna-workbench-common-activities
|
Browse | Common activities UI (discovery+configuration for Workbench | |
incubator-taverna-workbench-product
|
Browse | Distribution of Taverna Workbench | |
incubator-taverna-plugin-gis
|
Browse | Plugin for Geographical Information System (GIS) and OGC web services | |
incubator-taverna-databundle-viewer
|
Browse | Web-based Data Bundle viewer |
Note: The source code above is for Apache Taverna 3. For archival purposes the source code for Taverna 2 remains available separately, but is not maintained by the Apache Taverna project.
Building Apache Taverna¶
You need Apache Maven 3.2 or newer to build Taverna. To build a checked out repository:
mvn clean install
If you want to skip tests (these can be time-consuming):
mvn clean install -DskipTests
If you get license header warnings from the Apache RAT plugin, and you are not a committer (who should fix those before a release), you can skip these checks with:
mvn clean install -Drat.skip=true
The build order is roughly the order of the above list, but as regular
snapshots are picked up from the snapshot repository,
usually you only need to build the modules you have changed.
Note that a repository might depend on a released version of an upstream Taverna
repository, so if you want to be sure that a build picks up the SNAPSHOT
version
you built instead, check the <properties>
section within the pom.xml
.
Contribute to Apache Taverna¶
Patches¶
Patches welcome! Apache Taverna is a volunteer project, and we rely on the community to help improve the code base. Anyone can suggest a change to Apache Taverna, not just the existing committers.
For many developers, the easiest method is to Fork the corresponding repository on GitHub, and submit the suggested changes as a Pull request. The pull request is automatically forwarded to the dev@taverna mailing list. Subscribe to this mailing list to receive feedback for your patch.
Alternatively, you may checkout directly from the repositories above, use git format-patch, and send your patches to the dev@taverna mailing list after subscribing. Note that large patch files might not be accepted by the mailing list software.
For larger contributions, we might ask you to sign a Contributor License Agreement (CLA) to grant a license to the Apache Software Foundation that covers your contribution.
For any questions about using or modifying the Apache Taverna source code and APIs, please subscribe to and contact the dev@taverna mailing list.
Bug Fixes¶
Use the Apache Taverna JIRA issue tracker to report or track a bug.
Snapshot builds¶
A corresponding set of automatic Jenkins builds for Apache Taverna deploy to Apache's snapshot Maven repository
based on the latest master
branch of each repository (updated every ~7 minute).
Note that the snapshot builds are not official releases and should be considered unstable.
To use the snapshot repository, add to your Maven pom.xml:
<repositories> <repository> <id>apache.snapshots</id> <name>Apache Snapshot Repository</name> <url>http://repository.apache.org/snapshots</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories>
This means that as a developer, you only need to build the repositories you are modifying, as the remaining modules will be retrieved from the Maven repository.
You will however always need to build the distribution product (command line or workbench) to incorporate your changes. (Make sure that references the correct SNAPSHOT
version!)
Taverna Extras¶
The separate GitHub group taverna-extras host independent community-submitted plugins for Apache Taverna. Unlike Apache Taverna, the taverna-extras include plugins covered by the licenses LGPL and GPL. Note that the taverna-extras are not affiliated with or released by Apache Taverna, although you may recognize many of the same committers.
Some plugins that were previously part of Taverna 2 have migrated to taverna-extras due to licensing incompatibility or lack of maintenance. This includes: