From 559336c77161fe572fc3ca1d5e304b4a7b1b3c59 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Mon, 20 Nov 2023 18:48:37 +0000 Subject: [PATCH 1/2] Enable Ruby 3 for `HOMEBREW_DEVELOPER` --- .github/workflows/tests.yml | 9 +++++---- Dockerfile | 3 ++- Library/Homebrew/brew.sh | 5 +++++ Library/Homebrew/utils/ruby.sh | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 892ea9e94c..66583d51b3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -294,12 +294,12 @@ jobs: - name: tests (macOS 13) test-flags: --coverage runs-on: macos-13 - - name: tests (Ubuntu 22.04; Ruby 3.1) + - name: tests (Ubuntu 22.04; Ruby 2.6) runs-on: ubuntu-22.04 - ruby: '3.1' - - name: tests (macOS 13; Ruby 3.1) + ruby: '2.6' + - name: tests (macOS 13; Ruby 2.6) runs-on: macos-13 - ruby: '3.1' + ruby: '2.6' steps: - name: Set up Homebrew id: set-up-homebrew @@ -321,6 +321,7 @@ jobs: uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} + bundler: none - name: Setup Ruby environment if: matrix.ruby diff --git a/Dockerfile b/Dockerfile index 37c32aa98a..ec4dcc7d82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,7 +56,8 @@ RUN apt-get update \ USER linuxbrew COPY --chown=linuxbrew:linuxbrew . /home/linuxbrew/.linuxbrew/Homebrew -ENV PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:${PATH}" +ENV PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:${PATH}" \ + HOMEBREW_RUBY3=1 WORKDIR /home/linuxbrew RUN mkdir -p \ diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 7fad5c9968..d847c60283 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -945,6 +945,11 @@ then export HOMEBREW_SORBET_RUNTIME="1" fi +if [[ -n "${HOMEBREW_DEVELOPER}" ]] +then + export HOMEBREW_RUBY3="1" +fi + if [[ -f "${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh" ]] then HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh" diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh index 322113501b..947fdd9cce 100644 --- a/Library/Homebrew/utils/ruby.sh +++ b/Library/Homebrew/utils/ruby.sh @@ -10,7 +10,7 @@ test_ruby() { return 1 fi - if [[ -n "${HOMEBREW_RUBY3}" ]] + if [[ -n "${HOMEBREW_RUBY3}" && -z "${HOMEBREW_USE_RUBY_FROM_PATH}" ]] then required_ruby_version="3.1.0" else From 7a9f3eb8003e85b3512222dfdf1839e55524c910 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Tue, 21 Nov 2023 15:03:22 +0000 Subject: [PATCH 2/2] utils/ruby.sh: don't _require_ 3.1 in HOMEBREW_RUBY3 mode --- Library/Homebrew/utils/ruby.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh index 947fdd9cce..1a08460821 100644 --- a/Library/Homebrew/utils/ruby.sh +++ b/Library/Homebrew/utils/ruby.sh @@ -10,16 +10,24 @@ test_ruby() { return 1 fi + supported_ruby_versions=() if [[ -n "${HOMEBREW_RUBY3}" && -z "${HOMEBREW_USE_RUBY_FROM_PATH}" ]] then - required_ruby_version="3.1.0" - else - required_ruby_version="${HOMEBREW_REQUIRED_RUBY_VERSION}" + supported_ruby_versions+=("3.1.0") fi + supported_ruby_versions+=("${HOMEBREW_REQUIRED_RUBY_VERSION}") - "$1" --enable-frozen-string-literal --disable=gems,did_you_mean,rubyopt \ - "${HOMEBREW_LIBRARY}/Homebrew/utils/ruby_check_version_script.rb" \ - "${required_ruby_version}" 2>/dev/null + for ruby_version in "${supported_ruby_versions[@]}" + do + if "$1" --enable-frozen-string-literal --disable=gems,did_you_mean,rubyopt \ + "${HOMEBREW_LIBRARY}/Homebrew/utils/ruby_check_version_script.rb" \ + "${ruby_version}" 2>/dev/null + then + return 0 + fi + done + + return 1 } can_use_ruby_from_path() {