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

Publish uberjar #414

Closed
jlesquembre opened this issue Aug 8, 2019 · 9 comments · Fixed by #425
Closed

Publish uberjar #414

jlesquembre opened this issue Aug 8, 2019 · 9 comments · Fixed by #425
Labels
Milestone

Comments

@jlesquembre
Copy link
Contributor

Thanks for writing clj-kondo, I find it really useful.

I'm trying to create a package for NixOS, compiling it with GraalVM, and it would be helpful if for the next release you can publish the uberjar on github.

That's because on NixOS, during the package build phase, the build process has no network access (and lein cannot connect to the maven repositories to download the dependencies). There are workarounds, but the simplest solution will be to use the uberjar.

@borkdude
Copy link
Member

borkdude commented Aug 8, 2019

That seems an easy thing to add to the release process, so will do.

@borkdude borkdude added the devops label Aug 8, 2019
@jlesquembre
Copy link
Contributor Author

Thanks!

@borkdude borkdude added this to the release 24 milestone Aug 8, 2019
@borkdude
Copy link
Member

borkdude commented Aug 8, 2019

@jlesquembre Out of curiosity:

I was wondering about nixOS, isn't one of the ideas to have a reproducable build from the source?
If you start from the uberjar, you might as well start from the binary?

@jlesquembre
Copy link
Contributor Author

yes, one of the main ideas of NixOS is to have reproducible builds. Ideally, it would be possible to build from the source, but java (and clojure) is not well supported on NixOS. Many, if not all, java packages are build from the the uberjar. I think there were some plans to improve java support, but not sure about the current status

I already tried to use the binary you publish, but it doesn't work on NixOS. In general, binaries compiled on other Linux systems don't work on NixOS. As far as I can tell, it's because of how shared libraries and dynamic links are managed on NixOS.

Recently, a new NixOS GraalVM version was released, and I was able to compile clj-kondo from the uberjar.

@borkdude
Copy link
Member

borkdude commented Aug 8, 2019

@jlesquembre That clarifies it for me. It's awesome you want to make it work on nixOS, thank you. Once it works, a PR to the installation manual is welcome.

@jlesquembre
Copy link
Contributor Author

@borkdude sure, I already though about it, I'll create a PR once the package is on NixOS

@borkdude
Copy link
Member

borkdude commented Aug 8, 2019

@jlesquembre I included a standalone .jar in this release now: https://github.com/borkdude/clj-kondo/releases/tag/v2019.07.31-alpha so you can already test with this.

Note that https://github.com/borkdude/clj-kondo/blob/master/resources/CLJ_KONDO_RELEASED_VERSION always contains the most recent released version (a manual installer script also relies on this), but of course you can also use the Github API to fetch the latest version tag.

@jlesquembre
Copy link
Contributor Author

@borkdude Thank you, it works perfectly :) I'll create a PR to add clj-kondo to NixOS and once gets accepted, I'll make a PR to the installation manual

borkdude added a commit that referenced this issue Aug 9, 2019
borkdude added a commit that referenced this issue Aug 9, 2019
@borkdude
Copy link
Member

borkdude commented Aug 9, 2019

Fixed with 34ee873

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

Successfully merging a pull request may close this issue.

2 participants