diff --git a/modules/nf-lineage/src/main/nextflow/lineage/LinObserver.groovy b/modules/nf-lineage/src/main/nextflow/lineage/LinObserver.groovy index 41b0a8cb9a..655a0c8f16 100644 --- a/modules/nf-lineage/src/main/nextflow/lineage/LinObserver.groovy +++ b/modules/nf-lineage/src/main/nextflow/lineage/LinObserver.groovy @@ -133,7 +133,7 @@ class LinObserver implements TraceObserverV2 { } protected List collectScriptDataPaths(PathNormalizer normalizer) { - final allScripts = allScriptFiles() + final allScripts = allScriptFiles().sort() final result = new ArrayList(allScripts.size()+1) // the main script result.add( new DataPath( @@ -148,7 +148,7 @@ class LinObserver implements TraceObserverV2 { final dataPath = new DataPath(normalizer.normalizePath(it.normalize()), Checksum.ofNextflow(it.text)) result.add(dataPath) } - return result.sort{it.path} + return result } protected String storeWorkflowRun(PathNormalizer normalizer) { diff --git a/modules/nf-lineage/src/main/nextflow/lineage/model/v1beta1/Workflow.groovy b/modules/nf-lineage/src/main/nextflow/lineage/model/v1beta1/Workflow.groovy index b64a59a03d..fa35f433e3 100644 --- a/modules/nf-lineage/src/main/nextflow/lineage/model/v1beta1/Workflow.groovy +++ b/modules/nf-lineage/src/main/nextflow/lineage/model/v1beta1/Workflow.groovy @@ -30,7 +30,7 @@ import nextflow.lineage.serde.LinSerializable @CompileStatic class Workflow implements LinSerializable { /** - * List of script files defining a workflow + * List of script files used by a workflow, starting with the main script */ List scriptFiles /** diff --git a/modules/nf-lineage/src/test/nextflow/lineage/LinObserverTest.groovy b/modules/nf-lineage/src/test/nextflow/lineage/LinObserverTest.groovy index d69f8c22ad..44cdd4b35b 100644 --- a/modules/nf-lineage/src/test/nextflow/lineage/LinObserverTest.groovy +++ b/modules/nf-lineage/src/test/nextflow/lineage/LinObserverTest.groovy @@ -114,8 +114,8 @@ class LinObserverTest extends Specification { def store = new DefaultLinStore(); def uniqueId = UUID.randomUUID() def scriptFile = folder.resolve("main.nf") - def module1 = folder.resolve("script1.nf"); module1.text = 'hola' - def module2 = folder.resolve("script2.nf"); module2.text = 'world' + def module1 = folder.resolve("a_script1.nf"); module1.text = 'hola' + def module2 = folder.resolve("b_script2.nf"); module2.text = 'world' and: def metadata = Mock(WorkflowMetadata){ @@ -139,7 +139,7 @@ class LinObserverTest extends Specification { when: def files = observer.collectScriptDataPaths(new PathNormalizer(metadata)) then: - observer.allScriptFiles() >> [ scriptFile, module1, module2 ] + observer.allScriptFiles() >> [ module2, scriptFile, module1 ] and: files.size() == 3 and: