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

Progress Report for Week 3 (June 16 – June 22)

1. What did I get done this week?

  • Updated Runners to develop Branch :

    • Synchronised both zoo-calrissian-runner[1] and zoo-argowf-runner[2] repositories to their latest develop branches to align with ongoing development and ensure compatibility with upcoming features and test assets.
  • Implemented main_runner.py Entrypoint:

    • Created a unified runner controller script main_runner.py which dynamically selects and executes one of the three runners (calrissian, argowf, wes) based on command-line arguments.
    • This script ensures standardization across runners by following a common interface pattern with unified configuration and JSON input handling.
  • Python Dependency Resolution:

    • Encountered dependency incompatibilities when using Python 3.13 with packages required by the develop branch (notably with schema_salad, cwl-utils, and pycalrissian).
    • Solution: Downgraded the environment to Python 3.10, which resolved multiple transitive dependency conflicts without requiring package source modifications.
  • Unit Test for ArgoWF Runner Execution :

    • Implemented a test: test_main_runner_argowf.py[4] to verify whether main_runner.py[3] correctly initializes and runs the ZooArgoWorkflowsRunner with dummy CWL and configuration inputs.
    • The test uses subprocess.run() to simulate real execution and captures stdout to assert correct runner initialization.
    • Successfully passed after proper mocking of the execution handler and a minimal valid CWL structure.

2. Plan for Next Week (June 23 – June 29):

  • Target: Extend the unit testing to verify ZooCalrissianRunner using the main_runner.py interface.
  • Create a similar test_main_runner_calrissian.py test case using the same dummy CWL, configuration, and mocking pattern used for ArgoWF.
  • Begin integrating functional test logic for ZooWESRunner once a stable mock/test environment is finalized.

3. Am I blocked on anything?

  • No, I am not currently blocked on anything.

Links to Work Done: