Skip to content

Commit 8f035f4

Browse files
committed
Added versions catalog instead of storing version properties
1 parent 2480e96 commit 8f035f4

File tree

12 files changed

+165
-76
lines changed

12 files changed

+165
-76
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![official JetBrains project](https://jb.gg/badges/official-plastic.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
44
![Build status](https://buildserver.labs.intellij.net/app/rest/builds/buildType:id:Kotlin_KotlinSites_Deployments_PlayKotlinlangOrg_Backend_BuildMaster/statusIcon.svg)
5-
![Java CI](https://github.com/AlexanderPrendota/kotlin-compiler-server/workflows/Java%20CI/badge.svg)
5+
![Java CI](https://github.com/JetBrains/kotlin-compiler-server/workflows/Java%20CI/badge.svg)
66
![TC status](https://img.shields.io/teamcity/build/s/Kotlin_KotlinPlayground_KotlinCompilerServer_Build?label=TeamCity%20build)
77
[![Kotlin](https://img.shields.io/badge/Kotlin-1.7.20-orange.svg) ](https://kotlinlang.org/)
88
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0)
@@ -57,7 +57,7 @@ Swagger url: http://localhost:8080/swagger-ui/
5757
## How to add your dependencies to kotlin compiler :books:
5858

5959
Just put whatever you need as dependencies
60-
to [build.gradle.kts](https://github.com/AlexanderPrendota/kotlin-compiler-server/blob/master/build.gradle.kts) via a
60+
to [build.gradle.kts](https://github.com/JetBrains/kotlin-compiler-server/blob/master/build.gradle.kts) via a
6161
task called `kotlinDependency`:
6262

6363
```
@@ -113,19 +113,19 @@ In case of an unsuccessful execution in the standard output will be the event wi
113113
"level_value": 20000,
114114
"hasErrors": true,
115115
"confType": "JAVA",
116-
"kotlinVersion": "$koltinVersion"
116+
"kotlinVersion": "$kotlinVersion"
117117
}
118118
```
119119

120120
## Kotlin release guide :rocket:
121121

122122
1) Update the kotlin version
123-
in [gradle.properties](https://github.com/AlexanderPrendota/kotlin-compiler-server/blob/master/gradle.properties)
123+
in [libs.versions.toml](https://github.com/JetBrains/kotlin-compiler-server/blob/master/gradle/libs.versions.toml)
124124
2) Make sure everything is going well via the task:
125125

126126
```shell script
127127
$ ./gradlew build
128128
```
129129

130130
3) Save branch with the name of the kotlin version. Pattern: `/^[0-9.]+$/` (optional)
131-
4) Bump version on GitHub [releases](https://github.com/AlexanderPrendota/kotlin-compiler-server/releases) (optional)
131+
4) Bump version on GitHub [releases](https://github.com/JetBrains/kotlin-compiler-server/releases) (optional)

build.gradle.kts

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@ import org.springframework.boot.gradle.tasks.bundling.BootJar
77
val policy: String by System.getProperties()
88

99
group = "com.compiler.server"
10-
version = "$kotlinVersion-SNAPSHOT"
10+
version = "${libs.versions.kotlin.get()}-SNAPSHOT"
1111

1212
val propertyFile = "application.properties"
1313

1414
plugins {
15-
id("org.springframework.boot") version "2.7.10"
16-
id("io.spring.dependency-management") version "1.1.3"
17-
val kotlinVersion by System.getProperties()
18-
kotlin("jvm") version "$kotlinVersion"
19-
kotlin("plugin.spring") version "$kotlinVersion"
15+
alias(libs.plugins.spring.dependency.management)
16+
alias(libs.plugins.spring.boot)
17+
alias(libs.plugins.kotlin.jvm)
18+
alias(libs.plugins.kotlin.plugin.spring)
2019
}
2120

2221
kotlin.jvmToolchain {
@@ -46,7 +45,7 @@ allprojects {
4645
dependencies {
4746
dependencies {
4847
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2")
49-
implementation("org.jetbrains.kotlin:idea:231-$kotlinIdeVersion-$kotlinIdeVersionSuffix") {
48+
implementation(libs.kotlin.idea) {
5049
isTransitive = false
5150
}
5251
}
@@ -63,31 +62,29 @@ dependencies {
6362
annotationProcessor("org.springframework:spring-context-indexer")
6463
implementation("com.google.code.gson:gson")
6564
implementation("org.springframework.boot:spring-boot-starter-web")
66-
implementation("io.springfox:springfox-boot-starter:3.0.0")
67-
implementation("com.amazonaws.serverless:aws-serverless-java-container-springboot2:1.9.3")
68-
implementation("junit:junit:4.13.2")
69-
implementation("net.logstash.logback:logstash-logback-encoder:7.3")
70-
implementation("org.jetbrains.intellij.deps:trove4j:1.0.20221201")
71-
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
72-
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
73-
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion")
74-
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
75-
implementation("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
76-
implementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion")
77-
implementation("org.jetbrains.kotlin:kotlin-script-runtime:$kotlinVersion")
78-
implementation("org.jetbrains.kotlin:kotlin-compiler-for-ide:$kotlinIdeVersion") {
65+
implementation(libs.springfox.boot.starter)
66+
implementation(libs.aws.springboot.container)
67+
implementation(libs.junit)
68+
implementation(libs.logback.logstash.encoder)
69+
implementation(libs.intellij.trove4j)
70+
implementation(libs.kotlin.reflect)
71+
implementation(libs.bundles.kotlin.stdlib)
72+
implementation(libs.kotlin.test)
73+
implementation(libs.kotlin.compiler)
74+
implementation(libs.kotlin.script.runtime)
75+
implementation(libs.kotlin.compiler.ide) {
7976
isTransitive = false
8077
}
81-
implementation("org.jetbrains.kotlin:core:231-$kotlinIdeVersion-$kotlinIdeVersionSuffix")
78+
implementation(libs.kotlin.core)
8279
implementation(project(":executors", configuration = "default"))
8380
implementation(project(":common", configuration = "default"))
8481

8582
testImplementation("org.springframework.boot:spring-boot-starter-test") {
8683
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
8784
}
88-
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")
85+
testImplementation(libs.kotlinx.coroutines.test)
8986

90-
resourceDependency("org.jetbrains.skiko:skiko-js-wasm-runtime:0.7.90")
87+
resourceDependency(libs.skiko.js.wasm.runtime)
9188
}
9289

9390
fun buildPropertyFile() {
@@ -129,7 +126,7 @@ tasks.withType<KotlinCompile> {
129126
dependsOn(":indexation:run")
130127
buildPropertyFile()
131128
}
132-
println("Using Kotlin compiler $kotlinVersion")
129+
println("Using Kotlin compiler ${libs.versions.kotlin.get()}")
133130

134131
tasks.withType<BootJar> {
135132
requiresUnpack("**/kotlin-*.jar")

buildSrc/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ plugins {
44

55
repositories {
66
mavenCentral()
7+
}
8+
9+
// workaround to pass libs into conventions (see https://github.com/gradle/gradle/issues/15383)
10+
dependencies {
11+
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
712
}

buildSrc/settings.gradle.kts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
dependencyResolutionManagement {
2+
versionCatalogs {
3+
create("libs") {
4+
from(files("../gradle/libs.versions.toml"))
5+
}
6+
val kotlinVersion = providers.gradleProperty("kotlinVersion")
7+
if (kotlinVersion.isPresent) {
8+
create("libs") {
9+
version("kotlin", kotlinVersion.get())
10+
}
11+
}
12+
}
13+
}

buildSrc/src/main/kotlin/properties.kt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
import org.gradle.api.Project
22
import org.gradle.kotlin.dsl.provideDelegate
3+
import org.gradle.accessors.dm.LibrariesForLibs
4+
import org.gradle.kotlin.dsl.the
35

4-
val kotlinVersion: String by System.getProperties()
5-
val kotlinIdeVersion: String by System.getProperties()
6-
val kotlinIdeVersionSuffix: String by System.getProperties()
76
val indexes: String by System.getProperties()
87
val indexesJs: String by System.getProperties()
98
val indexesWasm: String by System.getProperties()
109
val indexesComposeWasm: String by System.getProperties()
1110

12-
val libJS = "$kotlinVersion-js"
13-
val libWasm = "$kotlinVersion-wasm"
14-
val libComposeWasm = "$kotlinVersion-compose-wasm"
15-
val libComposeWasmCompilerPlugins = "$kotlinVersion-compose-wasm-compiler-plugins"
16-
val libJVM = kotlinVersion
11+
// workaround to pass libs into conventions (see https://github.com/gradle/gradle/issues/15383)
12+
val Project.kotlinVersion
13+
get() = the<LibrariesForLibs>().versions.kotlin.get()
14+
15+
val Project.libJS
16+
get() = "$kotlinVersion-js"
17+
val Project.libWasm
18+
get() = "$kotlinVersion-wasm"
19+
val Project.libComposeWasm
20+
get() = "$kotlinVersion-compose-wasm"
21+
val Project.libComposeWasmCompilerPlugins
22+
get() = "$kotlinVersion-compose-wasm-compiler-plugins"
23+
val Project.libJVM
24+
get() = kotlinVersion
1725

1826
val Project.libJSFolder
1927
get() = rootProject.layout.projectDirectory.dir(libJS)

common/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
}
44

55
dependencies {
6-
implementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion")
7-
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin-idea:$kotlinVersion")
8-
implementation("org.jetbrains.kotlin:base-fe10-analysis:231-$kotlinIdeVersion-$kotlinIdeVersionSuffix")
6+
implementation(libs.kotlin.compiler)
7+
implementation(libs.kotlin.gradle.plugin.idea)
8+
implementation(libs.kotlin.base.fe10.analysis)
99
}

dependencies/build.gradle.kts

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ val composeWasmCompilerPlugins: Configuration by configurations.creating {
5858
isTransitive = false
5959
}
6060

61-
62-
val jacksonVersionKotlinDependencyJar = "2.14.0" // don't forget to update version in `executor.policy` file.
63-
6461
val composeRuntimeVersion = "1.6.0"
6562

6663
val copyDependencies by tasks.creating(Copy::class) {
@@ -92,33 +89,23 @@ plugins {
9289
}
9390

9491
dependencies {
95-
kotlinDependency("junit:junit:4.13.2")
96-
kotlinDependency("org.hamcrest:hamcrest:2.2")
97-
kotlinDependency("com.fasterxml.jackson.core:jackson-databind:$jacksonVersionKotlinDependencyJar")
98-
kotlinDependency("com.fasterxml.jackson.core:jackson-core:$jacksonVersionKotlinDependencyJar")
99-
kotlinDependency("com.fasterxml.jackson.core:jackson-annotations:$jacksonVersionKotlinDependencyJar")
92+
kotlinDependency(libs.junit)
93+
kotlinDependency(libs.hamcrest)
94+
kotlinDependency(libs.bundles.jackson)
10095
// Kotlin libraries
101-
kotlinDependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
102-
kotlinDependency("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion")
103-
kotlinDependency("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
104-
kotlinDependency("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
105-
kotlinDependency("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3")
106-
kotlinDependency("org.jetbrains.kotlinx:kotlinx-io-core:0.5.1")
107-
kotlinDependency("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4")
108-
kotlinDependency("org.jetbrains.kotlinx:kotlinx-datetime:0.6.0-RC.2")
109-
kotlinJsDependency("org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion")
110-
kotlinJsDependency("org.jetbrains.kotlin:kotlin-dom-api-compat:$kotlinVersion")
111-
kotlinWasmDependency("org.jetbrains.kotlin:kotlin-stdlib-wasm-js:$kotlinVersion")
96+
kotlinDependency(libs.bundles.kotlin.stdlib)
97+
kotlinDependency(libs.kotlin.test)
98+
kotlinDependency(libs.kotlinx.coroutines.core.jvm)
99+
kotlinDependency(libs.kotlinx.coroutines.test)
100+
kotlinDependency(libs.kotlinx.io.core)
101+
kotlinDependency(libs.kotlinx.datetime)
102+
kotlinJsDependency(libs.kotlin.stdlib.js)
103+
kotlinJsDependency(libs.kotlin.dom.api.compat)
104+
kotlinWasmDependency(libs.kotlin.stdlib.wasm.js)
112105

113106
// compose
114-
kotlinComposeWasmDependency("org.jetbrains.kotlin:kotlin-stdlib-wasm-js:$kotlinVersion")
115-
kotlinComposeWasmDependency("org.jetbrains.compose.runtime:runtime:$composeRuntimeVersion")
116-
kotlinComposeWasmDependency("org.jetbrains.compose.ui:ui:$composeRuntimeVersion")
117-
kotlinComposeWasmDependency("org.jetbrains.compose.animation:animation:$composeRuntimeVersion")
118-
kotlinComposeWasmDependency("org.jetbrains.compose.animation:animation-graphics:$composeRuntimeVersion")
119-
kotlinComposeWasmDependency("org.jetbrains.compose.foundation:foundation:$composeRuntimeVersion")
120-
kotlinComposeWasmDependency("org.jetbrains.compose.material:material:$composeRuntimeVersion")
121-
kotlinComposeWasmDependency("org.jetbrains.compose.components:components-resources:$composeRuntimeVersion")
122-
123-
composeWasmCompilerPlugins("org.jetbrains.kotlin:kotlin-compose-compiler-plugin:$kotlinVersion")
107+
kotlinComposeWasmDependency(libs.kotlin.stdlib.wasm.js)
108+
kotlinComposeWasmDependency(libs.bundles.compose)
109+
110+
composeWasmCompilerPlugins(libs.kotlin.compose.compiler.plugin)
124111
}

executors/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ kotlin.jvmToolchain {
88
}
99

1010
dependencies {
11-
implementation("junit:junit:4.13.2")
11+
implementation(libs.junit)
1212
}
1313

1414
tasks.withType<Jar>().getByName("jar") {

gradle.properties

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
systemProp.kotlinVersion=2.0.20-RC
2-
systemProp.kotlinIdeVersion=1.9.20-506
3-
systemProp.kotlinIdeVersionSuffix=IJ8109.175
41
systemProp.policy=executor.policy
52
systemProp.indexes=indexes.json
63
systemProp.indexesJs=indexesJs.json

gradle/libs.versions.toml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
[versions]
2+
kotlin = "2.0.20-RC"
3+
kotlinIdeVersion = "1.9.20-506"
4+
kotlinIdeVersionWithSuffix = "231-1.9.20-506-IJ8109.175"
5+
spring-boot = "2.7.10"
6+
spring-dependency-managment = "1.1.3"
7+
springfox-boot-starter = "3.0.0"
8+
aws-serverless-java-container-springboot2 = "1.9.3"
9+
junit = "4.13.2"
10+
logstash-logback-encoder = "7.3"
11+
trove4j = "1.0.20221201"
12+
kotlinx-coroutines = "1.7.3"
13+
kotlinx-coroutines-test = "1.6.4"
14+
skiko = "0.7.90"
15+
# don't forget to update jackson version in `executor.policy` file.
16+
jackson = "2.14.0"
17+
hamcrest = "2.2"
18+
compose = "1.6.0"
19+
kotlinx-datetime = "0.6.0-RC.2"
20+
kotlinx-io-core = "0.5.1"
21+
22+
[libraries]
23+
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
24+
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
25+
kotlin-stdlib-jdk7 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk7", version.ref = "kotlin" }
26+
kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
27+
kotlin-stdlib-js = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-js", version.ref = "kotlin" }
28+
kotlin-stdlib-wasm-js = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-wasm-js", version.ref = "kotlin" }
29+
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }
30+
kotlin-compiler = { group = "org.jetbrains.kotlin", name = "kotlin-compiler", version.ref = "kotlin" }
31+
kotlin-script-runtime = { group = "org.jetbrains.kotlin", name = "kotlin-script-runtime", version.ref = "kotlin" }
32+
kotlin-gradle-plugin-idea = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin-idea", version.ref = "kotlin" }
33+
kotlin-dom-api-compat = { group = "org.jetbrains.kotlin", name = "kotlin-dom-api-compat", version.ref = "kotlin" }
34+
kotlin-compose-compiler-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-compose-compiler-plugin", version.ref = "kotlin" }
35+
kotlin-base-fe10-analysis = { group = "org.jetbrains.kotlin", name = "base-fe10-analysis", version.ref = "kotlinIdeVersionWithSuffix" }
36+
kotlin-compiler-ide = { group = "org.jetbrains.kotlin", name = "kotlin-compiler-for-ide", version.ref = "kotlinIdeVersion" }
37+
kotlin-idea = { group = "org.jetbrains.kotlin", name = "idea", version.ref = "kotlinIdeVersionWithSuffix" }
38+
kotlin-core = { group = "org.jetbrains.kotlin", name = "core", version.ref = "kotlinIdeVersionWithSuffix" }
39+
kotlinx-coroutines-core-jvm = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core-jvm", version.ref = "kotlinx-coroutines" }
40+
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines-test" }
41+
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" }
42+
kotlinx-io-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-io-core", version.ref = "kotlinx-io-core" }
43+
springfox-boot-starter = { group = "io.springfox", name = "springfox-boot-starter", version.ref = "springfox-boot-starter" }
44+
aws-springboot-container = { group = "com.amazonaws.serverless", name = "aws-serverless-java-container-springboot2", version.ref = "aws-serverless-java-container-springboot2" }
45+
junit = { group = "junit", name = "junit", version.ref = "junit" }
46+
logback-logstash-encoder = { group = "net.logstash.logback", name = "logstash-logback-encoder", version.ref = "logstash-logback-encoder" }
47+
intellij-trove4j = { group = "org.jetbrains.intellij.deps", name = "trove4j", version.ref = "trove4j" }
48+
skiko-js-wasm-runtime = { group = "org.jetbrains.skiko", name = "skiko-js-wasm-runtime", version.ref = "skiko" }
49+
jackson-databind = { group = "com.fasterxml.jackson.core", name = "jackson-databind", version.ref = "jackson" }
50+
jackson-core = { group = "com.fasterxml.jackson.core", name = "jackson-core", version.ref = "jackson" }
51+
jackson-annotations = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson" }
52+
hamcrest = { group = "org.hamcrest", name = "hamcrest", version.ref = "hamcrest" }
53+
compose-runtime = { group = "org.jetbrains.compose.runtime", name = "runtime", version.ref = "compose" }
54+
compose-ui = { group = "org.jetbrains.compose.ui", name = "ui", version.ref = "compose" }
55+
compose-animation = { group = "org.jetbrains.compose.animation", name = "animation", version.ref = "compose" }
56+
compose-animation-graphics = { group = "org.jetbrains.compose.animation", name = "animation-graphics", version.ref = "compose" }
57+
compose-foundation = { group = "org.jetbrains.compose.foundation", name = "foundation", version.ref = "compose" }
58+
compose-material = { group = "org.jetbrains.compose.material", name = "material", version.ref = "compose" }
59+
compose-components-resources = { group = "org.jetbrains.compose.components", name = "components-resources", version.ref = "compose" }
60+
61+
62+
[bundles]
63+
kotlin-stdlib = ["kotlin-stdlib", "kotlin-stdlib-jdk7", "kotlin-stdlib-jdk8"]
64+
jackson = ["jackson-databind", "jackson-core", "jackson-annotations"]
65+
compose = ["compose-runtime", "compose-ui", "compose-animation", "compose-animation-graphics", "compose-foundation", "compose-material", "compose-components-resources"]
66+
67+
[plugins]
68+
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
69+
kotlin-plugin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
70+
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
71+
spring-dependency-management = { id = "io.spring.dependency-management", version.ref = "spring-dependency-managment" }

0 commit comments

Comments
 (0)