ci(java): parallelize macOS build, split publish; scope release lock updates#7341
Open
wjones127 wants to merge 1 commit into
Open
ci(java): parallelize macOS build, split publish; scope release lock updates#7341wjones127 wants to merge 1 commit into
wjones127 wants to merge 1 commit into
Conversation
…updates The Java publish workflow built the macOS native lib and published the multi-platform JAR in a single job, so the macOS build was gated behind the Linux builds even though only the publish step depends on them. - Collapse the two near-identical Debian 10 Linux builds into a matrix. - Make the macOS job build-only and run it concurrently with the Linux builds. - Add a separate `publish` job on ubuntu-latest that gathers all three native libs and packages/deploys with `-Dskip.build.jni=true`. This no longer holds the macOS runner during publish. Also: - Drop the no-op `-P shade-jar` profile from the deploy command. Shading is an always-on plugin bound to the `package` phase; the flag only logged a "could not be activated" warning. - Use `cargo update --workspace` in the release scripts. Bare `cargo update` after the version bump refreshed all transitive dependencies, sweeping incidental bumps into release commits (e.g. brotli, hyper, jiff, zerocopy in https://github.com/lance-format/lance/actions/runs/26624032632/job/78456375994#step:5:2496). `--workspace` re-pins only the local crates whose versions changed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
xuanyu-z
approved these changes
Jun 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Java publish workflow built the macOS native lib and published the multi-platform JAR in a single job, so the macOS build was gated behind the Linux builds (
needs: [linux-arm64, linux-x86]) even though only the publish step depends on the Linux artifacts.Workflow restructure (
java-publish.yml)build-linux— the two near-identical Debian 10 builds collapsed into a matrix (x86-64, arm64).build-macos— build-only, noneeds, runs concurrently with the Linux builds.publish— a separateubuntu-latestjob that gathers all three native libs and packages/deploys with-Dskip.build.jni=true. No longer holds the expensive macOS runner during publish.Critical path goes from
linux → (macos build + publish)tomax(linux, macos) → publish.Drop no-op
-P shade-jarThat profile doesn't exist; shading is an always-on plugin bound to the
packagephase. The flag only produced acould not be activatedwarning.cargo update --workspacein release scriptsThe release scripts ran bare
cargo updateafter the version bump, which refreshed all transitive dependencies rather than just the local crates being re-versioned. This swept incidental dependency bumps into release commits — see this run, where the lock update pulled inbrotli,hyper,jiff,zerocopy, and ~14 others on top of the intendedlance-*version changes.--workspacere-pins only the workspace crates whose versions changed. Applied to all three release scripts (create_release_branch.sh,release_common.sh,publish_beta.sh) for consistency.Note
The PR's
pull_requesttrigger exercises the full build + dry-run path. Thecargo update --workspacechange only takes effect on the next release-tooling run.🤖 Generated with Claude Code