GSoc-2025 - Community Bonding Report - Migrating and updating the existing CWL runners

Name: Aryan Khare
Project Title: Migrating and updating the existing CWL runners
Mentors: @gfenoy , @chetanm
Organization: OSGeo / ZOO-Project
OSGeo Profile : OSGoe Profile Link
Project Wiki: Github Wiki Link
Repository: Repo Link


Period: Community Bonding (May 8 – June 1, 2025)


Work Done in Community Bonding period :

  1. OSGeo and Project Onboarding
  • Created my OSGeo user profile and linked it on the Accepted Students wiki page.
  • Joined relevant communication platforms (OSGeo Discourse, ZOO-Chat, mailing list, etc.).
  • Engaged with my mentor and got clarity on deliverables and expectations.
  1. Project Wiki Setup
  • Created my project wiki page: Project Wiki Link
  • Linked the wiki on the official GSoC 2025 Accepted Students wiki page.
  • Added a basic summary of the project, goals, repository link, and weekly reporting structure to the wiki.
  • Added placeholder sections for the week-by-week updates and final deliverables.
  1. Project Preparation
  • Set up the initial folder structure for organizing all CWL runners under a unified zoo-cwl-runners repository.
  • Explored the existing codebases of the ArgoWF, Calrissian, and WES runners along with the ZOO-Project’s ZooStub.py to identify reusable components and common functionalities.
  • Engaged in discussions with mentors to clarify the repository organization strategy, review the use of abstract base classes, and finalize the approach for documenting new runner integration.

Community Interaction

  • Actively engaged with my mentor(s) through private chats and group communication channels to clarify goals and receive feedback.
  • Followed ongoing development discussions related to the ZOO-Project & CWL runners, and familiarized myself with its pull request process, testing routines, and code review workflows.

Plans for the Coding Period

  • Implement the restructuring of CWL runner repositories by introducing a centralized, modular design and a reusable ZooStub. The work will align with OGC API Process standards and promote extensibility for future runner additions.
  • Focus Areas:
    • Set up a centralized structure under the ZOO-Project organization that references runner-specific codebases while providing a single entry point.
    • Analyze existing ZooStub implementations, consolidate common functionality, and create a shared, extensible version for use across all runners.
    • Design a generic BaseRunner class in Python to encapsulate shared behavior (execution, logging, validation), and refactor existing runners (WES, ArgoWF, Calrissian) to inherit from it.
    • Standardize the configuration and structure of service templates across runners to simplify deployment and onboarding of new runners.
    • Develop unit tests for each runner using the shared base and ZooStub, and set up GitHub Actions for continuous integration and validation of changes.
    • Create detailed developer documentation and a ready-to-use “New Runner Template” to ease future expansions.
  • Maintain weekly reports and continuously update the project wiki with technical details, design decisions, and implementation logs.

Am I blocked on anything?

  • No, I am not currently blocked on anything.

Outcome

I’m fully ready to begin the coding phase, with all necessary infrastructure in place, including the wiki, repository, and folder structure. I have a clear understanding of the task and maintain regular communication with my mentor. I’m excited to contribute effectively in the coming weeks!

1 Like