GSoC 2025: Week 7 Report: Migrating and updating the existing CWL runners

Progress Report for Week 7 (July 14 – July 20)

1. What did I get done this week?

  1. Cloned and Analysed 4 Service Template Repositories:
  • zoo-service-template [1]
  • eoepca-proc-service-template [2]
  • eoepca-proc-service-template-wes [3]
  • zoo-argo-wf-proc-service-template [4]
  1. Centralised ExecutionHandler Class:
  • Moved duplicated logic from handler.py in each runner to a single shared ExecutionHandler interface in zoo-runner-common.
  • Created an abstract version using ABC (Abstract Base Class) with required method signatures.
  • All service templates now subclass ExecutionHandler and override their specific logic as needed.
  1. Centralised ZooStub Class:
  • Removed redundant fallback ZooStub definitions in all service templates.
  • Now imported directly from zoo-runner-common.zoostub.

2. Plan for Next Week ( July 21 - July 26 ):

  1. Identify additional common classes and reusable logic across all service templates.

  2. Begin refactoring to centralise this logic in zoo-runner-common.

  3. Set up a GitHub Actions CI pipeline to run unit tests for all CWL runners.

  4. Ensure basic test coverage and integration checks are in place for CI to validate future changes.

3. Refrences:
[1] - GitHub - Aryankhare1225/zoo-service-template: ZOO Project template for deploying Application Packages

[2] - GitHub - Aryankhare1225/eoepca-proc-service-template

[3] - GitHub - Aryankhare1225/eoepca-proc-service-template-wes: Integration of Slurm scheduler with ADES (from cedadev)

[4] - GitHub - Aryankhare1225/zoo-argo-wf-proc-service-template