Repository navigation
Fix broken links in the docs - #341
Conversation
Lychee found these links broken once the documentation site stopped inlining jQuery: - `running-builds.md` and `documentation-guidelines.md` no longer live in `.agents/`. Link `running-builds.md` and `documentation.md` in the shared `agents` repository instead. - The plugin is not published to the Gradle Plugin Portal: the build applies `java-gradle-plugin` but not `com.gradle.plugin-publish`, and the plugin marker sits in GitHub Packages and the Artifact Registry. Drop the Portal link and describe the actual destinations. - `EMBEDDING.md` became `showcase/embedding/README.md` in `embed-code-go`. - The user guide linked `../06-developers-guide/` and `../../developer/`. Neither is a page, so the theme resolved them to the site root. Link the first page of the Developer's guide. - Restore `typical_custom_option.jpg`, which was deleted rather than moved when the guides moved into `user/` and `developer/`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🟡 Changes recommended
The plugin setup link points to a nonexistent directory when the Markdown is viewed on GitHub, leaving repository readers unable to reach the instructions.
1 open issue
What changed in this PR
This PR repairs links in the Validation documentation identified by issue #340 and corrects the explanation of where the Gradle plugin is published.
Changes:
- Update developer-guide navigation and links to shared guidelines and embedding documentation.
- Replace Gradle Plugin Portal references with the actual Maven publication destinations.
- Bump the version to
2.0.0-SNAPSHOT.470and synchronize the embedded snippet and dependency reports.
| File | Description |
|---|---|
version.gradle.kts |
Bumps the snapshot version. |
docs/dependencies/pom.xml |
Synchronizes the dependency-report version. |
docs/dependencies/dependencies.md |
Refreshes report versions and timestamps. |
docs/content/docs/validation/user/05-custom-validation/summary.md |
Corrects the developer-guide link. |
docs/content/docs/validation/user/05-custom-validation/pass-to-compiler.md |
Corrects the developer-guide link. |
docs/content/docs/validation/user/04-validators/implement-a-validator.md |
Corrects the developer-guide link. |
docs/content/docs/validation/user/04-validators/_index.md |
Corrects the developer-guide link. |
docs/content/docs/validation/developer/testing-strategy.md |
Updates the plain-text documentation-guidelines path. |
docs/content/docs/validation/developer/documentation/procedures.md |
Links to the shared documentation guidelines. |
docs/content/docs/validation/developer/documentation/embedded-examples.md |
Links to the relocated embedding guide. |
docs/content/docs/validation/developer/build-and-release.md |
Corrects publication details, updates the guidelines link, and synchronizes the version snippet. |
Review effort: Balanced
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`configureTaskDependencies()` now wires the tasks lazily, so it no longer realizes them in `afterEvaluate`. That eager realization used to order `generateProto` before `kspKotlin` by chance. Without it, Gradle reports that `kspKotlin` reads `generated/main/java` (and `kspTestKotlin` reads `generated/test/java`) without depending on the task that writes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The `./config/pull` raised `CoreJvmCompiler.version`, which `updateCoreJvmPluginVersion` writes into the examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The script no longer uses `SpinePublishing` or `StandardJavaPublicationHandler`. No plugin from `CoreJvmCompiler.gradlePlugin` is applied here. The classpath entry came in as `mcJava.pluginLib` with `apply(plugin = "io.spine.mc-java")` (fb62d71). It stayed after 53ada48 removed the `apply`, and later commits only renamed it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #341 +/- ##
=========================================
Coverage 93.96% 93.96%
Complexity 367 367
=========================================
Files 86 86
Lines 2271 2271
Branches 159 159
=========================================
Hits 2134 2134
Misses 93 93
Partials 44 44 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟡 Changes recommended
The updated theme requires Dart Sass, but the documentation omits it from the prerequisites and installation steps, leaving site tasks failing when it is absent.
1 open issue
1 resolved since last review
Review effort: Balanced

The documentation site now serves jQuery as a file instead of inlining it
(SpineEventEngine/site-commons#39). Before, Lychee stopped extracting links at
the inlined script, so
check-linksonly saw each page's<head>. Now it seesevery link, and 9 links in these docs fail. SpineEventEngine/documentation#96 lists
them in a temporary
.lycheeignore; this PR fixes them at the source.Fixes
running-builds.md,documentation-guidelines.md:.agents/guidelinesis now a symlink into the shared
agentssubmodule, so the oldvalidation/blob/master/.agents/…URLs 404. The links now point toguidelines/running-builds.mdandguidelines/documentation.md(the renameddocumentation-guidelines.md) in SpineEventEngine/agents. The plain-text pathin
testing-strategy.mdis updated to match.plugins.gradle.org/plugin/io.spine.validationreturns 400 because the plugin is not on the Portal. The build applies
java-gradle-pluginbut notcom.gradle.plugin-publish. The plugin markerio.spine.validation:io.spine.validation.gradle.pluginis published to GitHubPackages and the Artifact Registry (
snapshots), next to the libraries."Build, packaging, and release" now says so: the link is gone, and the
diagram and the publication text name the repositories the plugin really
goes to.
EMBEDDING.md: SpineEventEngine/embed-code-go moved it toshowcase/embedding/README.md, which its README calls the "embedding guide".../06-developers-guide/and../../developer/match no page (
developer/has no_index.md). The theme's relative-linkresolver passes them through, and they end up at
/06-developers-guide/and/developer/. They now point todeveloper/overview-and-audience.md, theguide's first page, which
docs/validation/_index.mdalready links to.typical_custom_option.jpg: 1810c30 (moving the guides intouser/and
developer/) deleted the image instead of moving it. It is restored nextto
user/05-custom-validation/_index.md(same blob,5880f4e).Lychee also flagged
embed-code-go/tree/master/binin the module version thedocumentation site pins (
6465029). Those links are already fixed onmaster.The version is bumped to
2.0.0-SNAPSHOT.470for the Version Guard. Theembedded
version.gradle.ktssnippet, the plugin version embedded in "Addingto build", and the dependency reports are updated to match.
docs/_previewnow uses site-commons1c7c5ef, the latestmaster. It servesjQuery as a file (SpineEventEngine/site-commons#39), compiles the styles with
Dart Sass (SpineEventEngine/site-commons#40), and declares
go 1.27.3, whichraises the preview's
goline to match.configupdate./config/pullbringsconfigto3a0d13a6. ItsCheck Linksworkflow nowfinds a Hugo config in
docs/_preview/(SpineEventEngine/config#827) andinstalls Dart Sass 1.99.0 for Hugo 0.169.0, so this repository's link check
actually builds and checks the site. No local dependency pin went down this
time.
The pull also exposed a missing dependency in
jvm-runtime. Gradle reportedthat
kspKotlinreadsgenerated/main/javawithout depending ongenerateProto, which writes it. KSP reads the Kotlin source set, which listsgenerated/main/javaandgenerated/main/grpcwith no build dependency.Only the Java source set carries
builtBy(generateProto), and that was sobefore the pull too.
What hid the gap was
dokka-setup.gradle.kts. It used to calltasks.findByName("kspKotlin")inafterEvaluate, which creates the taskearly and, as a side effect, gave it the dependency. The pull's lazy
tasks.named { … }no longer does (restoring only the olddokka-setup.gradle.ktsmakes the clean build pass again). The commit messageof e967e68 blames
configureTaskDependencies()instead; I tested that, andthe old helper alone does not help.
jvm-runtime/build.gradle.ktsnow declareskspKotlin→generateProtoandkspTestKotlin→generateTestProto. The dependency reports are regeneratedfor the newer tool versions. The pull also raised CoreJvm Compiler to
.099, so"Adding to build" embeds the new
io.spine.core-jvmversion.While there,
jvm-runtime/build.gradle.ktslost two unused imports and itsclasspath(CoreJvmCompiler.gradlePlugin). That entry is a leftover from McJava:no plugin from it is applied, and the module builds the same without it.
Verification
I built the validation docs preview with Hugo 0.169.0 and Dart Sass 1.99.0
(
hugo -e developmentplushugo server -e development), then ran Lychee0.24.2 with this repo's
lychee.toml:masterwith site-commons9216e48: 9 errors, the links listed above.1c7c5ef: 0 errors (3403 links, 429 unique).After the
configupdate, I ran the new workflow's detect step locally, and itresolves
work_dir=docs/_preview. Then I ran the link check the way theworkflow does, against
hugo serveron port 1313: 0 errors. Before thisupdate, the
check-linksjob skipped this site with "No Hugo site found"../gradlew buildpasses. I also rebuiltjvm-runtimefrom clean with--no-build-cache, so thatgenerateProtoandkspKotlinreally ran.Fixes #340
🤖 Generated with Claude Code