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 :
- 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.
- 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.
- 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!