question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Publish to Dockstore via zip

See original GitHub issue

Feature Request

Desired behaviour

It would be helpful to have the option to publish to Dockstore by uploading a tarball, or something similar.

The rationale for this was discussed on 8/22 in a call with Dockstore developers and Human Cell Atlas Data Coordination Platform developers and is described further below.

Decoupling imports from Git repo layout

Essentially, our import statements do not match the file layout in our Git repo, and this causes things to break when we publish to Dockstore.

Simplifying a bit, the layout in our repo looks like:

  • workflows
    • my_workflow.wdl
  • tasks
    • task1.wdl
    • task2.wdl

… and in my_workflow.wdl, the imports look like:

import task1.wdl
import task2.wdl

However, as Dockstore exists today, we can’t publish directly from this repo and have Dockstore able to submit our workflow to an execution engine.

Publishing via tarball

We could solve this if Dockstore provided a way to publish via a tarball.

We would make a flat tarball that looks like:

  • my_workflow.wdl
  • task1.wdl
  • task2.wdl

Relative to that layout, the imports would make sense, so Dockstore could then package up the dependencies and submit to an execution engine.

Workarounds have drawbacks

Symlinks

It’s possible to add symlinks to our repo as a workaround, but this adds clutter and a possible source of confusion to the repo.

HTTP imports

This would require us to bake version info into the import statements in our WDL files, e.g.:

import https://raw.githubusercontent.com/HumanCellAtlas/skylab/v1.2.3/tasks/task1.wdl.

which we would rather not have to do.

Also, submitting dependencies in a zip file rather than via HTTP imports also allows the system submitting WDL files to cache them, rather than having the execution engine download them anew for each workflow run. Although execution engines might choose to implement their own caching, doing the caching ourselves gives us more control.

Why our imports don’t match our repo layout

Assuming a flat structure in the import statements improves portability in some scenarios. For example, we can easily download the main workflow file to the root directory of a VM, expand an archive of dependencies next to it, and then run that workflow locally (whereas complications arise if we have imports like …/task1.wdl – we could imagine workarounds, but we’d rather not have to handle that problem.)

Also, the layout of our Git repo changes sometimes, and we don’t want to have to rewrite all the import statements when that happens.

Conclusion

Having the ability to publish via tarball or something similar would make it easier for us to integrate with Dockstore.

┆Issue is synchronized with this Jira Story ┆Issue Type: Story ┆Fix Versions: Dockstore 1.6 ┆Sprint: Seabright Sprint 4 Dory ┆Issue Number: DOCK-154 ┆Epic: Publish Workflows via Zip

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:1
  • Comments:8 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
kbergincommented, Jan 22, 2019

Hi @coverbeck - Thanks for following up! I’m going to link this to our engineers that are at Broad, to see if they have answers to your questions.

1reaction
coverbeckcommented, Feb 1, 2019

Hi @samanehsan , thanks for the information!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Posting Zip Files - Dockstore Documentation!
Dockstore has an API to post the contents of a ZIP file as a new hosted workflow version. This API makes it easier...
Read more >
Register a Tool on Dockstore
Publish your tool ... Dockstore allows the registration of “WDL tools” using legacy ... Register your workflow to automatically sync using GitHub Apps....
Read more >
Services — Dockstore documentation
Learn the basics of creating a service using a .dockstore.yml file. Learn how to register a service and create versions for it. Publish...
Read more >
Register a Workflow on Dockstore
Publish your workflow. This tutorial walks through the process of registering and sharing more complex workflows which are usually comprised of multiple ...
Read more >
Creating a Dockstore Account
Before you can publish your new tool/workflow, you need to create a Dockstore account and link the relevant services. Dockstore supports login through...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found