Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"plansDirectory": ".claude/plans",
"permissions": {
"allow": [
"Edit(version.gradle.kts)",
Expand Down Expand Up @@ -32,8 +33,11 @@
"Bash(mkdir:*)",
"Bash(touch:*)",
"Bash(python3 .agents/skills/update-copyright/scripts/update_copyright.py:*)",
"Bash(.agents/skills/version-bumped/scripts/version-bumped.sh)",
"Bash(./config/pull)",
"Bash(./config/migrate)"
"Bash(./config/migrate)",
"Skill(pre-pr)",
"Skill(pre-pr:*)"
],
"deny": [
"Bash(git reset --hard:*)",
Expand Down
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,12 @@
.idea/modules
.idea/shelf

# `.idea/misc.xml` is intentionally NOT re-included below. It is project-local —
# it holds the per-project JDK name and IDEA's own churn (entry-point list
# indices, external-storage toggles) — so `.idea/*.xml` above keeps it ignored.
# `./config/pull` (via `migrate`) untracks any copy an earlier pull committed.

# Do not ignore the following IDEA settings
!.idea/misc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/
Expand Down Expand Up @@ -173,6 +177,12 @@ __pycache__/

# Claude working files
/.claude/worktrees/
# Ephemeral plan-mode scratch (durable task docs live in `.agents/tasks/`).
/.claude/plans/

# Personal, per-developer Claude Code settings overrides (never committed;
# the distributed `.claude/settings.json` is the shared, committed layer).
/.claude/settings.local.json

# Auto-downloaded Lychee binary used by the `check-links` skill.
/.agents/skills/check-links/.cache/
Expand All @@ -190,7 +200,6 @@ docs/_preview/resources/
# <<< shared config <<<

# >>> repo-local entries (preserved across ./config/pull) >>>
!.idea/misc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/
Expand Down
2 changes: 1 addition & 1 deletion .idea/live-templates/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 0 additions & 44 deletions .idea/misc.xml

This file was deleted.

4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ Code contributions should:
Contributor License Agreement
-----------------------------
Contributions to the code of Spine Event Engine framework and its libraries must be accompanied by
Contributor License Agreement (CLA).
a Contributor License Agreement (CLA).

* If you are an individual writing original source code and you're sure you own
the intellectual property, then you'll need to sign an individual CLA.

* If you work for a company which wants you to contribute your work,
* If you work for a company that wants you to contribute your work,
then an authorized person from your company will need to sign a corporate CLA.

Please [contact us][legal-email] for arranging the paper formalities.
Expand Down
4 changes: 4 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ buildscript {
val rs = this@resolutionStrategy
jackson.forceArtifacts(project, cfg, rs)
io.spine.dependency.lib.Jackson.DataType.forceArtifacts(project, cfg, rs)
io.spine.dependency.lib.Jackson.DataFormat.forceArtifacts(project, cfg, rs)

io.spine.dependency.kotlinx.Coroutines.forceArtifacts(
project, this@all, this@resolutionStrategy
Expand All @@ -82,6 +83,7 @@ buildscript {
force(
io.spine.dependency.lib.Kotlin.bom,
io.spine.dependency.lib.Jackson.annotations,
io.spine.dependency.lib.Jackson.bom,
io.spine.dependency.lib.Grpc.bom,
io.spine.dependency.local.Base.annotations,
io.spine.dependency.local.Base.environment,
Expand Down Expand Up @@ -156,6 +158,7 @@ allprojects {
force(
Kotlin.bom,
KotlinPoet.lib,
Jackson.bom,
Reflect.lib,
Base.lib,
ToolBase.lib,
Expand All @@ -164,6 +167,7 @@ allprojects {
Dokka.BasePlugin.lib,
Validation.runtime,
Validation.javaBundle,
CoreJvm.client,
CoreJvm.server,
Time.lib,
Time.javaExtensions,
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ val kotestJvmPluginVersion = "0.4.10"
/**
* @see [io.spine.dependency.test.Kover]
*/
val koverVersion = "0.9.8"
val koverVersion = "0.9.9"

/**
* The version of the Shadow Plugin.
Expand Down Expand Up @@ -222,7 +222,7 @@ dependOnBuildSrcJar()
/**
* Adds a dependency on a `buildSrc.jar`, iff:
* 1) the `src` folder is missing, and
* 2) `buildSrc.jar` is present in `buildSrc/` folder instead.
* 2) `buildSrc.jar` is present in the `buildSrc/` folder instead.
*
* This approach is used in the scope of integration testing.
*/
Expand All @@ -241,7 +241,7 @@ fun Project.dependOnBuildSrcJar() {
* Includes the `implementation` dependency on `artifactregistry-auth-common`,
* with the version defined in [googleAuthToolVersion].
*
* `artifactregistry-auth-common` has transitive dependency on Gson and Apache `commons-codec`.
* `artifactregistry-auth-common` has a transitive dependency on Gson and Apache `commons-codec`.
* Gson from version `2.8.6` until `2.8.9` is vulnerable to Deserialization of Untrusted Data
* (https://devhub.checkmarx.com/cve-details/CVE-2022-25647/).
*
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/quality/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>

<!--
~ Copyright 2025, TeamDev. All rights reserved.
~ Copyright 2026, TeamDev. All rights reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/quality/checkstyle.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>

<!--
~ Copyright 2025, TeamDev. All rights reserved.
~ Copyright 2026, TeamDev. All rights reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2025, TeamDev. All rights reserved.
* Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
20 changes: 10 additions & 10 deletions buildSrc/src/main/kotlin/BuildExtensions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ import org.gradle.plugin.use.PluginDependencySpec
/**
* Provides shortcuts to reference our dependency objects.
*
* Dependency objects cannot be used under `plugins` section because `io` is a value
* declared in auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file.
* Dependency objects cannot be used under the `plugins` section because `io` is a value
* declared in the auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file.
* It conflicts with our own declarations.
*
* In such cases, a shortcut to apply a plugin can be created:
Expand Down Expand Up @@ -91,7 +91,7 @@ val ScriptHandlerScope.coreJvmCompiler: CoreJvmCompiler
* Shortcut to [CoreJvmCompiler] dependency object.
*
* This plugin is not published to Gradle Portal and cannot be applied directly to a project.
* Firstly, it should be put to buildscript's classpath and then applied by ID only.
* Firstly, it should be put to the buildscript's classpath and then applied by ID only.
*/
val PluginDependenciesSpec.coreJvmCompiler: CoreJvmCompiler
get() = CoreJvmCompiler
Expand All @@ -116,8 +116,8 @@ val PluginDependenciesSpec.spineCompiler: Compiler
/**
* Provides shortcuts for applying plugins from our dependency objects.
*
* Dependency objects cannot be used under `plugins` section because `io` is a value
* declared in auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file.
* Dependency objects cannot be used under the `plugins` section because `io` is a value
* declared in the auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file.
* It conflicts with our own declarations.
*
* Declaring of top-level shortcuts eliminates the need to apply plugins
Expand Down Expand Up @@ -177,10 +177,10 @@ fun Project.configureTaskDependencies() {
* Creates a dependency between the Gradle task of *this* name
* onto the task with `taskName`.
*
* If either of tasks does not exist in the enclosing `Project`,
* If either of the tasks does not exist in the enclosing `Project`,
* this method does nothing.
*
* This extension is kept local to `configureTaskDependencies` extension
* This extension is kept local to the `configureTaskDependencies` extension
* to prevent its direct usage from outside.
*/
fun String.dependOn(taskName: String) {
Expand Down Expand Up @@ -278,7 +278,7 @@ fun JavaExec.remoteDebug(enabled: Boolean = true) {
*
* @param enabled If `true` the task will be suspended.
* @throws IllegalStateException if the task with the given name is not found, or,
* if the taks is not of [JavaExec] type.
* if the task is not of [JavaExec] type.
*/
fun Project.setRemoteDebug(taskName: String, enabled: Boolean = true) {
val task = tasks.findByName(taskName)
Expand Down Expand Up @@ -324,7 +324,7 @@ fun Project.testFixturesSpineCompilerRemoteDebug(enabled: Boolean = true) =
/**
* Parts of names of configurations to be excluded by
* `artifactMeta/excludeConfigurations/containing` in the modules
* where `io.spine.atifact-meta` plugin is applied.
* where the `io.spine.atifact-meta` plugin is applied.
*/
val buildToolConfigurations: Array<String> = arrayOf(
"detekt",
Expand All @@ -337,7 +337,7 @@ val buildToolConfigurations: Array<String> = arrayOf(
)

/**
* Make the `sourcesJar` task accept duplicated input, which seems to occur
* Makes the `sourcesJar` task accept duplicated input, which seems to occur
* somewhere inside Protobuf Gradle Plugin.
*/
fun Project.allowDuplicationInSourcesJar() {
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/BuildSettings.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2025, TeamDev. All rights reserved.
* Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/DependencyResolution.kt
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private fun ResolutionStrategy.forceTestDependencies() {
}

/**
* Forces transitive dependencies of 3rd party components that we don't use directly.
* Forces transitive dependencies of 3rd-party components that we don't use directly.
*/
private fun ResolutionStrategy.forceTransitiveDependencies() {
force(
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/DocumentationSettings.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2025, TeamDev. All rights reserved.
* Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/src/main/kotlin/DokkaExts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -198,11 +198,11 @@ fun TaskContainer.dokkaHtmlTask(): Task? = this.findByName("dokkaGeneratePublica
fun TaskContainer.dokkaJavadocTask(): Task? = this.findByName("dokkaGeneratePublicationJavadoc")

/**
* Locates or creates `htmlDocsJar` task in this [Project].
* Locates or creates the `htmlDocsJar` task in this [Project].
*
* The output of this task is a `jar` archive. The archive contains the Dokka output, generated upon
* Kotlin sources from `main` source set. Requires Dokka to be configured in the target project by
* applying `dokka-setup` plugin.
* Kotlin sources from the `main` source set. Requires Dokka to be configured in the target project by
* applying the `dokka-setup` plugin.
*/
fun Project.htmlDocsJar(): TaskProvider<Jar> = tasks.getOrCreate("htmlDocsJar") {
group = SpineTaskGroup.name
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Strings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

/**
* This file provides extensions to `String` and `CharSequence` that wrap
* analogues from standard Kotlin runtime.
* analogues from the standard Kotlin runtime.
*
* It helps in switching between versions of Gradle that have different versions of
* the Kotlin runtime. Please see the bodies of the extension functions for details on
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/config-tester.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ val config: Path = Paths.get("./")
// A temp folder to use to check out the sources of other repositories with the `ConfigTester`.
val tempFolder = File("./tmp")

// Creates a Gradle task which checks out and builds the selected Spine repositories
// Creates a Gradle task that checks out and builds the selected Spine repositories
// with the local version of `config` and `config/buildSrc`.
ConfigTester(config, tasks, tempFolder)
.addRepo(SpineRepos.baseTypes) // Builds `base-types` at `master`.
Expand Down
8 changes: 4 additions & 4 deletions buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2025, TeamDev. All rights reserved.
* Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -29,9 +29,9 @@ import io.gitlab.arturbosch.detekt.Detekt
/**
* This script-plugin sets up Kotlin code analyzing with Detekt.
*
* After applying, Detekt is configured to use `${rootDir}/buildSrc/quality/detekt-config.yml` file.
* After applying, Detekt is configured to use the `${rootDir}/buildSrc/quality/detekt-config.yml` file.
* Projects can append their own config files to override some parts of the default one or drop
* it at all in a favor of their own one.
* it at all in favor of their own one.
*
* An example of appending a custom config file to the default one:
*
Expand All @@ -49,7 +49,7 @@ import io.gitlab.arturbosch.detekt.Detekt
* }
* ```
*
* Also, it's possible to suppress Detekt findings using [baseline](https://detekt.dev/docs/introduction/baseline/)
* Also, it's possible to suppress Detekt findings using a [baseline](https://detekt.dev/docs/introduction/baseline/)
* file instead of suppressions in source code.
*
* An example of passing a baseline file:
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/io/spine/dependency/Dependency.kt
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ abstract class Dependency {
* Forces all artifacts of this dependency using the given resolution strategy.
*
* @param project The project in which the artifacts are forced. Used for logging.
* @param cfg The configuration for which the artifacts are forced. Used for logging.
* @param cfg The configuration for which the artifacts are forced. Used for logging.
* @param rs The resolution strategy that forces the artifacts.
*/
fun forceArtifacts(project: Project, cfg: Configuration, rs: ResolutionStrategy) {
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/io/spine/dependency/boms/Boms.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2025, TeamDev. All rights reserved.
* Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ import org.gradle.api.artifacts.ConfigurationContainer
*
* In addition to forcing BOM-based dependencies,
* the plugin [forces][org.gradle.api.artifacts.ResolutionStrategy.force] the versions
* of [Kotlin.StdLib.artifacts] for all configurations because even through Kotlin
* of [Kotlin.StdLib.artifacts] for all configurations because even though Kotlin
* artifacts are forced with BOM, the `variants` in the dependencies cannot be
* picked by Gradle.
*
Expand Down
Loading
Loading