Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ruby 3.2 support #11407

Closed
JunichiIto opened this issue Dec 26, 2022 · 18 comments
Closed

Add Ruby 3.2 support #11407

JunichiIto opened this issue Dec 26, 2022 · 18 comments

Comments

@JunichiIto
Copy link

Ruby 3.2.0 has been released, but I couldn't deploy to Heroku with following error:

Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 8 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (11/11), 1.47 KiB | 1.47 MiB/s, done.
Total 11 (delta 8), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Building on the Heroku-22 stack
remote: -----> Using buildpack: heroku/ruby
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.3.25
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-3.2.0
remote:        Ruby version change detected. Clearing bundler cache.
remote:        Old: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
remote:        New: ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
remote: -----> Installing dependencies using bundler 2.3.25
remote:        Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
remote:        Fetching gem metadata from https://rubygems.org/..........
remote:        google-protobuf-3.21.12-x86_64-linux requires ruby version < 3.2.dev, >= 2.5,
remote:        which is incompatible with the current version, 3.2.0
remote:        Bundler Output: Fetching gem metadata from https://rubygems.org/..........
remote:        google-protobuf-3.21.12-x86_64-linux requires ruby version < 3.2.dev, >= 2.5,
remote:        which is incompatible with the current version, 3.2.0
remote: 
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !	Push rejected to foo-bar.
remote: 
To https://git.heroku.com/foo-bar.git
 ! [remote rejected] ruby-3-2 -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/foo-bar.git'

I'd appreciate if you could add Ruby 3.2 support soon.

Related links (discussions about Ruby 3.1)

@kmcphillips
Copy link

This limitation is only on the precompiled binaries. Different platform gems have different ruby requirements:

The version that isn't compiled has no maximum version number so should be able to build.

That works locally for me, but I'm also deploying with a buildpack and haven't succeeded in telling it to compile rather than fetch the precompiled version.

@tinco
Copy link

tinco commented Jan 5, 2023

I have the same problem, I can install google-protobuf 3.21.12 just fine, but specifying it as an explicit dependency in my Gemfile doesn't solve the problem because it looks for the precompiled version anyway. Is there a way to override this behavior?

@tinco
Copy link

tinco commented Jan 5, 2023

Ah I just solved it. I accidentally ran bundle install before running bundle update and it installed an old version of Bundler (2.1.4) which has a bug that causes it to not fall back to the source version.

@cfaboumyIppon
Copy link

@tinco Have you managed to deploy it ? I have the same error when I try to deploy to github-pages. Even if I specify the gem google-protobuf 3.21.12 in the Gemfile nothing seems to change. (I am using Bundler 2.4.1)

@tinco
Copy link

tinco commented Jan 5, 2023

Yeah, I got some more errors I didn't understand so I just removed the Gemfile.lock and ran bundle update. That fixed all issues, but it requires you run a diff with the old Gemfile.lock to see if there's any major version upgrades with incompatibilities. I reserved the whole day to fix those.

@tinco
Copy link

tinco commented Jan 5, 2023

Eh also make sure you actually uninstall the old bundler with gem uninstall bundler it kept using the old one even after installing the new one.

@cfaboumyIppon
Copy link

cfaboumyIppon commented Jan 5, 2023

Even after updating the bundler and regenerating the Gemfile.lock I still have an issue as the google-protobuf 3.21.12-x86_64-linux is used by default. But thank you for the help !

@danielmorrison
Copy link

I was poking at this on Heroku yesterday too and gave up.

@gaffneyc
Copy link
Contributor

gaffneyc commented Jan 5, 2023

Looks like this may be related to an issue in Bundler 2.4.2 which is keeping it from falling back to the 'ruby' platform when precompiled binaries aren't appropriate (see rubygems/rubygems#6237)

This happens with every major release and will also require changes to the build process to (similar to these changes for 3.1.0) so future releases will include 3.2.0 binaries. It usually takes 2-3 months before google-protobuf gets updated for the new version of Ruby.

@gaffneyc
Copy link
Contributor

gaffneyc commented Jan 6, 2023

Looks like installing protobuf is working now with rubygems 3.4.3 and bundler 2.4.3 (both released today). Make sure to update bundler in the lock file (bundler update --bundler) otherwise you'll still be locked to an older version.

@cfaboumyIppon
Copy link

The error remains after deploying on GH pages, google-protobuf-3.21.12-x86_64-linux is fetched instead of google-protobuf-3.21.12.

@JunichiIto
Copy link
Author

I'm not sure what is the key, but could deploy to Heroku with the following Gemfile.lock 🎉
So I close this issue.

GEM
  remote: https://rubygems.org/
  specs:
    act_as_fire_record_beta (0.0.10)
      google-cloud-firestore
      rails
    actioncable (7.0.4)
      actionpack (= 7.0.4)
      activesupport (= 7.0.4)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
    actionmailbox (7.0.4)
      actionpack (= 7.0.4)
      activejob (= 7.0.4)
      activerecord (= 7.0.4)
      activestorage (= 7.0.4)
      activesupport (= 7.0.4)
      mail (>= 2.7.1)
      net-imap
      net-pop
      net-smtp
    actionmailer (7.0.4)
      actionpack (= 7.0.4)
      actionview (= 7.0.4)
      activejob (= 7.0.4)
      activesupport (= 7.0.4)
      mail (~> 2.5, >= 2.5.4)
      net-imap
      net-pop
      net-smtp
      rails-dom-testing (~> 2.0)
    actionpack (7.0.4)
      actionview (= 7.0.4)
      activesupport (= 7.0.4)
      rack (~> 2.0, >= 2.2.0)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.2.0)
    actiontext (7.0.4)
      actionpack (= 7.0.4)
      activerecord (= 7.0.4)
      activestorage (= 7.0.4)
      activesupport (= 7.0.4)
      globalid (>= 0.6.0)
      nokogiri (>= 1.8.5)
    actionview (7.0.4)
      activesupport (= 7.0.4)
      builder (~> 3.1)
      erubi (~> 1.4)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.1, >= 1.2.0)
    activejob (7.0.4)
      activesupport (= 7.0.4)
      globalid (>= 0.3.6)
    activemodel (7.0.4)
      activesupport (= 7.0.4)
    activerecord (7.0.4)
      activemodel (= 7.0.4)
      activesupport (= 7.0.4)
    activestorage (7.0.4)
      actionpack (= 7.0.4)
      activejob (= 7.0.4)
      activerecord (= 7.0.4)
      activesupport (= 7.0.4)
      marcel (~> 1.0)
      mini_mime (>= 1.1.0)
    activesupport (7.0.4)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 1.6, < 2)
      minitest (>= 5.1)
      tzinfo (~> 2.0)
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    bindex (0.8.1)
    bootsnap (1.15.0)
      msgpack (~> 1.2)
    builder (3.2.4)
    capybara (3.38.0)
      addressable
      matrix
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.8)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (>= 1.5, < 3.0)
      xpath (~> 3.2)
    coffee-rails (5.0.0)
      coffee-script (>= 2.2.0)
      railties (>= 5.2.0)
    coffee-script (2.4.1)
      coffee-script-source
      execjs
    coffee-script-source (1.12.2)
    concurrent-ruby (1.1.10)
    crass (1.0.6)
    date (3.3.3)
    diff-lcs (1.5.0)
    dotenv (2.8.1)
    dotenv-rails (2.8.1)
      dotenv (= 2.8.1)
      railties (>= 3.2)
    erubi (1.12.0)
    execjs (2.8.1)
    faraday (2.7.2)
      faraday-net_http (>= 2.0, < 3.1)
      ruby2_keywords (>= 0.0.4)
    faraday-net_http (3.0.2)
    faraday-retry (2.0.0)
      faraday (~> 2.0)
    ffi (1.15.5)
    gapic-common (0.16.0)
      faraday (>= 1.9, < 3.a)
      faraday-retry (>= 1.0, < 3.a)
      google-protobuf (~> 3.14)
      googleapis-common-protos (>= 1.3.12, < 2.a)
      googleapis-common-protos-types (>= 1.3.1, < 2.a)
      googleauth (~> 1.0)
      grpc (~> 1.36)
    globalid (1.0.0)
      activesupport (>= 5.0)
    google-cloud-core (1.6.0)
      google-cloud-env (~> 1.0)
      google-cloud-errors (~> 1.0)
    google-cloud-env (1.6.0)
      faraday (>= 0.17.3, < 3.0)
    google-cloud-errors (1.3.0)
    google-cloud-firestore (2.8.0)
      concurrent-ruby (~> 1.0)
      google-cloud-core (~> 1.5)
      google-cloud-firestore-v1 (~> 0.0)
      rbtree (~> 0.4.2)
    google-cloud-firestore-v1 (0.8.0)
      gapic-common (>= 0.10, < 2.a)
      google-cloud-errors (~> 1.0)
      google-cloud-location (>= 0.0, < 2.a)
    google-cloud-location (0.2.0)
      gapic-common (>= 0.10, < 2.a)
      google-cloud-errors (~> 1.0)
    google-protobuf (3.21.12)
    googleapis-common-protos (1.4.0)
      google-protobuf (~> 3.14)
      googleapis-common-protos-types (~> 1.2)
      grpc (~> 1.27)
    googleapis-common-protos-types (1.5.0)
      google-protobuf (~> 3.14)
    googleauth (1.3.0)
      faraday (>= 0.17.3, < 3.a)
      jwt (>= 1.4, < 3.0)
      memoist (~> 0.16)
      multi_json (~> 1.11)
      os (>= 0.9, < 2.0)
      signet (>= 0.16, < 2.a)
    grpc (1.50.0)
      google-protobuf (~> 3.21)
      googleapis-common-protos-types (~> 1.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jbuilder (2.11.5)
      actionview (>= 5.0.0)
      activesupport (>= 5.0.0)
    jwt (2.6.0)
    kaminari (1.2.2)
      activesupport (>= 4.1.0)
      kaminari-actionview (= 1.2.2)
      kaminari-activerecord (= 1.2.2)
      kaminari-core (= 1.2.2)
    kaminari-actionview (1.2.2)
      actionview
      kaminari-core (= 1.2.2)
    kaminari-activerecord (1.2.2)
      activerecord
      kaminari-core (= 1.2.2)
    kaminari-core (1.2.2)
    loofah (2.19.1)
      crass (~> 1.0.2)
      nokogiri (>= 1.5.9)
    mail (2.8.0)
      mini_mime (>= 0.1.1)
      net-imap
      net-pop
      net-smtp
    marcel (1.0.2)
    matrix (0.4.2)
    memoist (0.16.2)
    meta-tags (2.18.0)
      actionpack (>= 3.2.0, < 7.1)
    method_source (1.0.0)
    mini_mime (1.1.2)
    mini_portile2 (2.8.1)
    minitest (5.17.0)
    msgpack (1.6.0)
    multi_json (1.15.0)
    net-imap (0.3.4)
      date
      net-protocol
    net-pop (0.1.2)
      net-protocol
    net-protocol (0.2.1)
      timeout
    net-smtp (0.3.3)
      net-protocol
    newrelic_rpm (8.14.0)
    nio4r (2.5.8)
    nokogiri (1.13.10)
      mini_portile2 (~> 2.8.0)
      racc (~> 1.4)
    os (1.1.4)
    public_suffix (5.0.1)
    puma (6.0.1)
      nio4r (~> 2.0)
    racc (1.6.2)
    rack (2.2.5)
    rack-test (2.0.2)
      rack (>= 1.3)
    rails (7.0.4)
      actioncable (= 7.0.4)
      actionmailbox (= 7.0.4)
      actionmailer (= 7.0.4)
      actionpack (= 7.0.4)
      actiontext (= 7.0.4)
      actionview (= 7.0.4)
      activejob (= 7.0.4)
      activemodel (= 7.0.4)
      activerecord (= 7.0.4)
      activestorage (= 7.0.4)
      activesupport (= 7.0.4)
      bundler (>= 1.15.0)
      railties (= 7.0.4)
    rails-dom-testing (2.0.3)
      activesupport (>= 4.2.0)
      nokogiri (>= 1.6)
    rails-html-sanitizer (1.4.4)
      loofah (~> 2.19, >= 2.19.1)
    railties (7.0.4)
      actionpack (= 7.0.4)
      activesupport (= 7.0.4)
      method_source
      rake (>= 12.2)
      thor (~> 1.0)
      zeitwerk (~> 2.5)
    rake (13.0.6)
    rbtree (0.4.6)
    regexp_parser (2.6.1)
    rexml (3.2.5)
    rspec-core (3.12.0)
      rspec-support (~> 3.12.0)
    rspec-expectations (3.12.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-mocks (3.12.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-rails (6.0.1)
      actionpack (>= 6.1)
      activesupport (>= 6.1)
      railties (>= 6.1)
      rspec-core (~> 3.11)
      rspec-expectations (~> 3.11)
      rspec-mocks (~> 3.11)
      rspec-support (~> 3.11)
    rspec-support (3.12.0)
    ruby2_keywords (0.0.5)
    rubyzip (2.3.2)
    sass-rails (6.0.0)
      sassc-rails (~> 2.1, >= 2.1.1)
    sassc (2.4.0)
      ffi (~> 1.9)
    sassc-rails (2.1.2)
      railties (>= 4.0.0)
      sassc (>= 2.0)
      sprockets (> 3.0)
      sprockets-rails
      tilt
    selenium-webdriver (4.7.1)
      rexml (~> 3.2, >= 3.2.5)
      rubyzip (>= 1.2.2, < 3.0)
      websocket (~> 1.0)
    signet (0.17.0)
      addressable (~> 2.8)
      faraday (>= 0.17.5, < 3.a)
      jwt (>= 1.5, < 3.0)
      multi_json (~> 1.10)
    sprockets (4.2.0)
      concurrent-ruby (~> 1.0)
      rack (>= 2.2.4, < 4)
    sprockets-rails (3.4.2)
      actionpack (>= 5.2)
      activesupport (>= 5.2)
      sprockets (>= 3.0.0)
    thor (1.2.1)
    tilt (2.0.11)
    timeout (0.3.1)
    tzinfo (2.0.5)
      concurrent-ruby (~> 1.0)
    uglifier (4.2.0)
      execjs (>= 0.3.0, < 3)
    web-console (4.2.0)
      actionview (>= 6.0.0)
      activemodel (>= 6.0.0)
      bindex (>= 0.4.0)
      railties (>= 6.0.0)
    websocket (1.2.9)
    websocket-driver (0.7.5)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.5)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    zeitwerk (2.6.6)

PLATFORMS
  ruby
  x86_64-linux

DEPENDENCIES
  act_as_fire_record_beta
  bootsnap
  capybara
  coffee-rails
  dotenv-rails
  jbuilder
  kaminari
  meta-tags
  newrelic_rpm
  puma
  rails (= 7.0.4)
  rspec-rails
  sass-rails
  selenium-webdriver
  tzinfo-data
  uglifier (>= 1.3.0)
  web-console

RUBY VERSION
   ruby 3.2.0p0

BUNDLED WITH
   2.4.3

@frederikspang
Copy link

@JunichiIto But as far as I can tell, that doesn't fix the issue of prebuilt binaries not supporting 3.2. That just removes the prebuilt binary from your Gemfile.lock

Can you confirm by deployment log, that it does say:

Installing google-protobuf 3.21.12 with native extensions

instead of

Installing google-protobuf 3.21.12 (x86_64-linux)

as it should be outputting, when using prebuilt binary?

@JunichiIto
Copy link
Author

I see Installing google-protobuf 3.21.12 with native extensions. Here is my deploy log for Heroku:

$ git push heroku-staging-http cache-sandbox:master
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 185 bytes | 185.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Building on the Heroku-22 stack
remote: -----> Using buildpack: heroku/ruby
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.3.25
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-3.2.0
remote: -----> Installing dependencies using bundler 2.3.25
remote:        Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
remote:        Fetching gem metadata from https://rubygems.org/..........
remote:        Fetching rake 13.0.6
remote:        Installing rake 13.0.6
remote:        Using ruby2_keywords 0.0.5
remote:        Fetching concurrent-ruby 1.1.10
remote:        Fetching faraday-net_http 3.0.2
remote:        Fetching google-cloud-errors 1.3.0
remote:        Fetching google-protobuf 3.21.12
remote:        Installing google-cloud-errors 1.3.0
remote:        Installing faraday-net_http 3.0.2
remote:        Fetching jwt 2.6.0
remote:        Fetching memoist 0.16.2
remote:        Installing google-protobuf 3.21.12 with native extensions
remote:        Installing memoist 0.16.2
remote:        Fetching multi_json 1.15.0
remote:        Installing concurrent-ruby 1.1.10
remote:        Installing jwt 2.6.0
remote:        Installing multi_json 1.15.0
remote:        Fetching os 1.1.4
remote:        Fetching public_suffix 5.0.1
remote:        Installing os 1.1.4
remote:        Fetching rbtree 0.4.6
remote:        Installing public_suffix 5.0.1
remote:        Fetching minitest 5.17.0
remote:        Installing rbtree 0.4.6 with native extensions
remote:        Fetching builder 3.2.4
remote:        Installing minitest 5.17.0
remote:        Installing builder 3.2.4
remote:        Fetching erubi 1.12.0
remote:        Fetching mini_portile2 2.8.1
remote:        Installing erubi 1.12.0
remote:        Using racc 1.6.2
remote:        Fetching crass 1.0.6
remote:        Installing mini_portile2 2.8.1
remote:        Fetching rack 2.2.5
remote:        Installing crass 1.0.6
remote:        Fetching nio4r 2.5.8
remote:        Installing rack 2.2.5
remote:        Installing nio4r 2.5.8 with native extensions
remote:        Fetching websocket-extensions 0.1.5
remote:        Installing websocket-extensions 0.1.5
remote:        Fetching marcel 1.0.2
remote:        Installing marcel 1.0.2
remote:        Fetching mini_mime 1.1.2
remote:        Installing mini_mime 1.1.2
remote:        Using date 3.3.3
remote:        Using timeout 0.3.1
remote:        Using bundler 2.4.1
remote:        Fetching method_source 1.0.0
remote:        Installing method_source 1.0.0
remote:        Fetching thor 1.2.1
remote:        Installing thor 1.2.1
remote:        Fetching zeitwerk 2.6.6
remote:        Installing zeitwerk 2.6.6
remote:        Fetching msgpack 1.6.0
remote:        Installing msgpack 1.6.0 with native extensions
remote:        Fetching coffee-script-source 1.12.2
remote:        Installing coffee-script-source 1.12.2
remote:        Fetching execjs 2.8.1
remote:        Installing execjs 2.8.1
remote:        Fetching ffi 1.15.5
remote:        Installing ffi 1.15.5 with native extensions
remote:        Fetching kaminari-core 1.2.2
remote:        Installing kaminari-core 1.2.2
remote:        Fetching newrelic_rpm 8.14.0
remote:        Installing newrelic_rpm 8.14.0
remote:        Fetching tilt 2.0.11
remote:        Installing tilt 2.0.11
remote:        Fetching faraday 2.7.2
remote:        Installing faraday 2.7.2
remote:        Fetching i18n 1.12.0
remote:        Installing i18n 1.12.0
remote:        Fetching tzinfo 2.0.5
remote:        Installing tzinfo 2.0.5
remote:        Fetching addressable 2.8.1
remote:        Installing addressable 2.8.1
remote:        Fetching nokogiri 1.13.10
remote:        Installing nokogiri 1.13.10 with native extensions
remote:        Fetching rack-test 2.0.2
remote:        Installing rack-test 2.0.2
remote:        Fetching sprockets 4.2.0
remote:        Installing sprockets 4.2.0
remote:        Fetching websocket-driver 0.7.5
remote:        Installing websocket-driver 0.7.5 with native extensions
remote:        Using net-protocol 0.2.1
remote:        Fetching coffee-script 2.4.1
remote:        Installing coffee-script 2.4.1
remote:        Fetching uglifier 4.2.0
remote:        Installing uglifier 4.2.0
remote:        Fetching puma 6.0.1
remote:        Installing puma 6.0.1 with native extensions
remote:        Fetching google-cloud-env 1.6.0
remote:        Installing google-cloud-env 1.6.0
remote:        Fetching faraday-retry 2.0.0
remote:        Installing faraday-retry 2.0.0
remote:        Fetching activesupport 7.0.4
remote:        Installing activesupport 7.0.4
remote:        Fetching signet 0.17.0
remote:        Installing signet 0.17.0
remote:        Fetching bootsnap 1.15.0
remote:        Installing bootsnap 1.15.0 with native extensions
remote:        Fetching net-imap 0.3.4
remote:        Installing net-imap 0.3.4
remote:        Fetching net-pop 0.1.2
remote:        Installing net-pop 0.1.2
remote:        Fetching net-smtp 0.3.3
remote:        Installing net-smtp 0.3.3
remote:        Fetching googleapis-common-protos-types 1.5.0
remote:        Installing googleapis-common-protos-types 1.5.0
remote:        Fetching google-cloud-core 1.6.0
remote:        Installing google-cloud-core 1.6.0
remote:        Fetching globalid 1.0.0
remote:        Installing globalid 1.0.0
remote:        Fetching activemodel 7.0.4
remote:        Installing activemodel 7.0.4
remote:        Fetching googleauth 1.3.0
remote:        Installing googleauth 1.3.0
remote:        Fetching mail 2.8.0
remote:        Fetching grpc 1.50.0
remote:        Installing mail 2.8.0
remote:        Fetching activejob 7.0.4
remote:        Installing activejob 7.0.4
remote:        Fetching activerecord 7.0.4
remote:        Installing activerecord 7.0.4
remote:        Installing grpc 1.50.0 with native extensions
remote:        Fetching kaminari-activerecord 1.2.2
remote:        Installing kaminari-activerecord 1.2.2
remote:        Fetching sassc 2.4.0
remote:        Installing sassc 2.4.0 with native extensions
remote:        Fetching rails-dom-testing 2.0.3
remote:        Fetching loofah 2.19.1
remote:        Installing rails-dom-testing 2.0.3
remote:        Installing loofah 2.19.1
remote:        Fetching rails-html-sanitizer 1.4.4
remote:        Installing rails-html-sanitizer 1.4.4
remote:        Fetching actionview 7.0.4
remote:        Installing actionview 7.0.4
remote:        Fetching actionpack 7.0.4
remote:        Fetching jbuilder 2.11.5
remote:        Installing jbuilder 2.11.5
remote:        Fetching kaminari-actionview 1.2.2
remote:        Installing actionpack 7.0.4
remote:        Installing kaminari-actionview 1.2.2
remote:        Fetching kaminari 1.2.2
remote:        Installing kaminari 1.2.2
remote:        Fetching actioncable 7.0.4
remote:        Fetching activestorage 7.0.4
remote:        Installing activestorage 7.0.4
remote:        Installing actioncable 7.0.4
remote:        Fetching actionmailer 7.0.4
remote:        Fetching railties 7.0.4
remote:        Installing actionmailer 7.0.4
remote:        Fetching meta-tags 2.18.0
remote:        Installing railties 7.0.4
remote:        Installing meta-tags 2.18.0
remote:        Fetching sprockets-rails 3.4.2
remote:        Installing sprockets-rails 3.4.2
remote:        Fetching actionmailbox 7.0.4
remote:        Installing actionmailbox 7.0.4
remote:        Fetching actiontext 7.0.4
remote:        Fetching coffee-rails 5.0.0
remote:        Installing actiontext 7.0.4
remote:        Installing coffee-rails 5.0.0
remote:        Fetching rails 7.0.4
remote:        Installing rails 7.0.4
remote:        Fetching sassc-rails 2.1.2
remote:        Installing sassc-rails 2.1.2
remote:        Fetching sass-rails 6.0.0
remote:        Installing sass-rails 6.0.0
remote:        Fetching googleapis-common-protos 1.4.0
remote:        Installing googleapis-common-protos 1.4.0
remote:        Fetching gapic-common 0.16.0
remote:        Installing gapic-common 0.16.0
remote:        Fetching google-cloud-location 0.2.0
remote:        Installing google-cloud-location 0.2.0
remote:        Fetching google-cloud-firestore-v1 0.8.0
remote:        Installing google-cloud-firestore-v1 0.8.0
remote:        Fetching google-cloud-firestore 2.8.0
remote:        Installing google-cloud-firestore 2.8.0
remote:        Fetching act_as_fire_record_beta 0.0.10
remote:        Installing act_as_fire_record_beta 0.0.10
remote:        Bundle complete! 17 Gemfile dependencies, 93 gems now installed.
remote:        Gems in the groups 'development' and 'test' were not installed.
remote:        Bundled gems are installed into `./vendor/bundle`
remote:        Bundle completed (760.10s)
remote:        Cleaning up the bundler cache.
remote:        Removing bundler (2.3.25)
remote: -----> Installing node-v16.18.1-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile

(omit)

remote:        Asset precompilation completed (6.02s)
remote:        Cleaning assets
remote:        Running: rake assets:clean
remote: -----> Detecting rails configuration
remote: 
remote: 
remote: -----> Discovering process types
remote:        Procfile declares types     -> web
remote:        Default types for buildpack -> console, rake
remote: 
remote: -----> Compressing...
remote:        Done: 370.8M
remote: -----> Launching...
remote:  !     Warning: Your slug size (370 MB) exceeds our soft limit (300 MB) which may affect boot time.
remote:        Released v113
remote:        https://foobar.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/foobar.git
   be6721d..316544d  cache-sandbox -> master

@mockdeep
Copy link

I'm still seeing this issue as well. Heroku locks the bundler version at 2.3.25, so upgrading to the latest isn't an option. I also see the error running the build on CircleCI:

google-protobuf-3.21.12-x86_64-linux requires ruby version < 3.2.dev, >= 2.5,

@frederikspang
Copy link

@JunichiIto Exactly - So the prebuilt binaries are not release for 3.2.0; You're just running with compilation (the ruby-platform).

We should reopen this issue, as it is not solved.

@frederikspang
Copy link

I have reopened a new issue, following the bug report template.
#11538

@hasghari
Copy link

hasghari commented Jan 24, 2023

I was experiencing the same problem with Heroku as well. What fixed it for me was running the following command to add the x86_64-linux platform to my Gemfile:

bundle lock --add-platform x86_64-linux

I already had the ruby platform so make sure you have that as well so it can fall back to that. If you don't have the ruby platform, add it by running:

bundle lock --add-platform ruby

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants