nextflow-io / nextflow-io/nextflow
Validation of published outputs
@bentsherman is already working on this.
Since May 9, 2023.
- 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
- Nextflow runs to completion
- A user or external process makes changes to an output file (but does not change the file name)
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.