Skip to content

Drop Roaster leftovers and update config - #25

Merged
alexander-yevsyukov merged 7 commits into
masterfrom
claude/drop-roaster-c43260
Nov 2, 2026
Merged

alexander-yevsyukov merged 7 commits into
masterfrom
claude/drop-roaster-c43260

Conversation

@alexander-yevsyukov

Copy link
Copy Markdown
Contributor

The Spine SDK is removing its dependency on Roaster. This PR removes Roaster
leftovers from ProtoTap. It also updates config and .agents/shared, and adapts
protoc-plugin to a new publishing check in config.

Roaster no longer reaches ProtoTap

At ToolBase 2.0.0-SNAPSHOT.428, neither plugin-base nor jvm-tools depends
on classic-codegen. Their JARs are thin, so no Roaster classes are embedded.

  • :gradle-plugin:dependencyInsight --configuration runtimeClasspath --dependency org.jboss.forge.roaster
    finds nothing.
  • All 144 resolvable configurations of :, :api, :protoc-plugin and
    :gradle-plugin were resolved, including shadow. None of them resolves
    org.jboss.forge.roaster or JNA.

So the Roaster wiring was dead, and this PR removes it:

  • From the gradle-plugin fat JAR exclusions: org/jboss/** and
    META-INF/services/org.jboss.forge.roaster.*.*.
  • From force(...) in the repo-owned buildSrc/src/main/kotlin/module.gradle.kts:
    Roaster.api and Roaster.jdt, with the Roaster import.

The fat JAR has the same 9,302 entries before and after. None of them is under
org/jboss/ or com/sun/jna/, and none is a META-INF/services/org.jboss.forge*
file.

config update and the protoc-plugin POM

  • ./config/pull brings config to b284c67. No version pin was rolled back:
    every version is the same or newer, and ToolBase stays at .428.
  • The pull rewrote updateGitHubPages { } to publishApiDocs { }. API docs are
    now published by :publishAllApiDocs from the new
    .github/workflows/publish-api-docs.yml.
  • config commit 9496f8a now sets the jar packaging on standard publications.
    It fails generatePomFileForMavenJavaPublication when a publication has no main
    JAR without a classifier. The only executable JAR of protoc-plugin has the
    exe classifier, which the Gradle plugin resolves through
    PROTOC_PLUGIN_CLASSIFIER.
  • protoc-plugin therefore sets the POM packaging back to pom in
    afterEvaluate, and the check accepts that. The POM keeps the
    <packaging>pom</packaging> that the published 0.17.3 has, and the Gradle
    module metadata still points at the -exe.jar.

Version

0.17.4 → 0.17.5, a release-line PATCH bump. Because 0.17.5 is a release
version, merging runs the real publish-api-docs.yml job.

Verification

  • ./gradlew build passes, and 12 tests pass. ./gradlew dokkaGenerate passes.
  • The spine-code-review, kotlin-engineer and review-docs reviews approved
    the change.

For reviewers

  • Commits are split by concern:
    1. config pull
    2. .agents/shared pin
    3. protoc-plugin packaging fix
    4. version bump
    5. Roaster removal
    6. dependency reports
    7. comment fix from the review
  • Please watch the first master run of publish-api-docs.yml. It needs the
    GIT_CREDENTIALS_KEY secret.
  • Not changed here: several other Eclipse-era shadowJar exclusions in
    gradle-plugin now match nothing on the runtime classpath. Six of them matched
    only roaster-jdt. They can be trimmed in a follow-up.

🤖 Generated with Claude Code

alexander-yevsyukov and others added 7 commits November 2, 2026 20:28
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>
Copilot AI balanced review requested due to automatic review settings November 2, 2026 20:35
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-02T20:36:57.242671Z 06d07aa PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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 pom packaging 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

codecov Bot commented Nov 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 12.50%. Comparing base (d6488a8) to head (06d07aa).

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:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@alexander-yevsyukov
alexander-yevsyukov merged commit af201ed into master Nov 2, 2026
10 checks passed
@alexander-yevsyukov
alexander-yevsyukov deleted the claude/drop-roaster-c43260 branch November 2, 2026 20:43
@github-project-automation github-project-automation Bot moved this from In Review to ✅ Done in v2.0 Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants