You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From the maintainer Li Haoyi: I'm putting a 500USD bounty on this issue, payable by bank transfer on a merged PR implementing this.
We need to be able to depend on shaded third-party libraries, have the original library properly excluded from the runClasspath, and instead replaced by the shaded classfiles. Right now we can shade stuff in assembly using AssemblyRules, but shading should also apply to:
run
jar (which should include the shaded dependency)
publishLocal/publishAll (which should publish jars containing the shaded classes transitively and no dependency on the original and/or an exclusion),
runClasspath (e.g. if someone wants to use the classfiles in a Jvm.runSubprocess or Jvm.runClassLoader it should exclude the original and include the shaded classes)
There's some design space here to explore.
Should have an example under javalib/dependencies.adoc for shading Java using jarjar, scalalib/dependencies.adoc using https://github.com/eed3si9n/jarjar-abrams, maybe something for kotlin
The text was updated successfully, but these errors were encountered:
I think this is a broader topic than just assembly. For example, if I shade an upstream library, I should be able to publish to Maven Central and bundle the shaded library, with the normal library <dependency> metadata removed. Same as if I shade a library and a downstream module in the same build depends on me
But compile*Deps is not sufficient: all that does is ensure the originsl classfiles are not included in the jar, which is correct, but i also want the shaded classfiles included somehow in the jar (not assembly) so it can be used at runtime.
lihaoyi
changed the title
Add example for shading library
Flesh out support for shading third party libraries library and add example docs
Oct 24, 2024
lihaoyi
changed the title
Flesh out support for shading third party libraries library and add example docs
Flesh out support for shading third party libraries library and add example docs (500USD Bounty)
Oct 24, 2024
From the maintainer Li Haoyi: I'm putting a 500USD bounty on this issue, payable by bank transfer on a merged PR implementing this.
We need to be able to depend on shaded third-party libraries, have the original library properly excluded from the runClasspath, and instead replaced by the shaded classfiles. Right now we can shade stuff in
assembly
usingAssemblyRule
s, but shading should also apply to:run
jar
(which should include the shaded dependency)publishLocal
/publishAll
(which should publish jars containing the shaded classes transitively and no dependency on the original and/or an exclusion),runClasspath
(e.g. if someone wants to use the classfiles in aJvm.runSubprocess
orJvm.runClassLoader
it should exclude the original and include the shaded classes)There's some design space here to explore.
Should have an example under
javalib/dependencies.adoc
for shading Java using jarjar,scalalib/dependencies.adoc
using https://github.com/eed3si9n/jarjar-abrams, maybe something for kotlinThe text was updated successfully, but these errors were encountered: