From 3c6df1fe3466ad1f66fbd652d1aa1ee3e781228f Mon Sep 17 00:00:00 2001 From: translatenix <119817707+translatenix@users.noreply.github.com> Date: Wed, 3 Apr 2024 14:06:16 -0700 Subject: [PATCH] Turn EvalTask into a tracked Gradle task Rationale: "Output file names are known only after execution" isn't a legitimate reason to make this task untracked because the output directory is known in this case. This is no different from (say) the `JavaCompile` task, where only the class file output directory is known upfront. Forum discussion didn't reveal another reason why this task should be untracked. --- .../java/org/pkl/gradle/task/EvalTask.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java b/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java index 5ea20d09..f680bee9 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java @@ -19,26 +19,32 @@ import java.io.File; import org.gradle.api.file.DirectoryProperty; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.Property; -import org.gradle.api.tasks.Internal; -import org.gradle.api.tasks.UntrackedTask; +import org.gradle.api.tasks.Input; +import org.gradle.api.tasks.Optional; +import org.gradle.api.tasks.OutputDirectory; +import org.gradle.api.tasks.OutputFile; import org.pkl.cli.CliEvaluator; import org.pkl.cli.CliEvaluatorOptions; -@UntrackedTask(because = "Output file names are known only after execution") public abstract class EvalTask extends ModulesTask { - @Internal + @OutputFile + @Optional public abstract RegularFileProperty getOutputFile(); - @Internal + @Input + @Optional public abstract Property getOutputFormat(); - @Internal + @Input + @Optional public abstract Property getModuleOutputSeparator(); - @Internal + @OutputDirectory + @Optional public abstract DirectoryProperty getMultipleFileOutputDir(); - @Internal + @Input + @Optional public abstract Property getExpression(); @Override