Skip to content

Commit 1cfb434

Browse files
committed
Continue refactoring: move main build options to extension, get rid of option interfaces
1 parent 85507f5 commit 1cfb434

File tree

16 files changed

+918
-968
lines changed

16 files changed

+918
-968
lines changed

build-tools/build-plugin/src/build/KotlinJupyterGradlePlugin.kt

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,6 @@ import org.gradle.api.Project
55

66
class KernelBuildPlugin : Plugin<Project> {
77
override fun apply(project: Project) {
8-
9-
with(project.plugins) {
10-
apply("org.jetbrains.kotlin.jvm")
11-
apply("com.github.johnrengelman.shadow")
12-
apply("org.jetbrains.kotlin.plugin.serialization")
13-
apply("org.jlleitschuh.gradle.ktlint")
14-
apply("ru.ileasile.kotlin.publisher")
15-
apply("ru.ileasile.kotlin.doc")
16-
apply("org.hildan.github.changelog")
17-
}
18-
19-
project.allprojects {
20-
addAllBuildRepositories()
21-
}
22-
23-
with(ProjectWithOptionsImpl(project, project.options())) {
24-
/****** Helper tasks ******/
25-
prepareReadmeTasks()
26-
prepareKotlinVersionUpdateTasks()
27-
28-
/****** Build tasks ******/
29-
preparePropertiesTask()
30-
createCleanTasks()
31-
32-
/****** Local install ******/
33-
prepareLocalTasks()
34-
35-
/****** Distribution ******/
36-
prepareDistributionTasks()
37-
createInstallTasks(false, distribBuildPath.resolve(distribKernelDir), distribBuildPath.resolve(runKernelDir))
38-
prepareCondaTasks()
39-
preparePyPiTasks()
40-
prepareAggregateUploadTasks()
41-
}
8+
project.configureKernelBuild()
429
}
4310
}

build-tools/build-plugin/src/build/distTasks.kt

Lines changed: 0 additions & 194 deletions
This file was deleted.

build-tools/build-plugin/src/build/distribution.kt

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,16 @@
11
package build
22

33
import org.gradle.api.Project
4-
import org.gradle.api.Task
54
import org.gradle.api.tasks.Exec
65
import org.gradle.api.tasks.InputFile
6+
import org.gradle.kotlin.dsl.getByType
77
import java.nio.file.Path
88

9-
interface DistribOptions {
10-
val isOnProtectedBranch: Boolean
11-
val cleanInstallDirDistrib: Task
12-
13-
val condaGroup: String
14-
val pyPiGroup: String
15-
val buildGroup: String
16-
17-
val condaTaskSpecs: UploadTaskSpecs<CondaTaskSpec>
18-
val pyPiTaskSpecs: UploadTaskSpecs<PyPiTaskSpec>
19-
20-
val distribKernelDir: String
21-
val distributionPath: Path
22-
23-
val distribUtilsPath: Path
24-
val distribUtilRequirementsPath: Path
25-
val distribUtilRequirementsHintsRemPath: Path
26-
val removeTypeHints: Boolean
27-
val typeHintsRemover: Path
28-
}
29-
30-
interface ProjectWithDistribOptions : Project, DistribOptions
31-
329
open class TaskSpec(
3310
var taskName: String = ""
3411
)
3512

36-
interface DistributionPackageSettings {
37-
val dir: String
38-
val fileName: String
39-
}
13+
class DistributionPackageSettings(val dir: String, val fileName: String)
4014

4115
class UploadTaskSpecs <T : TaskSpec>(
4216
val packageSettings: DistributionPackageSettings,
@@ -52,19 +26,18 @@ class UploadTaskSpecs <T : TaskSpec>(
5226

5327
private fun taskName(type: String) = repoName + "Upload" + type
5428

55-
fun createTasks(project: ProjectWithDistribOptions, taskCreationAction: (T) -> Unit) {
56-
with(project) {
57-
if (isOnProtectedBranch) {
58-
taskCreationAction(stable)
59-
}
60-
taskCreationAction(dev)
29+
fun createTasks(project: Project, taskCreationAction: (T) -> Unit) {
30+
val opts = project.extensions.getByType<KernelBuildExtension>()
31+
if (opts.isOnProtectedBranch) {
32+
taskCreationAction(stable)
33+
}
34+
taskCreationAction(dev)
6135

62-
project.task(taskName("Protected")) {
63-
dependsOn(cleanInstallDirDistrib)
64-
group = taskGroup
65-
if (isOnProtectedBranch) {
66-
dependsOn(dev.taskName)
67-
}
36+
project.task(taskName("Protected")) {
37+
dependsOn(opts.cleanInstallDirDistrib)
38+
group = taskGroup
39+
if (opts.isOnProtectedBranch) {
40+
dependsOn(dev.taskName)
6841
}
6942
}
7043
}

0 commit comments

Comments
 (0)