[
https://issues.apache.org/jira/browse/TAVERNA-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16371269#comment-16371269
]
Stian Soiland-Reyes commented on TAVERNA-900:
---------------------------------------------
Hi, [~Guobao], thank you for your interest in GSOC, Apache Taverna and CWL!
You can start with having a look at the [Common Workflow Language user
guide|http://www.commonwl.org/user_guide/] and try it using the
[cwltool|https://pypi.python.org/pypi/cwltool] reference implementation.
What this GSOC project is proposing is to help support CWL within Apache
Taverna - for instance loading CWL workflow files and running them on the
Taverna engine instead of with cwltool.
Previous GSOC work in TAVERNA-880 added UI support for building workflows with
CWL tools (but not execufting. TAVERNA-879 added support for interacting with
Docker containers from Taverna workflows. What we're hoping for in this year's
project is some progress on loading/executing CWL workflows in Taverna, but we
can work on that when you propose your GSOC proposal document, as we need to
scope it so it is doable with the time and effort you will have available.
In Taverna 3 workflows are defined using the Taverna Language API - so it would
be natural for you to have a quick look at the (admittedly sparse) tutorials
for [taverna-language|https://github.com/apache/incubator-taverna-language/]
and below. It's OK if you raise early pull requests to improve README.md
Javadoc etc, but of course no requirement.
CWL execution might mean adding a new activity, see the dummy (non-executable)
[taverna-cwl-activity|https://github.com/apache/incubator-taverna-common-activities/tree/cwl-browse/taverna-cwl-activity]
from TAVERNA-880.
So I would propose:
* Read up on CWL, play with hello-world CWL workflow from user guide
* Look at Taverna Language, build/inspect hello-world Taverna workflow
* Start drafting a Google Document or so with your proposal - just listing
tasks to start with. You can also gather background material links there.
* Sign up to the
[dev@taverna|https://lists.apache.org/[email protected]]
mailing list and introduce yourself
* Ask CWL questions on
[gitter.im/common-workflow-language|https://gitter.im/common-workflow-language/common-workflow-language]
(there's also a [taverna gitter chat|https://gitter.im/apache/taverna]) – I
guess for both of these we might have time zone challenges, so mailing list is
also good.
> GSOC: Add Common Workflow Language support to Taverna
> -----------------------------------------------------
>
> Key: TAVERNA-900
> URL: https://issues.apache.org/jira/browse/TAVERNA-900
> Project: Apache Taverna
> Issue Type: Story
> Components: Taverna Language, Taverna Workbench Common Activities
> Reporter: Stian Soiland-Reyes
> Priority: Major
> Labels: cwl, docker, gsoc2016, gsoc2018, java, json, json-ld,
> python, workflow, yaml
>
> h2. GSOC: Add CWL support to Taverna
> The proposed GSOC task is to add support for [Common Workflow
> Language|http://commonwl.org/] (CWL) in [Apache
> Taverna|http://taverna.incubator.apache.org/] (incubating).
> The Apache Taverna community believe CWL support can be added to Taverna in a
> progressive fashion, and therefore the GSOC student can achieve success in
> multiple ways - and depending on her/his interests and existing skills can
> choose to pursue *one or two of these tasks* in detail, and if time permits
> can "top up" by exploring some of the remaining tasks more briefly as
> prototypes.
>
> See the underlying [Jira
> issues|https://issues.apache.org/jira/issues/?jql=project%20%3D%20TAVERNA%20AND%20labels%20%3D%20cwl]
> for further ideas.
> * Save Taverna workflows as CWL (TAVERNA-881) - basically generate YAML by
> inspecting workflows using the Taverna Language API and follow the [CWL
> specifications|https://w3id.org/cwl/].
> * Read CWL workflows (TAVERNA-877) - Add a plugin to [Taverna Language
> API|https://github.com/apache/incubator-taverna-language/] to parse CWL's YAML
> * Execute CWL tool descriptions (TAVERNA-878) - modify Taverna's [Tool
> activity|https://github.com/apache/incubator-taverna-common-activities/tree/master/taverna-external-tool-activity]
> * -Browse and use CWL tool descriptions from the workbench (TAVERNA-880) -
> modify GUI plugin to select from a collection or registry of tool
> descriptions-
> * -Create a Docker tool for executing Taverna activities (TAVERNA-879) - this
> allows any Taverna steps to be used by other CWL engines-
> Other Taverna or CWL-related tasks can of course also be proposed by the
> students.
> h2. CWL
> The [Common Workflow Language|http://commonwl.org/] (CWL) is a pragmatic
> approach to a standardized workflow language for executing command line
> tools on the cloud and on local servers.
> CWL is a *YAML*-based dataflow format, describing how command line tools can
> be wired together in a pipeline. An example workflow:
> https://github.com/common-workflow-language/workflows/blob/master/workflows/FestivalDemo/filtercount.cwl.yaml
> CWL has a [vibrant
> community|https://gitter.im/common-workflow-language/common-workflow-language]
> and multiple implementations, including _Rabix_, _Galaxy_ and a Python-based
> reference implementation _cwltool_.
> h2. Taverna
> [Apache Taverna|http://taverna.incubator.apache.org/] (incubating) is a
> Java-based workflow system with a graphical design interface. Taverna
> workflows can combine many different service types, including REST and WSDL
> services, command line tools, scripts (e.g. BeanShell, R) and custom plugins
> (e.g. BioMart).
> Taverna workflows can be executed on the desktop, on the command line, or on
> a Taverna server installation, which can be controlled from a web portal, a
> mobile app, or integrated into third-party applications.
> Taverna is used in a [wide range of
> sciences|http://taverna.incubator.apache.org/introduction/taverna-in-use/]
> for data analysis and processing, including bioinformatics, cheminformatics,
> biodiversity and musicology. Workflow engine features include provenance
> tracking, implicit parallelism/iterations, retry/failover and looping.
> Taverna workflows are commonly shared on
> [myExperiment|http://www.myexperiment.org], and can either be created
> graphically in the [Taverna
> workbench|http://taverna.incubator.apache.org/download/workbench/],
> programmatically using the [Taverna Language
> API|http://taverna.incubator.apache.org/download/language/] or by generating
> workflow definitions in the
> [SCUFL2|http://taverna.incubator.apache.org/documentation/scufl2/] format.
> h2. Community engagement
> Interested GSOC students are requested to engage early with the
> [dev@taverna|http://taverna.incubator.apache.org/community/lists#devtaverna]
> mailing list to describe their ideas for approaching this project, to clarify
> the tasks and for any questions and issues.
> As a first step, the prospective applicant should leave a comment on this
> Jira issue to indicate their interest, and the GSOC mentors would be happy to
> assist on any questions.
> As the project starts we are expecting the student to become part of the
> dev@taverna community to regularly discuss their progress.
> We are also hoping the student would engage with the [CWL
> community|http://common-workflow-language.github.io/#Community_and_Contributing]
> - particularly for questions on interpreting the CWL specifications and
> possibly even improving them. This engagement might include participating in
> development of the [CWL Java
> SDK|https://github.com/common-workflow-language/cwljava/] - although for GSOC
> evaluation purposes we will concentrate on your direct contributions to
> Apache Taverna.
> h2. Mentors
> An important part of GSOC is the personal mentoring from existing members of
> the open source community. Our job is not just to teach you how to
> successfully get through the GSOC programme, but also to motivate you and
> make sure you progress. We will show you how to contribute to open source,
> debug, improve, document, test and release your code as part of Apache
> Taverna.
> The GSOC mentors for Apache Taverna have experience from guiding multiple
> earlier GSOC students and local students, and can be contacted privately for
> day-to-day interaction and trouble-shooting.
> Mentors for this GSOC project:
> * Stian Soiland-Reyes
> * -Alan Williams-
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)