Skip to content

Packaging.md

Noah Gibbs edited this page Nov 10, 2023 · 5 revisions

Packaging Scarpe Apps

Packaging is going to be enormous. It was very hard for Shoes. It's going to be hard for us. It's also going to have massive overlap with multi-platform issues.

Packaging Ruby on Multiple Platforms

Ruby is already hard to package. We don't want to require a full software-dev-style Ruby install on every machine that can run Scarpe. So we'll want something like Traveling Ruby to install a packaged end-user Ruby instead. It could be some other way of packaging Ruby executables but that field is pretty dead as I write this (Oct 2023).

Yousaf Nabi has been maintaining an alternate fork of Traveling Ruby for projects he's doing, which is probably our best bet: old release issue, more recent release issue, his fork of traveling_ruby.

However, traveling_ruby doesn't support Windows native gems, and native gems are really important to Shoes. For native gems and very recent Ruby, Yousaf recommends a fork of OCRA, a Windows Ruby installer

Multiplatform Testing

Testing this stuff is going to be very hard. We'll need to test with a (probably virtual) machine of the appropriate type that doesn't have Scarpe installed and simulate the Ruby-and-Scarpe installation, run the Shoes-Spec tests, etc. Going to be a fair bit of effort.

Old Shoes

There's an old Shoes walkthrough that talks more about how Shoes3 did this stuff.

Workarounds

Compatibility and packaging are hard. One great thing about Scarpe-Wasm is that it's cross-platform by nature. But it's also much harder to use it for the kind of "duct tape" debugging and UI apps that Scarpe is so good at, since it can't easily run a command-line program on your local computer.

binject

Old Shoes included binject as a dependency.

Older Notes and Design

Our original Scarpe issue for packaging