Improve task dependencies#63
Conversation
Also: * Rename the `render_actions.proto` to `actions.proto` after the name of the declared proto type.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6a440c2d64
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR updates the Gradle Compiler plugin to reliably wire Kotlin Symbol Processing (KSP) task dependencies onto LaunchSpineCompiler tasks (even when KSP is applied after the Compiler plugin), and adds a functional test fixture to validate the behavior. It also includes a broad “latest config” sync (dependency bumps, tooling/agent docs, coverage filtering changes, and a docs link-check workflow).
Changes:
- Arrange
ksp<SourceSet>Kotlin→launch<SourceSet>SpineCompilerdependencies viaafterEvaluate, plus a functional test project to assert the dependency. - Update build tooling and reporting (JaCoCo aggregation + generated Kotlin source visibility; dependency/version bumps).
- Sync repository automation/docs/agent infrastructure (AGENTS/skills/scripts, link-check workflow, misc config files).
Reviewed changes
Copilot reviewed 71 out of 85 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| version.gradle.kts | Bump published compiler version snapshot. |
| gradle-plugin/src/main/kotlin/io/spine/tools/compiler/gradle/plugin/Plugin.kt | Add afterEvaluate wiring for KSP → launch task dependencies. |
| gradle-plugin/src/main/kotlin/io/spine/tools/compiler/gradle/plugin/LaunchSpineCompiler.kt | Remove in-task KSP dependency wiring; clarify dependency responsibilities in KDoc. |
| gradle-plugin/src/main/kotlin/io/spine/tools/compiler/gradle/plugin/KspTaskName.kt | Fix KSP task naming (ksp…Kotlin instead of compile…Kotlin). |
| gradle-plugin/src/functionalTest/resources/ksp-test/src/main/proto/test.proto | Add minimal proto file for KSP functional test fixture. |
| gradle-plugin/src/functionalTest/resources/ksp-test/settings.gradle.kts | Add functional test fixture settings (plugin repos). |
| gradle-plugin/src/functionalTest/resources/ksp-test/build.gradle.kts | Add functional test fixture build that applies KSP after Compiler plugin and prints KSP deps. |
| gradle-plugin/src/functionalTest/kotlin/io/spine/tools/compiler/gradle/plugin/PluginSpec.kt | Add functional test asserting kspKotlin depends on launchSpineCompiler. |
| docs/dependencies/pom.xml | Update dependency report versions (config sync). |
| CLAUDE.md | Switch to @AGENTS.md inclusion + Claude-specific notes. |
| buildSrc/src/test/kotlin/io/spine/gradle/report/coverage/FileExtensionsTest.kt | Add unit tests for new source→class-name mapping logic. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/PathMarker.kt | Simplify markers; rename main output marker. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/JacocoConfig.kt | Delay config until projects evaluated; include Kotlin src dirs; ensure report tasks depend on tests. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileExtensions.kt | Replace old parsing helpers with classNamesIn(sourceRoot) for Java/Kotlin/proto-kt naming. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/FileExtension.kt | Add Kotlin source extension enum value. |
| buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/CodebaseFilter.kt | Use new source→class-name mapping for generated code filtering. |
| buildSrc/src/main/kotlin/io/spine/dependency/test/Jacoco.kt | Bump JaCoCo version constant. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt | Bump Validation version; refactor gradle plugin coordinate constant. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt | Bump Time version. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt | Bump Core JVM Compiler version. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt | Bump compiler fallback versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt | Bump Spine Base versions. |
| buildSrc/src/main/kotlin/io/spine/dependency/lib/Jackson.kt | Bump Jackson versions (incl. annotations). |
| api/src/test/kotlin/io/spine/tools/compiler/render/ActionFactorySpec.kt | Clarify KDoc type reference. |
| api/src/main/proto/spine/compiler/actions.proto | Remove (required)=true from action map field. |
| AGENTS.md | Expand/centralize agent guidance and review skip rules. |
| .idea/misc.xml | Update IDE project metadata formatting/indices and add XML header. |
| .idea/live-templates/User.xml | Fix date format pattern casing. |
| .idea/live-templates/README.md | Fix spelling/whitespace in template install docs. |
| .gitignore | Ignore link-check skill caches and Hugo preview artifacts. |
| .github/workflows/check-links.yml | Add docs link-check workflow using Hugo + Lychee with caching. |
| .github/copilot-instructions.md | Add Copilot-specific repo instruction entrypoint. |
| .codecov.yml | Adjust Codecov status settings and path filters. |
| .claude/settings.json | Update hooks/permissions paths and add additional gate hooks. |
| .claude/scripts/sanitize-source-code.kt | Remove old hook implementation (replaced by shell script under .agents/scripts/). |
| .claude/agents/dependency-audit.md | Pin a specific Claude model for the dependency-audit agent. |
| .agents/tasks/README.md | Add durable task-plan format documentation. |
| .agents/tasks/archive/setup-cross-tool-agent-instructions.md | Add archived task plan (config sync artifact). |
| .agents/tasks/archive/prompt-caching-org.md | Add archived task plan (config sync artifact). |
| .agents/tasks/archive/prohibit-automatic-commits.md | Add archived task plan (config sync artifact). |
| .agents/tasks/archive/api-discovery.md | Add archived task plan (config sync artifact). |
| .agents/skills/version-bumped/SKILL.md | Add new skill documentation for version bump gating. |
| .agents/skills/version-bumped/scripts/version-bumped.sh | Add version-bump enforcement script. |
| .agents/skills/review-docs/SKILL.md | Update docs review scope (include proto) and config-distributed filtering rule. |
| .agents/skills/pre-pr/SKILL.md | Rework pre-PR orchestration (parallel reviewers, sentinel logic, check-links integration). |
| .agents/skills/move-files/SKILL.md | Strengthen git mv rule and add version-bump gate step. |
| .agents/skills/kotlin-review/SKILL.md | Add config-distributed filtering rule and Kotlin Protobuf DSL guideline. |
| .agents/skills/java-to-kotlin/SKILL.md | Add version-bump gate as final step. |
| .agents/skills/dependency-update/SKILL.md | Add /version-bumped as a required follow-up step. |
| .agents/skills/dependency-audit/SKILL.md | Update audit workflow (diff-first, batch greps, don’t stop at first failure). |
| .agents/skills/check-links/SKILL.md | Add local link-check skill documentation mirroring CI workflow behavior. |
| .agents/skills/bump-version/SKILL.md | Add explicit commit authorization section and shell-safe example. |
| .agents/skills/bump-gradle/SKILL.md | Add explicit commit authorization section and version-bump gate step. |
| .agents/skills/api-discovery/SKILL.md | Add api-discovery skill documentation (avoid unzipping Gradle cache). |
| .agents/scripts/update-copyright.sh | Add post-tool hook to refresh copyright headers. |
| .agents/scripts/sanitize-source-code.sh | Add post-tool hook to sanitize whitespace/blank lines. |
| .agents/scripts/publish-version-gate.sh | Add pre-tool hook to block risky Gradle tasks without version bump. |
| .agents/scripts/protect-version-file.sh | Enhance version file edit blocking (supports patch-based tools; fail-closed if jq missing). |
| .agents/scripts/pre-pr-gate.sh | Add jq precheck and improved messaging for PR creation gate. |
| .agents/scripts/api-discovery/update-sibling | Add safe sibling repo updater (git pull --ff-only on default branch only). |
| .agents/scripts/api-discovery/README.md | Add implementation reference for api-discovery scripts. |
| .agents/scripts/api-discovery/lib/common.sh | Add shared helpers for api-discovery scripts. |
| .agents/scripts/api-discovery/extract-sources | Add sources-jar extraction caching script. |
| .agents/scripts/api-discovery/discover | Add artifact-to-source-path resolver script. |
| .agents/scripts/api-discovery/clean-cache | Add cache-pruning script for api-discovery. |
| .agents/scripts/api-discovery/.gitignore | Ignore local workspace-root override file. |
| .agents/safety-rules.md | Add explicit “no history writes without authorization” policy. |
| .agents/quick-reference-card.md | Replace prior content with a commit/history-write prohibition pointer. |
| .agents/project.template.md | Add project.md template for sibling repos. |
| .agents/project.md | Add project.md (currently still template placeholders). |
| .agents/project-overview.md | Remove older project overview doc (superseded). |
| .agents/memory/reference/cache-warm-window.md | Add reference memory about prompt caching TTL behavior. |
| .agents/memory/reference/anthropic-api-caching.md | Add reference memory about Anthropic API prompt caching. |
| .agents/memory/reference/.gitkeep | Keep reference memory directory tracked. |
| .agents/memory/README.md | Add team memory format and routing rules. |
| .agents/memory/MEMORY.md | Add memory index file. |
| .agents/memory/feedback/copilot-review-request.md | Add team memory about requesting Copilot reviews via GraphQL. |
| .agents/memory/feedback/.gitkeep | Keep feedback memory directory tracked. |
| .agents/memory/project/.gitkeep | Keep project memory directory tracked. |
| .agents/jvm-project.md | Add shared JVM repo checklist doc. |
| .agents/documentation-guidelines.md | Add proto header guidance. |
| .agents/coding-guidelines.md | Add Kotlin Protobuf DSL guidance. |
| .agents/_TOC.md | Update agents documentation TOC to new structure. |
Files not reviewed (3)
- .idea/live-templates/README.md: Language not supported
- .idea/live-templates/User.xml: Language not supported
- .idea/misc.xml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 71 out of 85 changed files in this pull request and generated 1 comment.
Files not reviewed (3)
- .idea/live-templates/README.md: Language not supported
- .idea/live-templates/User.xml: Language not supported
- .idea/misc.xml: Language not supported
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 74 out of 88 changed files in this pull request and generated no new comments.
Files not reviewed (3)
- .idea/live-templates/README.md: Language not supported
- .idea/live-templates/User.xml: Language not supported
- .idea/misc.xml: Language not supported
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. Thanks for integrating Codecov - We've got you covered ☂️ |
This PR fixes the way dependencies of KSP tasks are set onto
LaunchSpineCompilertasks (thus resolving ##62).It should allow avoiding the build arrangements like this in the consumer projects:
afterEvaluate { tasks.named("kspTestFixturesKotlin") { mustRunAfter("launchTestFixturesSpineCompiler") }Other notable changes
render_actions.protowas renamed toactions.prototo reflect the name of the single top-level type declared in the file.(required)option was dropped on theActions.actionproperty because defaultAnyinstances could be put into the map when an action does not require parameters.configwas applied.