Spike - Investigate requirements for building a testable Ruby 3 omnibus-gitlab

This issue is for building a testable omnibus-gitlab image using Ruby 3 instead of 2.7.5

This effort will try to implement this comment

This effort will be timeboxed to 15.5, with findings presented at the end of the milestone.

Update the https://gitlab.com/gitlab-org/gitlab-omnibus-builder/-/tree/master/docker builder images to ruby 3

Likely do this as a major version change, so we can continue to move forward with ruby 2.7 within the existing major version while we need both


Confirm test builds are working with the omnibus project, (this was done previously by @mkaeppler , and we have since fixed all the known blockers that were found then, but this needs to be done again to find any remaining issue)
Update the ruby 3 software build in omnibus to choose a version based on some variable, (maybe via detecting which version the builder is on?) So we can keep building either ruby 2.7 or ruby 3
Update the CI to allow ruby 3, or ruby 2 builds to be triggered

Initial considerations:

  • The bundled dependencies of GitLab should be compatible with Ruby 3 (this issue assumes they are)

  • The non bundled dependencies of gitlab-omnibus should be compatible with Ruby 3

  • Any cookbooks that depend on the prefixed ruby should also be compatible with Ruby 3.

  • Consider using Barista-Gitlab to build using Ruby 3 for faster feedback on any build issues. (optional)

  • Get a testable build using Ruby 3 working in omnibus-gitlab

  • Provision a test runner that has the resources required to build omnibus-gitlab

  • Consider making a pipeline in gitlab-qa before trying to plumb out the GitLab project (optional)

  • Formalize the solve using environment variables to build 2.7.5 or 3.

Out of scope

This effort is not to upgrade the version of Ruby used to run the omnibus-gitlab scripts.

For more information, please refer to: gitlab-org/gitlab#340298 (closed)

Quality typemaintenance maintenancedependency

Edited by Sean Gregory