build(isthmus)!: stop publishing the isthmus fat jar - #1044
Merged
bestbeforetoday merged 1 commit intoJul 28, 2026
Conversation
The isthmus module applied the shadow plugin only to build an uber jar
(isthmus-<version>-all.jar) whose manifest still named the long-removed
io.substrait.isthmus.PlanEntryPoint main class. The CLI moved to the
isthmus-cli module (built as a GraalVM native image) long ago, so nothing
in the repo consumes this jar, and isthmus shades/relocates nothing of its
own -- the ANTLR runtime relocation that avoids version clashes with
consumers lives in :core and is unaffected.
The GradleUp shadow plugin injects a shadowRuntimeElements variant into the
java component by default (addShadowVariantIntoJavaComponent), so
`from(components["java"])` published the fat jar to Maven Central as an
`all`-classified artifact for every release. Remove the shadow plugin from
isthmus to drop it. The core shadowJar dependency is retained (classes
dependsOn :core:shadowJar) because compiling isthmus needs core's
relocated jar.
Standard dependencies (implementation("io.substrait:isthmus:<version>"))
resolve the plain jar and are unaffected.
BREAKING CHANGE: the isthmus fat jar (isthmus-<version>-all.jar -- the `all`
classifier / shadowRuntimeElements variant) is no longer published to Maven
Central. Consumers that referenced it explicitly should depend on the
regular isthmus artifact and its transitive dependencies instead.
bestbeforetoday
approved these changes
Jul 28, 2026
bestbeforetoday
left a comment
Member
There was a problem hiding this comment.
Change looks OK to me. Really nobody should have been referencing the isthmus--all.jar anyway, so it doesn't obviously seem like a concern.
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
:isthmusmodule applies the shadow plugin only to build an uber jar (isthmus-<version>-all.jar), whose manifest still declares the long-removedio.substrait.isthmus.PlanEntryPointas itsMain-Class. The CLI was extracted into the:isthmus-climodule (built as a GraalVM native image) years ago, so::isthmusshades/relocates nothing of its own — the ANTLR-runtime relocation that prevents version clashes with consumers lives in:core(relocate("org.antlr.v4.runtime", …)) and is untouched here.The GradleUp shadow plugin injects a
shadowRuntimeElementsvariant into thejavacomponent by default (addShadowVariantIntoJavaComponent), sofrom(components["java"])has been publishing this fat jar to Maven Central as anall-classified artifact on every release. Confirmed via the publication's Gradle module metadata:Change
Remove the shadow plugin (and its
shadowJar/buildwiring) from:isthmus. Theclasses { dependsOn(":core:shadowJar") }line is retained — compiling isthmus needs core's relocated jar.Impact
Standard consumers (
implementation("io.substrait:isthmus:<version>")) resolveruntimeElements(the plain jar) and are unaffected. Only a consumer that explicitly requested theallclassifier / shadowed variant is affected — see the breaking-change note below.BREAKING CHANGE: the isthmus fat jar (
isthmus-<version>-all.jar— theallclassifier /shadowRuntimeElementsvariant) is no longer published to Maven Central. Consumers that referenced it explicitly should depend on the regularisthmusartifact and its transitive dependencies instead.🤖 Generated with AI