Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CWL workflow steps #649

Merged
merged 18 commits into from
May 23, 2024
Merged

CWL workflow steps #649

merged 18 commits into from
May 23, 2024

Conversation

fmigneault
Copy link
Collaborator

@fmigneault fmigneault commented May 16, 2024

Changes:

  • Add CWL MultipleInputFeatureRequirement support.
  • Add CWL SubworkflowFeatureRequirement support.
  • Add CWL Workflow explicit schema validation of its steps.
  • Remove "unknown" definitions in CWL requirements. Only fully defined and resolved definitions will be allowed.
    If an unsupported CWL requirement by Weaver must be provided (but is a valid definition supported by cwltool),
    it must now be provided through hints to succeed schema validation.
  • Improve support of CWL output definition using loadContents to an outputBinding.glob reference to
    load the File contents into a string output.
  • Improve support of CWL JavaScript expressions within intermediate steps of a Workflow to collect output results
    from relevant sources with better data manipulation flexibility.
  • Modify signature of weaver.processes.wps_process_base.WpsProcessInterface to allow better reuse of the
    common operations shared by derived CWL Workflow steps implemented by ESGFProcess, Wps1Process,
    Wps3Process and OGCAPIRemoteProcessBase.
  • Refactor ESGFProcess to use the common operations of CWL Workflow steps defined by WpsProcessInterface.

Fixes:

  • Fix invalid CWL schema definition for ScatterFeatureRequirement that directly
    contained the corresponding fields scatter and scatterMethod, instead of the expected
    definition within a Workflow Step.
  • Fix CWL requirements schema definition using OneOf and the discriminator property that could sometime
    drop a definition when it only contained an empty mapping {}, and that the corresponding requirement allows it.
  • Fix weaver.wps_restapi.colander_extras.AnyOfKeywordSchema not allowing distinct JSON structure type to be
    combined simultaneously.
  • Fix CWL Workflow not retrieving output results when returned directly as literal data from a remote Process.
  • Fix CWL Workflow potentially failing tool resolution for a local step Process if hints where omitted.
  • Fix CWL Workflow resolution of step requirements from one of the Weaver application types
    (i.e.: builtin, docker, ESGF-CWT, OGCAPI, WPS1) due to cwltool namespace adding a
    prefixed URI.

@fmigneault fmigneault self-assigned this May 16, 2024
@github-actions github-actions bot added ci/doc Issue related to documentation of the package ci/tests Tests of the package and features feature/CWL Issue related to CWL support feature/oas Issues related to OpenAPI specifications. process/esgf-cwt Issue related to ESGF-CWT components. process/workflow Related to a Workflow process. process/wps3 Issue related to WPS 3.x (REST-JSON) processes support labels May 16, 2024
@fmigneault fmigneault changed the title Cwl workflow steps CWL workflow steps May 16, 2024
@github-actions github-actions bot added the process/wps1 Issue related to WPS 1.x processes support label May 16, 2024
@fmigneault fmigneault marked this pull request as ready for review May 22, 2024 23:44
@github-actions github-actions bot added the ci/operations Related to CI operations (actions, execution, install, builds, etc.) label May 23, 2024
Copy link

codecov bot commented May 23, 2024

Codecov Report

Attention: Patch coverage is 79.89418% with 76 lines in your changes missing coverage. Please review.

Project coverage is 85.76%. Comparing base (aae0904) to head (ee56c8d).
Report is 147 commits behind head on master.

Files Patch % Lines
weaver/processes/esgf_process.py 0.00% 46 Missing ⚠️
weaver/processes/wps_package.py 84.74% 15 Missing and 3 partials ⚠️
weaver/wps_restapi/colander_extras.py 61.53% 2 Missing and 3 partials ⚠️
weaver/processes/utils.py 42.85% 4 Missing ⚠️
weaver/processes/wps_process_base.py 81.25% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #649      +/-   ##
==========================================
- Coverage   85.78%   85.76%   -0.02%     
==========================================
  Files          79       79              
  Lines       18654    18846     +192     
  Branches     2862     2905      +43     
==========================================
+ Hits        16002    16163     +161     
- Misses       1907     1927      +20     
- Partials      745      756      +11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@fmigneault fmigneault merged commit e166157 into master May 23, 2024
44 of 47 checks passed
@fmigneault fmigneault deleted the cwl-workflow-steps branch May 23, 2024 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/doc Issue related to documentation of the package ci/operations Related to CI operations (actions, execution, install, builds, etc.) ci/tests Tests of the package and features feature/CWL Issue related to CWL support feature/oas Issues related to OpenAPI specifications. process/esgf-cwt Issue related to ESGF-CWT components. process/workflow Related to a Workflow process. process/wps1 Issue related to WPS 1.x processes support process/wps3 Issue related to WPS 3.x (REST-JSON) processes support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant