Allow to ship this gem with precompiled binaries#43
Merged
Edouard-chin merged 1 commit intomainfrom Dec 5, 2025
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR I'd like to propose releasing the stack_frames gem with precompiled binaries built for different platforms and different ABI version (fat gem).
I'm currently working on a tool to help the Ruby community ship gems with precompiled binaries with the intent to make
bundle installmuch faster for everyone. The main bottleneck when installing gems in a project is the compilation of native extensions.cibuildgem modestly tries to follow the same approach as what the python community did with cibuildwheel. It works with a native compilation using CI runners (GitHub it the only supported vendor for now) and tries to be as easy to setup as possible. This gem already relies on Rake Compiler for development purposes, and because cibuildgem piggyback on top of Rake Compiler, there is no extra configuration required.
The CI workflow in this commit was generated with the cibuildgem CLI which reads the gemspec and determine what ruby versions needs to be compiled and tested agains. This is the resulting CI run when a release is about to be made: https://github.com/Shopify/stack_frames/actions/runs/19934020487
The tool is very new and I did many tests internally to make sure that it create binaries that can be ported to other environment. For instance, I used it to precompile almost all gems that a new Rails application depends on and pushed them under a "namespaced" name on my RubyGems, I then confirmed that the rails application was bootable using all those gems (I'm on MacOS).