Allow to ship this gem with precompiled binaries#21
Merged
Edouard-chin merged 3 commits intomasterfrom Jan 13, 2026
Merged
Conversation
TL;DR I'd like to propose releasing this 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 install` much faster for everyone. The main bottleneck when installing gems in a project is the compilation of native extensions. [cibuildgem](https://github.com/Shopify/cibuildgem) modestly tries to follow the same approach as what the python community did with [cibuildwheel](https://cibuildwheel.pypa.io/en/stable/). 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. 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 against.
946ebf3 to
42976c7
Compare
- Update dependency not compatible with Ruby 4 - Tweak cibuildgem to compile against Ruby 4
42976c7 to
258c78c
Compare
Member
Author
|
FYI @byroot, I started to setup a couple of smaller projects to ship with precompiled binaries with the new toolchain I'm working on. I confirmed it works on a few machines I tried. If you are ok, I'd like to cut a new release, but you are the sole owner of the gem on Rubygems.org. Would you mind adding Shopify as an owner too or transfer the gem to us, as you prefer. Thank you ! |
Contributor
Whoops. I added |
Member
Author
|
Thank you so much! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 this gem with precompiled binaries built for different platforms and different ABI version (fat gem).
This is an example of the workflow that will run once we cut a release https://github.com/Shopify/heap-profiler/actions/runs/20088673453
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.
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 against.