Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jepsen jars on Maven are uberjars - is that intended? #535

Open
KingMob opened this issue May 20, 2022 · 2 comments
Open

Jepsen jars on Maven are uberjars - is that intended? #535

KingMob opened this issue May 20, 2022 · 2 comments

Comments

@KingMob
Copy link

KingMob commented May 20, 2022

Hi Kyle, I'm Matthew, the current maintainer of Aleph/Manifold/byte-streams. First, thanks for the years of entertaining database teardowns; I've never used Jepsen, but I found your posts very interesting.

Someone on #aleph was having issues with including jepsen as a dep in their project with newer versions of Aleph, and I traced the issue to the 0.2.6 Maven jar being an uberjar, which means they include older versions. When Jepsen's jar ends up earlier in the classpath, it pulls in its own version of byte-streams and manifold, which are missing a fn arity that newer Aleph relies on. (0.2.5 and 0.2.4 are also uberjars.)

Was this intentional? I know Jepsen is sort of its own stand-alone thing, but I've always thought Maven was for library jars, not uberjars.

@aphyr
Copy link
Collaborator

aphyr commented May 20, 2022

Huh, that's weird! I built and deployed it with lein deploy, same as always. But yeah, looking at the jar that gets pulled down from Clojars, it does include code for byte_streams, along with some other deps like analemma, clj-ssh, etc. Weirdly it's not a full uberjar--that's 30 MB, and the jar we build is only 5 MB and change. I wonder if this might be an... AOT thing somehow? AOT only shows up in our uberjar profile though, and that shouldn't be what gets built via lein deploy... very strange.

@KingMob
Copy link
Author

KingMob commented May 21, 2022

Yeah, AOT sounds more like it, then. I almost never use AOT, sorry I can’t help more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants