Skip to content

chore(java): publish pipeline hardening#363

Merged
pratyush618 merged 5 commits into
masterfrom
chore/java-publish-prep
Jul 5, 2026
Merged

chore(java): publish pipeline hardening#363
pratyush618 merged 5 commits into
masterfrom
chore/java-publish-prep

Conversation

@pratyush618

@pratyush618 pratyush618 commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

Release-prep items from the Java SDK audit (all but the version bump).

  • Sources jar slimmed: excluded bundled natives and dashboard SPA assets — a sources classifier now ships sources only. Verified locally: zero native/dashboard entries.
  • Release binaries stripped + thin-LTO: workspace [profile.release] now sets strip = true, lto = "thin"; the five bundled cdylibs shrink accordingly.
  • Publish dry-run widened: dry-run now assembles main + sources + javadoc jars (so doclint failures surface before the live publish) and asserts jar contents — Multi-Release: true manifest, FFM overlay under META-INF/versions/22, all five platform natives present, and no binaries in the sources jar.
  • README: dropped the stale "build-out" status, added Maven/Gradle install snippets and companion-artifact pointers.
  • Stale CI comment: setup-java action description now reflects the JDK 25 publish build.

./gradlew build green with the new release profile.

Remaining before tagging: version bump to 0.19.0, Central Portal namespace check for org.byteveda, and one workflow_dispatch dry-run of publish-java.yml.

Summary by CodeRabbit

  • Documentation

    • Updated the Java SDK README to reflect a feature-complete status, clearer runtime notes (Java 17 baseline plus JDK 22+ fast path), and step-by-step Gradle/Maven install examples.
    • Added companion artifact guidance for testing and Spring integration.
  • Bug Fixes

    • Source archives now exclude bundled native libraries and dashboard assets.
  • Build & Release

    • Improved publish dry-run checks to validate the full artifact set, multi-release JAR layout, and expected native bundles before publishing.
    • Release builds now enable size-optimizing settings for distributed native artifacts.

@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 94f68d91-3817-40a5-a45a-c45ef56d2fb9

📥 Commits

Reviewing files that changed from the base of the PR and between dbce9f8 and 23ab8d5.

📒 Files selected for processing (1)
  • sdks/java/README.md

📝 Walkthrough

Walkthrough

Updates Java SDK release tooling: adds a Cargo release profile with strip/thin-LTO, excludes native/dashboard assets from sourcesJar, expands the publish workflow's dry-run to build and verify multi-release JAR layout and native binaries, and revises README/action descriptions to reflect a Java 17 baseline.

Changes

Release Packaging and Publish Verification

Layer / File(s) Summary
Release build size optimization
Cargo.toml
Adds a [profile.release] section enabling strip = true and lto = "thin" to reduce cdylib artifact size.
SourcesJar native/dashboard exclusion
sdks/java/build.gradle.kts
Configures sourcesJar task to exclude staged native library files and dashboard assets, relying on the main jar to ship them.
Dry-run publish assembly and verification
.github/workflows/publish-java.yml
Dry-run now builds jar, sourcesJar, and plainJavadocJar (excluding native build/copy tasks) and adds a verification step checking multi-release manifest, Java 22 FFM class presence, per-platform native binaries in the main jar, and absence of natives/dashboard assets from the sources jar.
Java 17 baseline documentation
.github/actions/setup-java/action.yml, sdks/java/README.md
Updates the setup-java action description to reference Java 17 bytecode and an FFM overlay, and rewrites the SDK README with a feature-complete overview, Java 17/JDK 22+ notes, a new Install section, and a companion artifacts list.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • ByteVeda/taskito#304: Both PRs touch the same .github/actions/setup-java/action.yml, but the main PR only tweaks the action’s metadata description while the retrieved PR introduces the action and its java-version/setup logic.
  • ByteVeda/taskito#323: Both PRs modify the GitHub Actions publish-java.yml Maven Central publish workflow—one changes the non-dry-run Gradle publish task to publishAndReleaseToMavenCentral, while the other enhances the dry-run path with fuller artifact building and JAR/natives layout validation.
  • ByteVeda/taskito#348: Both PRs modify sdks/java/README.md to document the expanded Java SDK surface and update the supported Java baseline (Java 17) plus related capabilities like workflow-engine features and the Spring Boot 3 starter.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main release-pipeline hardening theme of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/java-publish-prep

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/publish-java.yml:
- Around line 153-158: The dry-run step in the publish workflow references a
task name that does not exist in the Java build, so update the Assemble publish
artifacts step to use the actual javadoc jar task exposed by the sdks/java
Gradle build, or register plainJavadocJar in sdks/java/build.gradle.kts if that
is the intended task name. Make sure the workflow command aligns with the task
defined by the Java build scripts so the dry-run can complete successfully.

In `@sdks/java/README.md`:
- Around line 17-31: The Java README install snippets are advertising a version
that is not ready to be published yet. Update the version shown in the Gradle
and Maven examples in the README to match the currently released artifact, and
keep it aligned with the version constants or release state used elsewhere in
the Java docs so the install instructions do not reference a future release.
- Around line 33-36: The README’s companion-artifacts section mentions
`taskito-processor`, but only in Gradle terms, so Maven users still lack a
usable compile-time setup example. Update the `taskito-processor` documentation
in this section to include a copy-pasteable Maven configuration for the
processor alongside the existing `TaskHandler` binding explanation, and keep the
references to `org.byteveda:taskito-processor`, `taskito-test`, and
`taskito-spring` consistent with the current docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 51f0d9c8-7525-4173-b9cf-47c01c44ece7

📥 Commits

Reviewing files that changed from the base of the PR and between f0899f5 and dbce9f8.

📒 Files selected for processing (5)
  • .github/actions/setup-java/action.yml
  • .github/workflows/publish-java.yml
  • Cargo.toml
  • sdks/java/README.md
  • sdks/java/build.gradle.kts

Comment thread .github/workflows/publish-java.yml
Comment thread sdks/java/README.md
Comment thread sdks/java/README.md Outdated
@pratyush618
pratyush618 merged commit fe84cde into master Jul 5, 2026
37 checks passed
@pratyush618
pratyush618 deleted the chore/java-publish-prep branch July 5, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant