-
-
Notifications
You must be signed in to change notification settings - Fork 925
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
Dist has gotten too large due to new maven features #2487
Comments
did look at the complete distribution and used pack200 to reduce the jars which leads to:
to use the pack200.zip you need to run a "post_install" script
the reduction in size is impressive and worth for using with rbenv, rvm and alike. maybe even windows installer. the post_installer could be also an executable jar. |
another point are the native libraries
|
I believe windows installer does use pack200 internally as part of install4j. |
did some pack200 stuff on https://github.com/jruby/jruby/tree/pack20 jruby-dist-bin.tar.gz 37MB after unzipping jruby-dist-bin200.* archives you need to run bin/unpack200.sh I personally would go for the bin200 archives - the reduction is really impressive and makes a difference in installing jruby (for me). I also started to repack ruby-maven and ruby-maven-libs so they can be installed a default gems and refactored the script for installing default gems from lib/pom.rb into its own ruby file (need to reuse it for maven/jruby-dist) but this is still work in process. I also added some length test in test/check_versions.sh which runs with travis to avoid the unwanted explosion of archive size we did see with jruby-9.0.0.0.pre1 |
That's a really good idea. |
Very nice @mkristian, and I agree the size reduction is significant. Only thing that gives me pause is releasing too many distribution archives since I feel like we'd need to still provide the unpacked versions too. What do you think @enebo? |
what about just put in on maven central and use the pack200 for rvm and
rbenv via maven-central (if that is possible for these tools) - just
thinking ;)
|
The original problem was dist was too big and the answer is to continue disting the big file and add more dist files to the release? I don't think this is actually solving a problem. I also don't think most users know what pack200 is and so they won't download it because they won't think they can unpack it. pack200, to me, fits better into installers since it can be hidden from the person installing. I always feel like the dissenting voice :) We release waaay too many files already. In another couple of years I will be uploading 1GB of diced permutations of our bits (let us not forget we are not even doing truffle dists yet). |
last dist was >57MB for bin tar.gz and zip files
http://repo1.maven.org/maven2/org/jruby/jruby-dist/9.0.0.0.pre1/
with current master it is around 37MB each. let's call this a fix, please !
|
so I cherry-pick the size check in test/check_versions.sh and leave the
bin200 archives out ?
and I will reduce some of those "extra" artifacts to reduce the overall
number - that should be possible ;)
|
@mkristian Yes, cherry-pick any size improvements other than pack200 stuff to master. Perhaps some day we'll explore pack200 distribution. |
@headius the explosion of the size of most distribution artifacts for 9.0.0.0.pre1 came through the embedded jruby-complete-1.7.19 inside the jruby-readline setup. this I fixed a while ago when I released jruby-readline-1.0.gem to maven central. beside this there are quite a few place to reduce amount of maven modules and attached artifacts but that is not part of the pack200 branch. |
so I reworked the artifacts which gets "deployed" to maven central:
the jruby-core pom uses the dependency-reduced pom after shading asm and jnr-jffi (which uses asm). this change reduced the upload on release about 20MB. finally I added jruby-dist-bin200.tar.gz which is 17MB. here I also replaced the bin/jruby script with one which unpacks all the jars when used the first time before executing the jruby. any further bin/jruby execution works as usual - on linux ONLY or when there is a bash. so overall it is a reduction of attached artifacts and total upload size :) see more details on pack200 branch. once maven-3.3.0 is released I will work on the ruby-maven-libs.gem and reduce the dist size even more. |
just a follow up: with the new ruby-maven and ruby-maven-libs gem it is finally possible to install those gems as default gems inside the jruby-dist files which will reduce the size by at least 8MB |
@mkristian are these new versions on master now as default gems? Can this be closed now? |
@enebo the new versions are on master but not as default gems. give me the On Fri, Jun 26, 2015 at 5:34 PM, Thomas E Enebo notifications@github.com
|
@mkristian okie dokie...just checking |
done on both branches |
The newish jar_dependencies feature in JRuby resulted in us having to ship Maven itself plus its dependencies. That increased the size of our distribution by more than 20MB. Other libraries contribute, but the ruby-maven-libs gem is the biggest issue.
Our users like the jar-dependencies feature, so it seems like we need to ship this stuff...but we need to shrink it down. Suggestions so far:
The text was updated successfully, but these errors were encountered: