Skip to content
ARYAN KHARE edited this page Aug 28, 2025 · 3 revisions

Migrating and updating the existing CWL runners

ZOO-Project

GSoC OSGeo

Brief Description

The ZOO Project is an open-source implementation of the Open Geospatial Consortium's (OGC) Web Processing Service (WPS) standard. The WPS Interface standard sets standardised protocols for defining inputs and outputs (requests and responses, respectively) in geospatial processing services (for example, polygon overlay). It ensures uniformity in client requests for process execution and managing output.

State of the Project Before GSoC

Before your project, the ZOO-Project CWL runners faced several challenges: Scattered Repositories: 
Each runner (WES, Argo, Calrissian) had its own separate GitHub repository. No single entry point to access all runners in one place. Code Duplication: 
Each runner had its way of handling input validation, execution, and logging. Common functionalities were repeated across different runners, making maintenance harder. Difficult to Add New Runners: 
No clear documentation or template for creating a new runner. New developers had to analyze existing code instead of following a structured guide. No Centralized Testing: 
Each runner had separate testing setups, leading to inconsistent quality. No automated way to test all runners in one place.

Deliverables

Repository Organization & Single Entry Point: Propose and implement a centralized repository (zoo-cwl-runners), merging all runners into a structured format with shared common code. Generic & Reusable Code Implementation: Develop an abstract base class (base_runner.py) to standardize execution, validation, and logging; refactor existing runners (WES, Argo, Calrissian) to use the base class and follow a uniform structure. Documentation & Testing: Create detailed documentation on repository organization, runner integration, and the base class; implement a test suite with unit tests and automate testing using GitHub Actions (CI/CD).

Detailed Proposal

Detailed Proposal Link (Google Drive)

Participants

Title GitHub Handle Name
1st Mentor @gfenoy Gérald Fenoy
2nd Mentor @cOsprey Chetan Mahajan
Student Developer @Aryankhare1225 Aryan Khare

Clone this wiki locally