Update config, migrate to Kover#315
Conversation
alexander-yevsyukov
left a comment
There was a problem hiding this comment.
@copilot, please see my comments and questions.
There was a problem hiding this comment.
Pull request overview
This PR syncs the repository with the latest shared config changes, migrates JVM coverage tooling from JaCoCo to Kover, and adds/extends unit tests in the jvm-runtime module to cover newly supported validation behaviors.
Changes:
- Migrated coverage configuration to Kover (including updating build scripts and coverage-related build logic).
- Standardized Gradle task grouping via a shared
SpineTaskGroupconstant and applied it across many custom tasks. - Added new
jvm-runtimetests forValidatableMessage,TemplateStringplaceholder filling,ViolationTextmessaging, andValidatorRegistryparent context propagation.
Reviewed changes
Copilot reviewed 95 out of 103 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| version.gradle.kts | Bumps published Validation version snapshot. |
| jvm-runtime/src/test/kotlin/io/spine/validation/ValidatorRegistrySpec.kt | Adds tests for parent path/type propagation and field-path/value merging in violations. |
| jvm-runtime/src/test/kotlin/io/spine/validation/ValidatableMessageSpec.kt | Adds a test ensuring ValidatableMessage.validate() default overload delegates correctly. |
| jvm-runtime/src/test/kotlin/io/spine/validation/TemplateStringExtsSpec.kt | Adds tests for filling standard placeholders in template strings. |
| jvm-runtime/src/test/kotlin/io/spine/validation/diags/ViolationTextSpec.kt | Adds tests for default vs custom error message selection. |
| docs/dependencies/pom.xml | Updates generated dependency POM versions and switches to JaCoCo org.jacoco.report. |
| buildSrc/src/main/kotlin/write-manifest.gradle.kts | Adds task metadata (group/description) using shared task-group constant. |
| buildSrc/src/main/kotlin/uber-jar-module.gradle.kts | Updates ShadowJar config and publishing setup wiring. |
| buildSrc/src/main/kotlin/module.gradle.kts | Replaces jacoco with Kover plugin in shared module convention. |
| buildSrc/src/main/kotlin/kmp-module.gradle.kts | Updates copyright year (config sync). |
| buildSrc/src/main/kotlin/jvm-module.gradle.kts | Updates copyright year (config sync) and task metadata. |
| buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts | Marks legacy JaCoCo script plugin deprecated and emits warning. |
| buildSrc/src/main/kotlin/jacoco-kmm-jvm.gradle.kts | Marks legacy JaCoCo script plugin deprecated and emits warning. |
| buildSrc/src/main/kotlin/io/spine/gradle/testing/Tasks.kt | Moves test task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/SpineTaskGroup.kt | Introduces shared Gradle task-group constant (spine). |
| buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/TaskName.kt | Removes JaCoCo task-name enum (coverage migration). |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/PathMarker.kt | Removes JaCoCo path-marker enum (coverage migration). |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/KoverConfig.kt | Adds root aggregation + generated-code exclusion configuration for Kover. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/JacocoConfig.kt | Removes legacy JaCoCo aggregation configuration. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileFilter.kt | Removes JaCoCo-era file filtering utility. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileExtensions.kt | Removes JaCoCo-era file extension/path parsing helpers. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/CodebaseFilter.kt | Removes JaCoCo-era compiled-output filtering utility. |
| buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingExts.kt | Adds task metadata for publishing/support jars; standardizes task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/publish/IncrementGuard.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Webpack.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Publish.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/LicenseReport.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/JsTasks.kt | Removes old per-language task-group constants in favor of SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/IntegrationTest.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Clean.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Check.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Assemble.kt | Standardizes JS task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/javadoc/ExcludeInternalDoclet.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Publish.kt | Standardizes Dart task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/IntegrationTest.kt | Standardizes Dart task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/DartTasks.kt | Removes old per-language task-group constants in favor of SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Build.kt | Standardizes Dart task grouping to SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/gradle/ConfigTester.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/io/spine/dependency/test/Kover.kt | Bumps Kover plugin version constant. |
| buildSrc/src/main/kotlin/io/spine/dependency/test/Jacoco.kt | Bumps JaCoCo engine version constant. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt | Updates referenced Validation artifact version. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt | Updates ToolBase dependency versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt | Updates Core JVM compiler plugin versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt | Updates Compiler dependency fallback versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt | Updates Base dependency versions. |
| buildSrc/src/main/kotlin/DokkaExts.kt | Adds task metadata using SpineTaskGroup. |
| buildSrc/src/main/kotlin/config-tester.gradle.kts | Adds task metadata using SpineTaskGroup. |
| buildSrc/build.gradle.kts | Bumps buildSrc Kover plugin version used on build classpath. |
| build.gradle.kts | Switches root coverage wiring from JaCoCo to Kover. |
| AGENTS.md | Adds guideline for asking at most one question per message. |
| .claude/commands/raise-coverage.md | Adds Claude command wrapper for the raise-coverage skill. |
| .agents/tasks/spine-task-group-constant.md | Adds task plan documenting the task-group constant migration. |
| .agents/tasks/gradle-caching-plan.md | Adds build-caching rollout plan (draft). |
| .agents/tasks/enforce-max-line-length.md | Adds plan to enforce max line length in agent guidance (draft). |
| .agents/tasks/cross-agent-skill-best-practices.md | Adds cross-agent skills best-practices audit (draft). |
| .agents/tasks/buildsrc-gradle-review-findings.md | Captures Gradle review findings and remediation plan (draft). |
| .agents/tasks/archive/raise-coverage.md | Archives an earlier raise-coverage task plan. |
| .agents/skills/version-bumped/SKILL.md | Updates wording to refer to skills without slash-command phrasing. |
| .agents/skills/version-bumped/agents/openai.yaml | Adds OpenAI/Codex metadata for version-bumped. |
| .agents/skills/update-copyright/SKILL.md | Tightens scope rules for automatic copyright updates. |
| .agents/skills/update-copyright/agents/openai.yaml | Updates OpenAI/Codex metadata prompt. |
| .agents/skills/review-docs/SKILL.md | Improves repo-aware filtering and adds API-doc scope constraints. |
| .agents/skills/review-docs/agents/openai.yaml | Adds OpenAI/Codex metadata for review-docs. |
| .agents/skills/raise-coverage/SKILL.md | Introduces raise-coverage skill with Kover-first workflow. |
| .agents/skills/raise-coverage/references/migrate-to-kover.md | Adds detailed JaCoCo→Kover migration recipe. |
| .agents/skills/raise-coverage/references/coverage-signals.md | Adds Kover/JaCoCo XML interpretation guide for coverage triage. |
| .agents/skills/raise-coverage/agents/openai.yaml | Adds OpenAI/Codex metadata for raise-coverage. |
| .agents/skills/pre-pr/SKILL.md | Improves repo-aware filtering and clarifies reviewer execution flow. |
| .agents/skills/pre-pr/agents/openai.yaml | Adds OpenAI/Codex metadata for pre-pr. |
| .agents/skills/move-files/SKILL.md | Updates wording to refer to skills without slash-command phrasing. |
| .agents/skills/kotlin-review/SKILL.md | Improves repo-aware filtering for config vs consumer repos. |
| .agents/skills/kotlin-review/agents/openai.yaml | Adds OpenAI/Codex metadata for kotlin-review. |
| .agents/skills/kotlin-engineer/SKILL.md | Introduces Kotlin policy/pitfalls skill. |
| .agents/skills/kotlin-engineer/references/idioms.md | Adds Kotlin API/idioms reference. |
| .agents/skills/kotlin-engineer/references/coroutines.md | Adds coroutines/Flow pitfalls reference. |
| .agents/skills/kotlin-engineer/references/build-setup.md | Adds Kotlin build-setup pitfalls reference. |
| .agents/skills/kotlin-engineer/agents/openai.yaml | Adds OpenAI/Codex metadata for kotlin-engineer. |
| .agents/skills/java-to-kotlin/SKILL.md | Updates wording to refer to skills without slash-command phrasing. |
| .agents/skills/gradle-review/spine-task-conventions.md | Adds Spine Gradle task metadata conventions reference. |
| .agents/skills/gradle-review/SKILL.md | Introduces gradle-review skill. |
| .agents/skills/gradle-review/practices/tasks.md | Adds ingested Gradle tasks best-practices reference. |
| .agents/skills/gradle-review/practices/README.md | Adds index and ingest procedure for Gradle practices. |
| .agents/skills/gradle-review/agents/openai.yaml | Adds OpenAI/Codex metadata for gradle-review. |
| .agents/skills/dependency-update/SKILL.md | Updates wording to refer to skills without slash-command phrasing. |
| .agents/skills/dependency-audit/SKILL.md | Clarifies tool-agnostic language and updates skill references. |
| .agents/skills/dependency-audit/agents/openai.yaml | Adds OpenAI/Codex metadata for dependency-audit. |
| .agents/skills/check-links/SKILL.md | Makes link-checking skill Hugo-site-aware and adjusts phrasing. |
| .agents/skills/check-links/agents/openai.yaml | Adds OpenAI/Codex metadata for check-links. |
| .agents/skills/bump-version/SKILL.md | Clarifies commit message quoting/backticks guidance. |
| .agents/skills/bump-gradle/SKILL.md | Updates wording to refer to skills without slash-command phrasing. |
| .agents/skills/api-discovery/SKILL.md | Makes guidance tool-agnostic and adjusts phrasing. |
| .agents/skills/api-discovery/agents/openai.yaml | Adds OpenAI/Codex metadata for api-discovery. |
| .agents/documentation-guidelines.md | Adds rule preventing repo-internal references in API docs. |
| .agents/_TOC.md | Adds TOC entries for new skills. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 102 out of 108 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
jvm-runtime/src/test/kotlin/io/spine/validation/StandardPlaceholderSpec.kt:18
- The Apache 2.0 license header was truncated in this file (the standard disclaimer lines about implied warranties and liability are missing), which makes it inconsistent with the rest of the codebase’s headers.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #315 +/- ##
============================================
+ Coverage 9.53% 12.09% +2.55%
- Complexity 62 82 +20
============================================
Files 82 82
Lines 2034 2034
Branches 160 160
============================================
+ Hits 194 246 +52
+ Misses 1834 1786 -48
+ Partials 6 2 -4 🚀 New features to boost your workflow:
|
armiol
left a comment
There was a problem hiding this comment.
@alexander-yevsyukov LGTM in general. Please see my comments, though.
| import org.junit.jupiter.api.DisplayName | ||
| import org.junit.jupiter.api.Test | ||
|
|
||
| @DisplayName("message validation extensions should") |
There was a problem hiding this comment.
Let's at least capitalize the display name.
| internal class MessageExtensionsSpec { | ||
|
|
||
| @Test | ||
| fun `delegate 'checkValid' to 'Validate_check'`() { |
There was a problem hiding this comment.
How about we use -> in such cases? E.g. delegate 'checkValid' to 'Validate->check'?
I remember, there is even a better arrow, but it's more difficult to type: → :)
delegate 'checkValid' to 'Validate→check'
There was a problem hiding this comment.
We cannot have > in a function name. The → causes warning.
This PR applies latest
configand migrates to Kover. Several minor tests were also added underjvm-runtimemodule.