nextflow-io / nextflow-io/nextflow

Validation of published outputs

Open
#3,372 6 comments 0 reactions 1 assignee View on GitHub

@bentsherman is already working on this.

Since May 9, 2023.

storage/aws
Dominant language
Groovy
Stars
3.5k
Forks
811
Avg merge
2d 11h
Merged PRs (30d)
61

Description

Published Output Validation

At the moment, Nextflow is conservative in when it writes published outputs. If a file exists in the publishDir location, then Nextflow does not re-publish the file. If the destination file is truncated, or has been changed by some external process, Nextflow doesn't check to see if the source (in the task work directory) is different to the destination (in the publishDir location).

It would be good if Nextflow made stronger checks above simple filename matching. In cases where the source and destination are both on S3, we can provide strong guarantees by checking the file contents hash in the etags provided by S3.

Usage scenario

  1. Nextflow runs to completion
  2. A user or external process makes changes to an output file (but does not change the file name)
  3. Nextflow runs again with -resume

In this case, we would expect that Nextflow should notice that the published file is "stale", and that it needs to be re-published.

Suggest implementation

In cases where both files are on S3, we can do cheap file integrity checking by the hash value in the S3 etags.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.