Skip to content

Interest in supporting precompiled gems? #740

@gjtorikian

Description

@gjtorikian

Hiya! I migrated an app from 3.3.1 to 3.4.5 and got blocked on psych, because of a missing yaml.h file.

I was wondering if you would support a PR to change CI to build the gems ahead of time, before pushing?

Basically, you set up your CI matrix for every platform you're interested in, then CI installs all the tools necessary to compile the extension. The compiled extension is packaged into one gem per platform, and then each platform version is pushed to Rubygems. The result is that every user automatically gets the correctly compiled gem for their specific platform--they don't need to build the gem themselves.

Image

If a platform is not supported, a plain ruby version is pushed. This would run the compilation locally on the user's machine, just as it is done now.

I've done this for a bunch of projects and took the idea from Nokogiri. I do not mind at all doing the work necessary to get this working; the challenge is that, since this would run on GitHub Actions, and I don't have admin privileges, someone on the team would need to trigger the builds to test it out. I can do my best building locally with rake-compiler-dock, but inevitably there will be errors on the CI machine while working the flow out. There always are. 😆

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions