Shopify / Shopify/cibuildgem

Run the compilation in a container

Open
#37 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
77
Forks
4
Avg merge
22h 5m
Merged PRs (30d)
2

Description

Right now the compilation is done directly in the host. To compile gems on Linux this is problematic because it may end up compiling binaries that are incompatible with older linux versions.

For instance, if I compile the date gem on Ubuntu 24, then it's going to be incompatible on Ubuntu 22 and below. This is because the date gem makes use of strlcpy which is a new function added in glibc 2.38 (previously the function came from Ruby and exposed it conditionally using HAVE_STRLCPY).
If we run the compilation in a container we control the environment we are in and will be less prone to issues like this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name files, tests, or an entry point. Start by tracing where compilation currently runs on the host and identify how the gem build environment is selected. Done means compilation runs in a controlled container and produces binaries compatible with older Linux versions, with coverage for the stated compatibility problem.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.