I'm running into an issue where when I dry-run (or run for real) a rule I get this message...
The code used to generate one or several output files has changed:
To inspect which output files have changes, run 'snakemake --list-code-changes'.
To trigger a re-run, use 'snakemake -R $(snakemake --list-code-changes)'.
When I look at the files that have changes, their time stamps are newer than the code used to generate them and the files have time stamps that are in the correct order. Some of these files take a long time to generate and I'd really rather not have to recreate them.
Also, if the files have changed, then why wouldn't the DAG indicate that they need to be created? The files that supposedly have changes aren't getting updated the next time I run a rule.
googling the error message hasn't gotten me very far.
As an example, snakemake --list-code-changes includes data/references/silva.v4.align and data/references/silva.v4.tax. Here's the rule...
rule silva:
input:
script="code/get_silva.sh"
output:
"data/references/silva.v4.align",
"data/references/silva.v4.tax"
resources:
cpus=8,
shell:
"""
{input.script} {resources.cpus}
"""
Here is the ls -lth output...
-rw-rw-r-- 1 pschloss schloss-lab 589K Apr 2 09:29 data/references/silva.v4.tax
-rw-rw-r-- 1 pschloss schloss-lab 53M Apr 2 09:29 data/references/silva.v4.align
-rwxrwxr-x 1 pschloss schloss-lab 1.4K Mar 29 09:52 code/get_silva.sh
Initially I was doing this with v.7.3.1 and upgraded to 7.3.8. I am still getting the message.