Skip to content

Commit 1012d59

Browse files
Merge pull request #236 from SpineEventEngine/bump-core-jvm-compiler
Bump CoreJvm Compiler
2 parents 6f2aeff + 5fad874 commit 1012d59

29 files changed

Lines changed: 1004 additions & 1360 deletions

.junie/guidelines.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Guidelines for Junie and AI Agent from JetBrains
22

3-
Read the `../.agents/_TOC.md` file at the root of the project to understand:
3+
Read the `../.agents/_TOC.md` file to understand:
44
- the agent responsibilities,
5-
- project overview,
6-
- coding guidelines,
5+
- project overview,
6+
- coding guidelines,
77
- other relevant topics.
88

99
Also follow the Junie-specific rules described below.

CLAUDE.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Project Configuration for Claude Code
2+
3+
## Agent Guidelines
4+
Please read and follow all guidelines in the project's agent documentation:
5+
6+
- Start with the table of contents: `./agents/_TOC.md`.
7+
- Follow all linked documents from the TOC.
8+
- Apply all coding standards, formatting rules, and project conventions found in these documents.
9+
10+
## Key Points for Claude Code
11+
- All guidelines in the `.agents` directory apply to Claude Code interactions.
12+
- Pay special attention to Kotlin formatting requirements (trailing newlines, detekt compliance).
13+
- Follow project-specific conventions documented in the agent guidelines.
14+
15+
## Priority
16+
The `.agents` directory contains the authoritative project standards.
17+
These take precedence over default behaviors.

buildSrc/build.gradle.kts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2525
*/
2626

27+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
28+
2729
/**
2830
* This script uses two declarations of the constant [licenseReportVersion] because
2931
* currently there is no way to define a constant _before_ a build script of `buildSrc`.
@@ -140,7 +142,7 @@ val koverVersion = "0.9.1"
140142
*
141143
* `7.1.2` is the last version compatible with Gradle 7.x. Newer versions require Gradle v8.x.
142144
*
143-
* @see <a href="https://github.com/johnrengelman/shadow/releases">Shadow Plugin releases</a>
145+
* @see <a href="https://github.com/GradleUp/shadow">Shadow Plugin releases</a>
144146
*/
145147
val shadowVersion = "8.3.6"
146148

@@ -158,6 +160,17 @@ configurations.all {
158160
}
159161
}
160162

163+
java {
164+
sourceCompatibility = JavaVersion.VERSION_17
165+
targetCompatibility = JavaVersion.VERSION_17
166+
}
167+
168+
kotlin {
169+
compilerOptions {
170+
jvmTarget.set(JvmTarget.JVM_17)
171+
}
172+
}
173+
161174
dependencies {
162175
api("com.github.jk1:gradle-license-report:$licenseReportVersion")
163176
api(platform("org.jetbrains.kotlin:kotlin-bom:$kotlinEmbeddedVersion"))

buildSrc/src/main/kotlin/BuildExtensions.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,3 +332,18 @@ fun Project.testSpineCompilerRemoteDebug(enabled: Boolean = true) =
332332
*/
333333
fun Project.testFixturesSpineCompilerRemoteDebug(enabled: Boolean = true) =
334334
setRemoteDebug("launchTestFixturesSpineCompiler", enabled)
335+
336+
/**
337+
* Parts of names of configurations to be excluded by
338+
* `artifactMeta/excludeConfigurations/containing` in the modules
339+
* where `io.spine.atifact-meta` plugin is applied.
340+
*/
341+
val buildToolConfigurations: Array<String> = arrayOf(
342+
"detekt",
343+
"jacoco",
344+
"pmd",
345+
"checkstyle",
346+
"checkerframework",
347+
"ksp",
348+
"dokka",
349+
)

buildSrc/src/main/kotlin/ForcePlugins.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ fun ScriptHandlerScope.forceCodegenPlugins() {
4343

4444
dependencies {
4545
CoreJvmCompiler.run {
46-
classpath(pluginLib(version))
46+
classpath(pluginLibNew(version))
4747
}
4848
spineCompiler.run {
4949
classpath(pluginLib(version))

buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ object Ksp : Dependency() {
3939
override val group = "com.google.devtools.ksp"
4040

4141
const val id = "com.google.devtools.ksp"
42+
const val gradlePluginArtifactName = "com.google.devtools.ksp.gradle.plugin"
4243

4344
val symbolProcessingApi = "$group:symbol-processing-api"
4445
val symbolProcessing = "$group:symbol-processing"

buildSrc/src/main/kotlin/io/spine/dependency/lib/Jackson.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ import io.spine.dependency.DependencyWithBom
3333
@Suppress("unused")
3434
object Jackson : DependencyWithBom() {
3535
override val group = "com.fasterxml.jackson"
36-
override val version = "2.18.3"
36+
override val version = "2.20.0"
37+
38+
// https://github.com/FasterXML/jackson-annotations?tab=readme-ov-file#release-notes
39+
const val annotationsVersion = "2.20"
3740

3841
// https://github.com/FasterXML/jackson-bom
3942
override val bom = "$group:jackson-bom:$version"
@@ -51,16 +54,19 @@ object Jackson : DependencyWithBom() {
5154
val databind = "$coreGroup:jackson-databind"
5255

5356
// https://github.com/FasterXML/jackson-annotations
54-
val annotations = "$coreGroup:jackson-annotations"
57+
val annotations = "$coreGroup:jackson-annotations:$annotationsVersion"
5558

5659
// https://github.com/FasterXML/jackson-module-kotlin/releases
5760
val moduleKotlin = "$moduleGroup:jackson-module-kotlin"
5861

62+
// https://github.com/FasterXML/jackson-modules-java8
63+
val moduleParameterNames = "$moduleGroup:jackson-module-parameter-names"
64+
5965
override val modules = listOf(
6066
core,
6167
databind,
62-
annotations,
63-
moduleKotlin
68+
moduleKotlin,
69+
moduleParameterNames
6470
)
6571

6672
object DataFormat : Dependency() {
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright 2025, TeamDev. All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Redistribution and use in source and/or binary forms, with or without
11+
* modification, must retain the above copyright notice and the following
12+
* disclaimer.
13+
*
14+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
18+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
20+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25+
*/
26+
27+
package io.spine.dependency.lib
28+
29+
import io.spine.dependency.Dependency
30+
31+
/**
32+
* Palantir Java Format.
33+
*
34+
* @see <a href="https://github.com/palantir/palantir-java-format">GitHub Repo</a>
35+
*/
36+
object PalantirJavaFormat : Dependency() {
37+
38+
override val group = "com.palantir.javaformat"
39+
override val version = "2.75.0"
40+
override val modules: List<String> = listOf("$group:palantir-java-format")
41+
42+
val lib = artifact(modules[0])
43+
}

buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ object Compiler {
7070
* The version of ProtoData dependencies.
7171
*/
7272
val version: String
73-
private const val fallbackVersion = "2.0.0-SNAPSHOT.016"
73+
private const val fallbackVersion = "2.0.0-SNAPSHOT.024"
7474

7575
/**
7676
* The distinct version of ProtoData used by other build tools.
@@ -79,7 +79,7 @@ object Compiler {
7979
* transitional dependencies, this is the version used to build the project itself.
8080
*/
8181
val dogfoodingVersion: String
82-
private const val fallbackDfVersion = "2.0.0-SNAPSHOT.016"
82+
private const val fallbackDfVersion = "2.0.0-SNAPSHOT.024"
8383

8484
/**
8585
* The artifact for the ProtoData Gradle plugin.
@@ -161,10 +161,10 @@ object Compiler {
161161
-----------------------------------------
162162
Regular version = v$version
163163
Dogfooding version = v$dogfoodingVersion
164-
164+
165165
The Compiler Gradle plugin can now be loaded from Maven Local.
166-
167-
To reset the versions, erase the `$$VERSION_ENV` and `$$DF_VERSION_ENV` environment variables.
166+
167+
To reset the versions, erase the `$$VERSION_ENV` and `$$DF_VERSION_ENV` environment variables.
168168
169169
""".trimIndent())
170170
} else {

buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJava.kt renamed to buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@
2626

2727
package io.spine.dependency.local
2828

29-
import io.spine.dependency.local.ToolBase
29+
// For backward compatibility.
30+
typealias CoreJava = CoreJvm
3031

3132
/**
3233
* Dependencies on `core-java` modules.
3334
*
3435
* See [`SpineEventEngine/core-java`](https://github.com/SpineEventEngine/core-java/).
3536
*/
3637
@Suppress("ConstPropertyName", "unused")
37-
object CoreJava {
38+
object CoreJvm {
3839
const val group = Spine.group
3940
const val version = "2.0.0-SNAPSHOT.330"
4041

0 commit comments

Comments
 (0)