-
Notifications
You must be signed in to change notification settings - Fork 123
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
all the rubies, plus all the arches #134
base: main
Are you sure you want to change the base?
Conversation
… libffi into build
name pkg_date ruby_version os arch size --- -------- -------------- -- ---- ---- traveling-ruby 20230528 2.6.10 linux arm64 8.5M traveling-ruby 20230528 3.0.4 linux arm64 8.9M traveling-ruby 20230528 3.1.0 linux arm64 8.9M traveling-ruby 20230528 3.1.0-preview1 linux arm64 8.9M traveling-ruby 20230528 3.1.1 linux arm64 8.9M traveling-ruby 20230528 3.1.2 linux arm64 8.9M traveling-ruby 20230528 3.2.2 linux arm64 7.8M traveling-ruby 20230528 3.3.0-preview1 linux arm64 7.8M
New release is out Highlights
New Rubies
Bundler Update
New Gems plus Gem updates
OpenSSLRuby versions lower than 3.1.0 are built with OpenSSL 1.1.1w Dependency UpdatesLinux Runtime updatesCCACHE_VERSION=4.9 MacOS Runtime updatesCCACHE_VERSION=4.9 New Platformsmusl based traveling-ruby packages
|
So I took a diversion from Ruby for a bit, to port one of our Ruby apps to Rust. I thought it would be nice to have a fall back in the cli for each command, to allow it to call the existing ruby cli app, by use of a flag or env var. With the help of some cross-compilers, I was able to package the rust app, for more supported platform/arch combos than ruby. That left me with the behaviour of having to tell users who are wanting to fallback to the ruby impl, but don't have a traveling-ruby runtime that they are 💩 out of luck, and stuck with my poorly written rust code. 🤮 What to do 🤔 💡 cross-compilation adventure with qemu, and a switch to ubuntu/alpine over centos 7, as they had multi-platform images available where centos 7 we were stuck only working builds for amd64/arm64. UpdatesNew additions
🚧- Your mileage may vary with new platforms Check out the pre-release here Linux
MacOS
Windows
|
Also I've been working on a traveling-ruby app builder built in rust, for end users, that will package up their app for any or all of the supported TR platforms. Rust supports embedding files (so an archive) or directory (with rust-embed), and I've managed to eliminate the need for end users app wrappers, by directly invoking the ruby binary with the correct TR environment variables setup. This means you can distribute your ruby app as a single file which self-extracts its contents and then executes. It's similar in vein for ocra / ruby_packer which provide a single entry point, however each of those unpack to a temporary directory, which affects speeds (it takes a short while to unpack it every time, and that seems expensive for our use case, cli invocations of which there are highly likely to multiple in quick succession) In order to support native extensions for windows in my end users app, I cheated a little bit, I used ocran, exploded the temp directory and provided a new wrapper script. Not sure if it will be of use to others, but it's been scratching my itch of getting to learn more rust and made it easy for me to test out the new TR combos |
That really sounds great! Thank you so much for all the effort! |
updates rubygems to 3.5.9 updates bundler to 2.5.9 note need to drop 3.1.7 openssl fails to build in linux, (3.1.4 okay)
plus gem updates ffi 1.17.0 (was 1.16.3) racc 1.8.0 (was 1.7.3) mini_portile2 2.8.7 (was 2.8.6) hitimes 3.0.0 (was 2.0.0) nio4r 2.7.3 (was 2.7.1) curses 1.4.6 (was 1.4.5) nokogiri 1.16.5 (was 1.16.4) sqlite3 2.0.2 (was 2.0.1) rexml 3.2.9 (was 3.2.6)
## fixes - mini_portile2 pin to 2.8.6 due to errors in 2.8.7 on macos ## gem updates rexml 3.3.0 (was 3.2.9) stringio 3.1.1 (was 3.1.0) nokogiri 1.16.6 (was 1.16.5)
charlock_holmes (0.7.9) rexml (3.3.2) drop unmaintained posix-spawn
I think I'm going to use this for https://terminalwire.com/, which uses the async Ruby libraries, including async-websockets. 😅 |
- curses (1.4.6) + curses (1.4.7) - json (2.7.2) + json (2.8.2) - nio4r (2.7.3) + nio4r (2.7.4) - pg (1.5.7) - psych (5.1.2) + pg (1.5.9) + psych (5.2.0) - puma (6.4.2) + puma (6.4.3) - rack (2.2.9) + rack (2.2.10) - rexml (3.3.7) + rexml (3.3.9) - sqlite3 (2.0.4) + sqlite3 (2.3.0) - stringio (3.1.1) + stringio (3.1.2)
builds all the rubies for all the things
Fork:- https://github.com/YOU54F/traveling-ruby
background #133 (comment)
Travelling ruby updates for arm64/aarch64
macos x86_64 binaries work as far back at 10.15 Catalina.
10.14 Mojave fails on libgmp