Don't package up shoes-package
The shoes-package gem and its dependencies (aka warbler, furoshiki, etc.) aren't necessary to run a shoes app, only to produce a package.
Given that, we'd prefer to keep our packaged apps smaller by not slurping up those gems. This will very likely need changes coordinated in furoshiki to accomplish.
:sigh: so the easy path on this isn't going to work. I'd hoped that we could just exclude the gems that we're picking up during furoshiki's config building. Unfortunately that lands us with a package that doesn't run because Rubygems helpfully tries to activate all those excluded gems because we've declared them as a runtime dependency.
Next thought was that we could just make shoes-package and its ilk a development dependency. That'd avoid this issue, but then gem install shoes wouldn't install shoes-package which is also a total non-starter.
Will continue mulling over how we can accomplish this... might take some hackery, but cuts the base jar size from ~60MB down to ~35MB, so seems worthwhile.
Hello :wave:
Not sure if I understand the problem 100% but might it help if we had my always desired "shoes-runtime" (name pending) dependency that just depends on runtime dependency and then the shoes gem depends on it and the package gem?
I always thought of it as just having it so we can nicely distribute shoes apps through ruby gems, but if it might help here... ? :)
Tobi
Hmm, not sure that creating a new gem directly solves it, but you pointed me in a pretty simple direction that could work.
Right now shoes-swt declares a dependency on shoes-package, but it's actually optional to include it. So if instead we made shoes depend on shoes-package (it already has the SWT specific dependency with shoes-swt), then apps which want to save the packaging space can just declare shoes-swt as their dependency (maybe shoes as dev dependency so they can run the app unpackaged?).
Don't have time right now (moving!) to actually test it out, but gives me a simpler direction than where I was headed in my head with munging gems when we're packaging.
Putting this back on the rc1 pile as my various attempts didn't yield much fruit and it seems like it's getting in the way of more important changes at the moment.
For future reference, changing shoes-package to being pulled in only by shoes (instead of shoes-swt) allows you to make a Gemfile that just includes shoes-swt and its pieces. This would in theory package up nice and tightly... except that you can't run shoes package... because as it tries to load shoes-package, fails to find it in the Gemfile, and borks.
Maybe there's something we could do with Gemfile groups--i.e. you can include shoes in the development group but provide a way to package only against production, but at this point I feel like I've got bigger fish to fry. 65MB isn't that big, is it? 😆
@jasonrclark, wonder if this is any progress. Sorry I have been posting it across many issues. Wrote a nifty script. My install uninstall packages are fairly simple. So I removed all of the gems that I could from the jar file. Shrunk the Jar file down from 63mb to 35mb with program retaining functionality. Taking a break for now. If I find more stuff to remove and retain functionality for my purposes I'll report it. https://github.com/MichaelDimmitt/aerial_desktop_with_shoes/blob/fb4fa115d0825db72e4df03b2a6d3d5bb9df948c/script.sh