Repository navigation
Drop Roaster leftovers and update config - #25
Conversation
Pulls `config` to `b284c67`. No local dependency pin was kept:
every version `config` brought is equal to or newer than ProtoTap's
own, and `ToolBase` stays at `2.0.0-SNAPSHOT.428`.
`./config/pull` also rewrote the repo-owned `module.gradle.kts` from
`updateGitHubPages { }` to `publishApiDocs { }`, following the rename
of the plugin in `config`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The updated `config` declares the `jar` packaging for standard publications and fails `generatePomFileForMavenJavaPublication` when a publication has no classifier-less JAR. The only JAR of `protoc-plugin` has the `exe` classifier, so the build broke. Set the packaging back to `pom`, as Gradle calculated it before. The POM matches the published `0.17.3` one apart from dependency versions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Roaster no longer reaches any configuration of the project: ToolBase `plugin-base` and `jvm-tools` do not depend on `classic-codegen`, and none of the 144 resolvable configurations resolves `org.jboss.forge.roaster` or JNA. Remove the `org/jboss/**` and `META-INF/services/org.jboss.forge.roaster.*.*` exclusions from the `gradle-plugin` fat JAR, and `Roaster.api` and `Roaster.jdt` from the forced versions. The fat JAR keeps the same 9,302 entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The publication also has classified sources and javadoc JARs, so the point is that it has no main artifact, not that the `exe` JAR is the only one. 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.
🟢 Approved
The review records no active issues requiring changes before approval.
No open issues 🎉
What changed in this PR
This PR removes obsolete Roaster wiring from ProtoTap and adopts updated shared build configuration. It preserves the executable protoc plugin’s publication format and prepares release 0.17.5.
Changes:
- Remove unused Roaster dependency forcing and fat-JAR exclusions.
- Adopt publishing checks and separate API documentation publishing, retaining
pompackaging for the classified protoc executable. - Bump the release version and refresh dependency reports, shared build utilities, tests, and workflows.
| File | Description |
|---|---|
version.gradle.kts |
Bumps the release to 0.17.5. |
protoc-plugin/build.gradle.kts |
Preserves pom packaging for the executable publication. |
init-submodules |
Initializes nested submodules after updating their parent. |
gradle-plugin/build.gradle.kts |
Removes obsolete Roaster exclusions. |
docs/dependencies/pom.xml |
Refreshes release and dependency versions. |
docs/dependencies/dependencies.md |
Regenerates release dependency reports. |
buildSrc/src/test/kotlin/io/spine/gradle/report/license/DependencyReportOutputTest.kt |
Adds single-project report merging coverage. |
buildSrc/src/test/kotlin/io/spine/gradle/report/coverage/FileExtensionsTest.kt |
Updates nested test formatting. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt |
Updates nested test formatting. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/RemoteFileSpec.kt |
Tests remote reads, retries, and redirects. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/PublicationStateSpec.kt |
Tests publication completeness and commit checks. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/PublicationStateIgTest.kt |
Adds publication-state integration coverage. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/PublicationSbomIgTest.kt |
Tests lazy task creation and packaging validation. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/ProtoExtsSpec.kt |
Tests lazy Protobuf task dependencies. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/IncrementGuardTest.kt |
Updates nested test formatting. |
buildSrc/src/test/kotlin/io/spine/gradle/publish/ArtifactComponentsSpec.kt |
Updates nested test declarations. |
buildSrc/src/test/kotlin/io/spine/gradle/javadoc/JavadocConfigSpec.kt |
Tests lazy Javadoc configuration. |
buildSrc/src/test/kotlin/io/spine/gradle/github/pages/PublishApiDocsIgTest.kt |
Tests documentation publishing task selection. |
buildSrc/src/test/kotlin/io/spine/gradle/github/pages/NewestAboveSpec.kt |
Tests documentation version ordering. |
buildSrc/src/test/kotlin/io/spine/gradle/git/RepositorySpec.kt |
Tests sparse clones and concurrent branch publication. |
buildSrc/src/test/kotlin/io/spine/gradle/docs/DokkaSetupIgTest.kt |
Adapts tests to publishApiDocs. |
buildSrc/src/test/kotlin/io/spine/gradle/CliSpec.kt |
Tests command output preservation and failures. |
buildSrc/src/test/kotlin/BuildExtensionsSpec.kt |
Tests lazy remote-debug configuration. |
buildSrc/src/main/kotlin/module.gradle.kts |
Removes Roaster forcing and separates docs publishing. |
buildSrc/src/main/kotlin/jvm-module.gradle.kts |
Adopts independent API documentation publishing. |
buildSrc/src/main/kotlin/io/spine/gradle/TaskName.kt |
Adds a reusable task-registration helper. |
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt |
Uses lazy lifecycle task references. |
buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt |
Updates report task configuration. |
buildSrc/src/main/kotlin/io/spine/gradle/repo/Repository.kt |
Adds publishing-name and destination helpers. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/StandardJavaPublicationHandler.kt |
Declares and validates JAR packaging. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt |
Registers publication-state and documentation tasks. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/RemoteFile.kt |
Adds bounded remote reads with retries. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingRepos.kt |
Clarifies GitHub repository parameters. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingExts.kt |
Shares publication path and filename helpers. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationState.kt |
Checks remote publication completeness and provenance. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationSbom.kt |
Exposes the SBOM extension and updates documentation. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationChecksums.kt |
Reuses shared publication and task helpers. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/ProtoExts.kt |
Resolves Protobuf tasks lazily. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/MavenMetadata.kt |
Uses retry-aware remote metadata reads. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/IncrementGuard.kt |
Reuses the shared repository-path helper. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/GitHubPackages.kt |
Adds repository identification and authentication helpers. |
buildSrc/src/main/kotlin/io/spine/gradle/publish/CheckVersionIncrement.kt |
Reuses repository destination enumeration. |
buildSrc/src/main/kotlin/io/spine/gradle/ProjectExtensions.kt |
Deprecates eager task lookup. |
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/JavadocConfig.kt |
Configures Javadoc through task providers. |
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/ExcludeInternalDoclet.kt |
Adapts to the Javadoc task provider. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/Update.kt |
Removes the former documentation updater. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/TaskName.kt |
Defines API documentation task names. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/RepositoryExtensions.kt |
Uses sparse clones for documentation publishing. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/PublishApiDocsExtension.kt |
Renames the documentation publishing extension. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/PublishApiDocs.kt |
Registers release-only documentation publishing. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/PublishAllApiDocs.kt |
Aggregates published modules’ documentation tasks. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/DocsPublication.kt |
Adds sparse, version-aware documentation publication. |
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/AuthorEmail.kt |
Clarifies the author-email documentation. |
buildSrc/src/main/kotlin/io/spine/gradle/git/Repository.kt |
Adds sparse checkout and branch-adoption support. |
buildSrc/src/main/kotlin/io/spine/gradle/Cli.kt |
Preserves output line breaks and accepts argument lists. |
buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt |
Disables matching tasks lazily. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt |
Updates the Validation dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt |
Updates build coordinates and deprecates internal fixtures. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt |
Updates the Time dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Reflect.kt |
Updates the Reflect dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt |
Updates shared ProtoTap coordinates. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt |
Updates Logging and deprecates obsolete middleware coordinates. |
buildSrc/src/main/kotlin/io/spine/dependency/local/DokkaTools.kt |
Updates Dokka tooling coordinates. |
buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt |
Updates compiler build and test versions. |
buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt |
Updates the Core JVM dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt |
Updates compiler fallback versions. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt |
Updates the Change dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt |
Updates the Base Types dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt |
Updates the build-script dependency version. |
buildSrc/src/main/kotlin/io/spine/dependency/lib/OpenTelemetryKotlin.kt |
Adds exporter dependency coordinates. |
buildSrc/src/main/kotlin/DokkaExts.kt |
Uses lazy tasks and updated docs-publishing names. |
buildSrc/src/main/kotlin/dokka-setup.gradle.kts |
Resolves the KSP task dependency lazily. |
buildSrc/src/main/kotlin/BuildExtensions.kt |
Configures task dependencies and debugging lazily. |
.github/workflows/revalidate-versions.yml |
Updates status comments and job labels. |
.github/workflows/publish.yml |
Advances the shared publishing workflow revision. |
.github/workflows/publish-api-docs.yml |
Adds a separate API documentation publishing workflow. |
.github/workflows/increment-guard.yml |
Changes the reported status to Version bump. |
.github/workflows/check-links.yml |
Updates site tooling and exposes link-check reports. |
Review effort: Balanced
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #25 +/- ##
=========================================
Coverage 12.50% 12.50%
Complexity 9 9
=========================================
Files 5 5
Lines 144 144
Branches 6 6
=========================================
Hits 18 18
Misses 126 126 🚀 New features to boost your workflow:
|
The Spine SDK is removing its dependency on Roaster. This PR removes Roaster
leftovers from ProtoTap. It also updates
configand.agents/shared, and adaptsprotoc-pluginto a new publishing check inconfig.Roaster no longer reaches ProtoTap
At ToolBase
2.0.0-SNAPSHOT.428, neitherplugin-basenorjvm-toolsdependson
classic-codegen. Their JARs are thin, so no Roaster classes are embedded.:gradle-plugin:dependencyInsight --configuration runtimeClasspath --dependency org.jboss.forge.roasterfinds nothing.
:,:api,:protoc-pluginand:gradle-pluginwere resolved, includingshadow. None of them resolvesorg.jboss.forge.roasteror JNA.So the Roaster wiring was dead, and this PR removes it:
gradle-pluginfat JAR exclusions:org/jboss/**andMETA-INF/services/org.jboss.forge.roaster.*.*.force(...)in the repo-ownedbuildSrc/src/main/kotlin/module.gradle.kts:Roaster.apiandRoaster.jdt, with theRoasterimport.The fat JAR has the same 9,302 entries before and after. None of them is under
org/jboss/orcom/sun/jna/, and none is aMETA-INF/services/org.jboss.forge*file.
configupdate and theprotoc-pluginPOM./config/pullbringsconfigtob284c67. No version pin was rolled back:every version is the same or newer, and ToolBase stays at
.428.updateGitHubPages { }topublishApiDocs { }. API docs arenow published by
:publishAllApiDocsfrom the new.github/workflows/publish-api-docs.yml.configcommit9496f8anow sets thejarpackaging on standard publications.It fails
generatePomFileForMavenJavaPublicationwhen a publication has no mainJAR without a classifier. The only executable JAR of
protoc-pluginhas theexeclassifier, which the Gradle plugin resolves throughPROTOC_PLUGIN_CLASSIFIER.protoc-plugintherefore sets the POM packaging back topominafterEvaluate, and the check accepts that. The POM keeps the<packaging>pom</packaging>that the published0.17.3has, and the Gradlemodule metadata still points at the
-exe.jar.Version
0.17.4→0.17.5, a release-line PATCH bump. Because0.17.5is a releaseversion, merging runs the real
publish-api-docs.ymljob.Verification
./gradlew buildpasses, and 12 tests pass../gradlew dokkaGeneratepasses.spine-code-review,kotlin-engineerandreview-docsreviews approvedthe change.
For reviewers
configpull.agents/sharedpinprotoc-pluginpackaging fixmasterrun ofpublish-api-docs.yml. It needs theGIT_CREDENTIALS_KEYsecret.shadowJarexclusions ingradle-pluginnow match nothing on the runtime classpath. Six of them matchedonly
roaster-jdt. They can be trimmed in a follow-up.🤖 Generated with Claude Code