Skip to content

Allow to ship this gem with precompiled binaries#21

Merged
Edouard-chin merged 3 commits intomasterfrom
ec-precopimlation
Jan 13, 2026
Merged

Allow to ship this gem with precompiled binaries#21
Edouard-chin merged 3 commits intomasterfrom
ec-precopimlation

Conversation

@Edouard-chin
Copy link
Member

@Edouard-chin Edouard-chin commented Dec 10, 2025

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 install much 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.

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.
@Edouard-chin Edouard-chin force-pushed the ec-precopimlation branch 2 times, most recently from 946ebf3 to 42976c7 Compare January 13, 2026 12:53
- Update dependency not compatible with Ruby 4
- Tweak cibuildgem to compile against Ruby 4
@Edouard-chin Edouard-chin merged commit 5ece464 into master Jan 13, 2026
6 checks passed
@Edouard-chin Edouard-chin deleted the ec-precopimlation branch January 13, 2026 14:27
@Edouard-chin
Copy link
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 !

@byroot
Copy link
Contributor

byroot commented Jan 13, 2026

you are the sole owner of the gem

Whoops. I added gems@shopify.com, you should be able to accept the invite. Feel free to remove me once it's done since technically Shopify is the sole owner of the gem.

@Edouard-chin
Copy link
Member Author

Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants