Increse coverage#931
Conversation
Also: * Add `source-command-build-run-build`
There was a problem hiding this comment.
Pull request overview
This PR updates the repository snapshot version, migrates coverage reporting to Kover at the root, and performs a sizable cleanup of deprecated :base APIs (including removing deprecated classes/methods and their dedicated tests). It also adds a targeted equality/hashCode contract test for EnvironmentType, refreshes generated dependency docs, and introduces/updates various agent/tooling configuration and guidance files.
Changes:
- Bump published snapshot version from
2.0.0-SNAPSHOT.391to2.0.0-SNAPSHOT.392(and refresh generated dependency reports accordingly). - Switch root coverage aggregation from JaCoCo to Kover (
KoverConfig.applyTo(...)) and deprecate legacy JaCoCo-based plumbing. - Remove multiple deprecated
:baseAPIs (and delete now-obsolete tests), plus add a focused unit test forEnvironmentTypeequals/hashCode.
Reviewed changes
Copilot reviewed 96 out of 106 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| version.gradle.kts | Bumps the published snapshot version to .392. |
| environment/src/test/kotlin/io/spine/environment/EnvironmentTypeSpec.kt | Adds an EqualsTester-based contract test for EnvironmentType. |
| docs/dependencies/pom.xml | Refreshes generated POM to the new snapshot version. |
| docs/dependencies/dependencies.md | Refreshes generated dependency/license report headings and timestamp. |
| buildSrc/src/main/kotlin/write-manifest.gradle.kts | Assigns Spine task group/description to the test manifest task. |
| buildSrc/src/main/kotlin/kmp-module.gradle.kts | Updates copyright header year. |
| buildSrc/src/main/kotlin/jvm-module.gradle.kts | Uses SpineTaskGroup for task grouping and updates copyright year. |
| buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts | Marks the script plugin as deprecated and emits a deprecation warning. |
| buildSrc/src/main/kotlin/jacoco-kmm-jvm.gradle.kts | Marks the script plugin as deprecated and emits a deprecation warning. |
| buildSrc/src/main/kotlin/io/spine/gradle/testing/Tasks.kt | Moves custom test tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/SpineTaskGroup.kt | Introduces a shared constant for the "spine" Gradle task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt | Adds Spine task group/description metadata for generatePom. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt | Adds Spine task group/description metadata for the merge task. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/TaskName.kt | Deprecates the JaCoCo task-name catalog (legacy pipeline). |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/PathMarker.kt | Deprecates legacy JaCoCo path markers. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/KoverConfig.kt | Adds Kover-based aggregation + generated-code exclusion implementation. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/JacocoConfig.kt | Deprecates legacy JaCoCo aggregation and adds task metadata. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileFilter.kt | Deprecates legacy JaCoCo pipeline helper. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileExtensions.kt | Fixes header typo (“THE USE”) and deprecates legacy JaCoCo helpers. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileExtension.kt | Deprecates legacy JaCoCo file extension enum. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/CodebaseFilter.kt | Deprecates legacy JaCoCo pipeline helper. |
| buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingExts.kt | Adds Spine task group/description metadata for publishing-related tasks. |
| buildSrc/src/main/kotlin/io/spine/gradle/publish/IncrementGuard.kt | Adds Spine task group/description metadata for the version increment check task. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Webpack.kt | Moves JS tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Publish.kt | Moves JS publish tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/LicenseReport.kt | Moves JS license report task to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/JsTasks.kt | Removes JS-specific task-group constants in favor of shared grouping. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/IntegrationTest.kt | Moves JS integration tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Clean.kt | Moves JS clean tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Check.kt | Moves JS check/coverage tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Assemble.kt | Moves JS assemble tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/javadoc/ExcludeInternalDoclet.kt | Adds Spine task group/description metadata to the custom Javadoc task. |
| buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt | Adds Spine task group/description metadata to GitHub Pages tasks. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Publish.kt | Moves Dart publish tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/IntegrationTest.kt | Moves Dart integration test task to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/DartTasks.kt | Removes Dart-specific task-group constants in favor of shared grouping. |
| buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Build.kt | Moves Dart build tasks to the shared Spine task group. |
| buildSrc/src/main/kotlin/io/spine/gradle/ConfigTester.kt | Adds Spine task group/description metadata to config tester tasks. |
| buildSrc/src/main/kotlin/io/spine/dependency/test/Kover.kt | Bumps Kover plugin version constant to 0.9.8. |
| buildSrc/src/main/kotlin/DokkaExts.kt | Adds Spine task group/description metadata for htmlDocsJar. |
| buildSrc/src/main/kotlin/config-tester.gradle.kts | Adds Spine task group/description metadata for the script clean task. |
| buildSrc/build.gradle.kts | Updates the pinned Kover plugin version to 0.9.8. |
| build.gradle.kts | Switches root coverage wiring from JacocoConfig to KoverConfig. |
| base/src/test/kotlin/io/spine/util/TextTest.kt | Deletes tests for the removed deprecated Text type. |
| base/src/test/java/io/spine/protobuf/CollectionsConverterTest.java | Deletes tests for the removed deprecated CollectionsConverter. |
| base/src/main/kotlin/io/spine/util/MoreCollections.kt | Removes deprecated collection extensions that delegated elsewhere. |
| base/src/main/kotlin/io/spine/string/Indent.kt | Removes deprecated DEFAULT_SIZE constant. |
| base/src/main/kotlin/io/spine/protobuf/AnyExts.kt | Removes deprecated unpackGuessingType() API. |
| base/src/main/kotlin/io/spine/io/Files.kt | Removes deprecated File.toUnix() API. |
| base/src/main/java/io/spine/util/Text.java | Removes deprecated Text type. |
| base/src/main/java/io/spine/type/TypeUrl.java | Removes deprecated toTypeName() method. |
| base/src/main/java/io/spine/query/Columns.java | Removes deprecation markers from unsupported mutator overrides. |
| base/src/main/java/io/spine/protobuf/Durations2.java | Removes deprecated members in favor of Protobuf Durations. |
| base/src/main/java/io/spine/protobuf/CollectionsConverter.java | Removes deprecated CollectionsConverter type. |
| base/src/main/java/io/spine/code/proto/SourceFile.java | Removes deprecated isRejections() logic from SourceFile. |
| base/src/main/java/io/spine/code/fs/FsObject.java | Removes deprecated directory() method; modernizes equals() pattern. |
| base/src/main/java/io/spine/base/Identifier.java | Removes deprecated findField(...) API. |
| AGENTS.md | Updates contributor-facing guidance (question-asking discipline). |
| .codex/hooks.json | Adds tool hooks to enforce repo gates and sanitation steps. |
| .codex/agents/review-docs.toml | Adds Codex agent definition for documentation review. |
| .codex/agents/kotlin-review.toml | Adds Codex agent definition for Kotlin/Java code review. |
| .codex/agents/dependency-audit.toml | Adds Codex agent definition for dependency auditing. |
| .claude/settings.local.json | Adds local Claude permissions configuration. |
| .claude/commands/raise-coverage.md | Adds a Claude command wrapper for the raise-coverage skill. |
| .agents/tasks/spine-task-group-constant.md | Adds a task plan documenting SpineTaskGroup constant rollout. |
| .agents/tasks/raise-base-coverage.md | Adds a task plan documenting the base coverage + API cleanup effort. |
| .agents/tasks/gradle-caching-plan.md | Adds a draft plan for Gradle caching improvements. |
| .agents/tasks/enforce-max-line-length.md | Adds a draft plan to enforce line-length guidance for agents. |
| .agents/tasks/cross-agent-skill-best-practices.md | Adds a draft plan to improve cross-agent skill portability. |
| .agents/tasks/buildsrc-gradle-review-findings.md | Adds a draft capturing Gradle review findings for follow-up work. |
| .agents/tasks/archive/raise-coverage.md | Archives historical raise-coverage task notes. |
| .agents/skills/version-bumped/SKILL.md | Updates wording to reference skills without slash-command syntax. |
| .agents/skills/version-bumped/agents/openai.yaml | Adds an OpenAI/Codex skill surface for version-bumped. |
| .agents/skills/update-copyright/SKILL.md | Tightens scope/behavior for auto copyright updates. |
| .agents/skills/update-copyright/agents/openai.yaml | Updates OpenAI/Codex prompt for update-copyright. |
| .agents/skills/source-command-run-build/SKILL.md | Adds a skill for running the migrated run-build command. |
| .agents/skills/review-docs/SKILL.md | Updates documentation review skill guidance and scope logic. |
| .agents/skills/review-docs/agents/openai.yaml | Adds an OpenAI/Codex skill surface for review-docs. |
| .agents/skills/raise-coverage/SKILL.md | Introduces the raise-coverage skill definition. |
| .agents/skills/raise-coverage/references/migrate-to-kover.md | Adds the migration recipe from JaCoCo to Kover. |
| .agents/skills/raise-coverage/references/coverage-signals.md | Adds Kover/JaCoCo XML localization and verification guidance. |
| .agents/skills/raise-coverage/agents/openai.yaml | Adds an OpenAI/Codex skill surface for raise-coverage. |
| .agents/skills/pre-pr/SKILL.md | Updates pre-PR orchestration guidance and naming. |
| .agents/skills/pre-pr/agents/openai.yaml | Adds an OpenAI/Codex skill surface for pre-pr. |
| .agents/skills/move-files/SKILL.md | Updates wording to reference version-bumped skill. |
| .agents/skills/kotlin-review/SKILL.md | Updates Kotlin review skill guidance and scope logic. |
| .agents/skills/kotlin-review/agents/openai.yaml | Adds an OpenAI/Codex skill surface for kotlin-review. |
| .agents/skills/java-to-kotlin/SKILL.md | Updates wording to reference version-bumped skill. |
| .agents/skills/gradle-review/spine-task-conventions.md | Adds Spine-specific Gradle task conventions doc. |
| .agents/skills/gradle-review/SKILL.md | Adds the gradle-review skill definition. |
| .agents/skills/gradle-review/practices/tasks.md | Adds ingested Gradle best practices for tasks. |
| .agents/skills/gradle-review/practices/README.md | Adds an index and ingest procedure for Gradle practices. |
| .agents/skills/gradle-review/agents/openai.yaml | Adds an OpenAI/Codex skill surface for gradle-review. |
| .agents/skills/dependency-update/SKILL.md | Updates wording to reference version-bumped skill. |
| .agents/skills/dependency-audit/SKILL.md | Updates dependency audit instructions and naming. |
| .agents/skills/dependency-audit/agents/openai.yaml | Adds an OpenAI/Codex skill surface for dependency-audit. |
| .agents/skills/check-links/SKILL.md | Updates link-checking behavior for non-Hugo repos and wording. |
| .agents/skills/check-links/agents/openai.yaml | Adds an OpenAI/Codex skill surface for check-links. |
| .agents/skills/bump-gradle/SKILL.md | Updates wording to reference version-bumped skill. |
| .agents/skills/api-discovery/SKILL.md | Updates API discovery guidance to be tool-agnostic. |
| .agents/skills/api-discovery/agents/openai.yaml | Adds an OpenAI/Codex skill surface for api-discovery. |
| .agents/documentation-guidelines.md | Adds guidance on API doc scope vs repository-internal references. |
| .agents/_TOC.md | Adds TOC entries for new skills (gradle-review, raise-coverage). |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #931 +/- ##
============================================
+ Coverage 74.90% 84.83% +9.93%
============================================
Files 206 203 -3
Lines 4399 4332 -67
Branches 356 355 -1
============================================
+ Hits 3295 3675 +380
+ Misses 968 513 -455
- Partials 136 144 +8 🚀 New features to boost your workflow:
|
| parsing/serialization utilities that the rest of the Spine SDK (notably | ||
| [`core-jvm`](https://github.com/SpineEventEngine/core-java)) depends on. The | ||
| artifacts published from this repo sit at the bottom of the Spine dependency | ||
| graph, so changes here ripple into most other Spine projects. |
| */ | ||
|
|
||
| val versionToPublish: String by extra("2.0.0-SNAPSHOT.391") | ||
| val versionToPublish: String by extra("2.0.0-SNAPSHOT.392") |
Also: * Update task doc with progress * Add memory for testing utility classes
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>
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 180 out of 192 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (3)
base/src/main/kotlin/io/spine/string/Indent.kt:60
DEFAULT_SIZEwas removed, but it was a public API (even if deprecated). Removing it is source-breaking for downstream users still compiling against it. Consider keeping it as a deprecated alias toDEFAULT_JAVA_INDENT_SIZEuntil the next major removal window.
base/src/main/java/io/spine/type/TypeUrl.java:280- The deprecated
toTypeName()convenience method was removed. If this project still targets downstream source compatibility during snapshot iterations, consider keeping it as a deprecated delegating wrapper aroundtypeName()until the next planned breaking release.
base/src/main/java/io/spine/code/fs/FsObject.java:62 - There is a formatting issue here: the Javadoc for
exists()starts immediately afterparent()without a blank line, which is likely to violate formatter/checkstyle rules and makes the file harder to read.
| parsing/serialization utilities that the rest of the Spine SDK (notably | ||
| [`core-jvm`](https://github.com/SpineEventEngine/core-java)) depends on. The | ||
| artifacts published from this repo sit at the bottom of the Spine dependency | ||
| graph, so changes here ripple into most other Spine projects. | ||
|
|
| - Public API stability matters: downstream Spine repos pin to versions | ||
| published from here, so removals and signature changes are breaking. | ||
| - No analytics, telemetry, reflection, or unsafe code (see | ||
| `.agents/guidelines/safety-rules.md`). | ||
| - Versioning follows the Spine SDK policy (`.agents/guidelines/version-policy.md`); | ||
| CI's `Version Guard` rejects branches that reuse a published version. |
| Read [`.agents/jvm-project.md`](jvm-project.md) for build stack, coding | ||
| style, tests, and versioning. |
| /** | ||
| * Unpacks this `Any`. | ||
| * |
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 180 out of 192 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (2)
base/src/test/kotlin/io/spine/io/CopySpec.kt:32
shouldNotBeis imported but not used. In Kotlin, unused imports fail compilation, so this test file will not compile.
base/src/main/java/io/spine/type/TypeUrl.java:279- This PR removes the deprecated
toTypeName()method fromTypeUrl. Even though it was deprecated, removing a public method is a breaking change for downstream users (both source and binary compatibility). If the intent is not to introduce a breaking change in this snapshot, consider keeping the method as a deprecated delegating wrapper until the next major (or at least until all known consumers migrate).
| import com.google.common.testing.EqualsTester | ||
| import com.google.protobuf.Descriptors.Descriptor | ||
| import com.google.protobuf.Empty | ||
| import com.google.protobuf.FieldMask |
| import com.google.common.testing.EqualsTester | ||
| import com.google.protobuf.DescriptorProtos.FileDescriptorProto | ||
| import com.google.protobuf.Empty | ||
| import io.kotest.matchers.collections.shouldContainExactly | ||
| import io.kotest.matchers.collections.shouldHaveSize | ||
| import io.kotest.matchers.ints.shouldBeLessThan | ||
| import io.kotest.matchers.optional.shouldBePresent | ||
| import io.kotest.matchers.shouldBe | ||
| import io.kotest.matchers.shouldNotBe | ||
| import io.kotest.matchers.string.shouldContain | ||
| import org.junit.jupiter.api.BeforeEach | ||
| import org.junit.jupiter.api.DisplayName | ||
| import org.junit.jupiter.api.Nested | ||
| import org.junit.jupiter.api.Test |
| parsing/serialization utilities that the rest of the Spine SDK (notably | ||
| [`core-jvm`](https://github.com/SpineEventEngine/core-java)) depends on. The | ||
| artifacts published from this repo sit at the bottom of the Spine dependency | ||
| graph, so changes here ripple into most other Spine projects. | ||
|
|
| */ | ||
|
|
||
| val versionToPublish: String by extra("2.0.0-SNAPSHOT.391") | ||
| val versionToPublish: String by extra("2.0.0-SNAPSHOT.392") |
No description provided.