No release in over a year
Ruby builds used at Shopify.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

shopify-ruby-definitions

This repository contains ruby-build definitions of Rubies we use at Shopify. These builds are API compliant with release Rubies, but with additional backports for bugfixes and performance.

rbenv integration

If you use rbenv, you can add the custom rubies with:

$ gem install shopify-ruby-definitions
$ eval "$(shopify-ruby env)"

standalone ruby-build

If you are using another ruby version manager or no manager at all:

  1. Install ruby-build by following the instructions.

  2. Install the gem:

    $ gem install shopify-ruby-definitions
  3. List the custom Ruby versions available:

    $ shopify-ruby versions
    3.0.0-pshopify9
    3.0.1-pshopify2
    3.0.2-pshopify3
    3.1.0-pshopify1
    3.1.1-pshopify2
    3.1.2-pshopify2
    3.1.3-pshopify1
    3.1.4-pshopify1
    3.2.0-pshopify2
    3.2.1-pshopify5
    3.2.2-pshopify3
    3.2.2-pshopify4
  4. Install the Ruby version you want, options are the same than regular ruby-build:

    $ shopify-ruby build 3.2.2-pshopify4 ~/.rubies/versions/3.2.2
  5. Resolve a less specific version to one of these definitions

    $ shopify-ruby resolve 3.2
    $ shopify-ruby resolve 3.2
    3.2.2-pshopify4

Creating a new pshopify definition

A rake task automates the creation of new pshopify definition files:

$ rake pshopify:create              # uses latest stable Ruby from ruby-build
$ rake "pshopify:create[4.0.2]"     # uses a specific version

This will:

  • Default to the latest stable CRuby version if none is specified
  • Determine the next pshopify number (e.g. 4.0.2-pshopify2 if 4.0.2-pshopify1 already exists)
  • Verify the branch exists on Shopify/ruby
  • Read the openssl line from the upstream ruby-build definition
  • Fetch the changelog from the GitHub compare API
  • Generate the definition file in rubies/

Prerequisites

  • The gh CLI must be installed and authenticated
  • A local ruby-build checkout must be available. The task searches for sibling directories matching *ruby-build, or you can set RUBY_BUILD_PATH:
$ RUBY_BUILD_PATH=~/src/ruby-build rake "pshopify:create[4.0.2]"