[WIP] refactor: module support#318
Conversation
|
@a-frantz after some discussion with @claymcleod I mocked up some example modules. I intentionally kept it simple, but I covered both a defined entry point and a default entry point ( |
|
Assuming I've understood the module spec properly, I've created a number of examples here.
For workflows, I think the organization is obvious for something like DNAseq or RNAseq. We'd have a single module with entry points for the FASTQ and BAM. This has the advantage that it also hides the I also didn't touch the data structures folder. I suspect that should end up as a single module with various sub-paths. I'm also not sure how the versioning works. Clay's spec says that git-based dependencies are by git tags, so we'd have to rethink how we've been doing releases and follow that specific format (e.g. |
| "path": "./dnaseq-standard-fastq.wdl" | ||
| }, | ||
| "bam": { | ||
| "path": "./dnaseq-standard.wdl" |
There was a problem hiding this comment.
I'm not sure this is right. I think it needs a source object wrapping it.
I think you've got all of this right. My recommendation is to do try the tool model (i.e., the first model) to start out. The reason is mainly because that's going to enable a really rich discovery of the modules when we write the registry at OpenWDL (e.g., the metadata about which tools exist in the module and at what versions/licenses is going to be easiest to reason about in this mode). I think the second solution could work as well, especially if the maintenance burden of the first becomes too high. I would stay away from the third version, as I feel it pulls far too much information into one |
I think I'd be on board with #1 if you could have a flat |
DO NOT MERGE
Demonstration PR for upcoming module support in WDL 1.4.
Before submitting this PR, please make sure:
scripts/ordocker/directories, please ensure any image versions have been incremented accordingly!