-
Notifications
You must be signed in to change notification settings - Fork 194
-
Notifications
You must be signed in to change notification settings - Fork 194
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
Packaging Plan #1415
Comments
FWIW, Shoes 3.3.3 is likely to move to the QT IFW installer - you don't need a full QT to run it. |
Great stuff @jasonrclark - thank you! 👍 I'm ok with the solution, a single file would be ideal but JAR + JRE + launcher that uses these two seems just as fine to me. I'd consider maybe asking folks at jruby-user if they know anything else, I trust your research of course just sometimes these Java/JRuby folks have an additional magic word/experience or whatever :) Although, seeing that eclipse even comes with only a zip/tar.gz give me little hope that there is such a thing :( Regarding Thanks for all the work Jason 💚 |
Glad you agree @PragTob, and hitting up the jruby-user list is a great idea. I won't get too far along before doing that one last bit of research. Will see where time gets to with |
Not sure if I just misremember, but I thought there was something here about seeing if we can slim down the JRE/what we use in libraries. My local Java/Android guru uses proguard as a tool so that might be interesting. Maybe deserves its own issue though... and definitely something that can wait until waaaayyy after a release or 2 ;) |
All right, so one of the question marks I still had was hosting and where to put the templates for packaging to find. And I have an answer! Turns out GitHub has this lovely releases feature that lets you put arbitrary binaries up. I've made an example with an updated JRE Mac app template at https://github.com/jasonrclark/mac-app-templates/releases So keeping all the loose binaries in the git repo would work for a while, but might blow out our cap on the org over the medium-term. I'm inclined to just write up instructions for making a new app image (with some supporting scripts perhaps?), and just host the release binaries for download. Sound cool? Other notes:
|
Sounds good to me, I just wish binaries wouldn't have to be in the repo and github would allow to add them seperately, which is what I thought it does but never used it |
Sorry to jump into this randomly, been crazy busy for many months now and probably poking my nose in where it doesn't belong, but on one project I'm on we use google drive to store a dev database and our initialization scripts use the command line tool https://github.com/prasmussen/gdrive Don't know if that's a fit or if I've spent enough time to understand the issue properly but it has been pretty seamless for us and kept our repo nice and small. |
HI Folks, My note/questions :
Clearly I've stuck my nose waay more in than @KCErb, as I can easily claim at least 1/2 a decade since I've actively written anything in the Shoes repo. Hopefully this is the renewal of a great friendship. :) |
@PragTob I might have been unclear, but the files we upload in releases don't have to be part of the repo--they stand off to the side, and don't count toward the size budget. @KCErb Google drive is an interesting idea if do find that not having the loose files around in version control is an issue. I think since the results are just the single zip file that we can upload in releases, we should be ok. @pjfitzgibbons Welcome back! Have seen you around on many of the early Shoes issues, but glad to hear from you in real-time.
That said, I'm open to the possibilities around .shy or other flavors of self-contained stuff, so if you have suggestions I'd love to hear them!
A alternative for folks wanting other Java libraries is to wrap them up into gems like we do with This weekend I'm working through making an updated Mac OS X template with a more recent JVM (1.8.0_121), and then will start playing with making a files-alongside template for another OS (probably Windows) |
Yeah, "some of it still does"... was relevant for WindowsXP. Seriously, that old. Recall that bloopsaphone and the video wrapper were the first two modules to go down, because they refused to compile in 32-bit only. Yeah, back in the transition from 16->32 bit. I think it would make sense to users to have possibly two different switches for packaging. One builds the .shy (zipped .rb), which can be run with As for packaging, I was interpreting your description as meaning we "re-compile" (?) a new JRE that has less of the "standard-lib" in it than the normal defacto JRE-install? If I mis-understood, then my repsonse is probably moot. As for adding your own .jar to the package, I thought we handled that because requiring the jar with app-root context is how jruby require works anyway, no? |
OK cool. If I remember right you get a unique id for the file which you can track in vc but I could be wrong. At any rate looks like we don't need that here 😎 Thanks for everything you guys are doing to take care of Shoes! |
Last couple items logged as separate issues that we'll handle later. Bulk of this is ready to 🤘 with |
🎉 |
Packaging is the last big outstanding thing between us and a Shoes 4.0
rc
. Shoes without packaging just doesn't feel like Shoes.That said, our JVM-based plans mean Shoes 4's packaging story is going to be different than Shoes 3. Some of that's nice (
warbler
easily provides us neat, self-contained jar files), some less so (Java dependencies, difficulty in getting single executables)The Quest
The single executable thing has been a big hangup for me. I was sure "something" must exist to turn a jar into an exe or an equivalent Linux-y single-file-executable. I've hunted far and wide, but the many options are all either 1) ancient and unsupported, 2) GUI-only 3) Windows-only or 4) a combination of all the above.
The one exception in my journey was packr which at first seemed perfect. While it had a few rough edges, it gave me hope... then I looked at the actual output, and found that it didn't output a singular artifact--it's gave you a directory with a native executable alongside the packaged jar and a JRE.
So if folks who know what they're doing around Java packaging land on this layout... I guess I'm inclined to accept that and move on from there
A Proposal
While a single binary executable would be ideal, I feel like that goal's getting in the way of actually shipping something that would be acceptable. As a "good enough" solution, I'd like to build out like this:
If the "easy to pass around bit" matters a lot, these could be zipped/tar'd into a single artifact.
What do you think @PragTob? For the sake of reaching a release, could we live with that?
Steps
In a bit more detail, I see this going something like the following:
swt:app
for Mac apps doesn't seem quite right... I'd love something like `shoes package [jar|shy|mac|windows|linux] my_app.rb (Revisions to packaging arguments #1417)Create more realistic packaging samples, maybe scripts to make running them a bit easierTracked as More realistic packaging samples #1437Replace Windows batch file with a native executable that we can control icon and naming on... but that can waitTracked as Native executable to bootstrap on Windows #1438How important is it to handleTracked as Implement packager for Shoes "apps" (.shy named zip-installs) #124shy
files (ala Implement packager for Shoes "apps" (.shy named zip-installs) #124)? I'm guessing it'd be nice, and we can poach the code from Shoes 3, but I've never encountered them before.The text was updated successfully, but these errors were encountered: