Skip to content

Conversation

@eladrion
Copy link
Contributor

@eladrion eladrion commented Jan 15, 2026

Pull Request Overview

Implement a configuration option create_partial_scripts (false by default) and only create partial scripts with missing tool information as comment if set to true. Otherwise, log output file and missing tools as error.
Also, the created scripts contain the same header (generation info) as CWL files, for example

Related Issue

Resolves #50

Changes Introduced

  • Added configuration related parts in APERunConfig and APEConfigTagFactory
  • Added generation info in SolutionGraphFactory
  • Updated writeExecutableWorkflows in APE to react on the configuration option
  • Updated tests to use create_partial_scripts with value true to behave as before

How Has This Been Tested?

Locally using test suite.

Checklist

  • I have referenced a related issue.
  • I have followed the project’s style guidelines.
  • My changes include tests, if applicable.
  • All tests pass locally.
  • I have added myself to the CITATION.cff file, if not already present.

…se` by default) and only create partial scripts with missing tool information as comment if set to `true`. Otherwise, log output file and missing tools as error.
@eladrion
Copy link
Contributor Author

Hi @vedran-kasalica, could you take a look into this solution? Creating non-functional scripts by default felt wrong to me, so I only do it if explicitly desired. Otherwise, I log an error message with information about the tool names where the code is missing.

@eladrion eladrion self-assigned this Jan 15, 2026
@vedran-kasalica
Copy link
Member

vedran-kasalica commented Jan 15, 2026

Thanks @eladrion, that’s a good idea, I will have a look at it (I am currently not able to generate the .sh files, the library just skips generating them, but it might be something wrong on my end).

I’m wondering whether the tag could be used for all workflow outputs (cwl, snakemake), and not only for .sh files. Otherwise, the scope of the field might not be clear.

On a more general note, the .sh outputs are quite outdated (they were used as a proof of concept and never in practice).

@eladrion
Copy link
Contributor Author

I think the tag could be reused for CWL. CWL requires a cwl_reference instead of codefor the implementation. I have to look into the Snakemake part whether this tag could be used there, too.

…port for restricting to full implementations for CWL and snakemake by leveraging "CWL file reference" and "code".
@eladrion
Copy link
Contributor Author

@vedran-kasalica, @CGru21: I exteded the support for skipping partial shell scripts to CWL and Snakemake export. A CWL workflow is seen as partial, if the CWL file reference is null while a Snakemake workflow is seen as partial, if there is no code entry in the tool annotation. What are your opinions about that?

@eladrion
Copy link
Contributor Author

@vedran-kasalica Currently, I first check (if partial implementations shall be skipped), whether there is missing information about CWL reference or code. This requires iterating over the modules. And if all information is present, the workflow is generated, which again includes iterating over the modules. I would propose that I propagate the "skipping" flag to the creation of the workflow and if true throw a custom exception that is then caught. This way, we would iterate only once. What do you think about that? And would it be sufficient to then throw instantly when encountering a missing definition or should I track all missing definitions and then throw with a list of the missing implementations?

@eladrion eladrion mentioned this pull request Jan 22, 2026
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update shell script outputs to match the CWL output format

3 participants