From 6ebd76ce96f697c29f25a5e625e6abbaf0badb92 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Thu, 20 Mar 2025 12:35:39 -0500 Subject: [PATCH 1/6] Raise an explicit error message for Bundler 1.x (#1561) With the Ruby 3.3.7 default, bundler 1.x no longer works on Heroku with the Ruby buildpack. Here's the details of what's causing the error: The Ruby buildpack uses Ruby code to inspect the application at build time to know what dependencies and versions to install. The version of Ruby that the buildpack uses is tied to the default Ruby version. Recently this version was changed to Ruby 3.3.7 https://devcenter.heroku.com/changelog-items/3167. The Ruby buildpack runs `bundle platform --ruby` in order to determine what Ruby version the application needs. This invokes bundler using the current Ruby version (3.3.7). However, bundler is using a method that was deprecated and removed in Ruby 3.2 https://ruby-doc.org/stdlib-2.7.1/libdoc/pathname/rdoc/Pathname.html#method-i-untaint. Because this method does not exist in Ruby 3.3 the bundler code cannot execute and fails with an error message: ``` remote: ! There was an error parsing your Gemfile, we cannot continue remote: ! /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:29:in `root': undefined method `untaint' for an instance of Pathname (NoMethodError) remote: ! remote: ! Pathname.new(gemfile).untaint.expand_path.parent remote: ! ^^^^^^^^ remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler.rb:234:in `root' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler.rb:246:in `app_config_path' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler.rb:273:in `settings' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/feature_flag.rb:21:in `block in settings_method' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/cli.rb:97:in `' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/cli.rb:7:in `' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/cli.rb:6:in `' remote: ! from :136:in `require' remote: ! from :136:in `require' remote: ! from /tmp/tmp.CMaelujSAR/lib/ruby/gems/3.3.0/gems/bundler-2.5.22/exe/bundle:21:in `block in ' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors' remote: ! from /tmp/tmp.CMaelujSAR/lib/ruby/gems/3.3.0/gems/bundler-2.5.22/exe/bundle:20:in `' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/bin/bundle:23:in `load' remote: ! from /tmp/d20250319-150-o0ictl/bundler-1.17.3/bin/bundle:23:in `
' ``` Bundler `1.17.3` was last released on December 27, 2018, and is no longer supported by bundler/rubygems core, so it has not been patched to remove this deprecated method. You can fix this issue by upgrading your application to bundler 2.3.x. I suggest `2.3.27`. Run: ``` $ gem install bundler -v 2.3.27 $ bundle update --bundler ``` Verify that the correct version is listed in the Gemfile.lock: ``` $ cat Gemfile.lock | grep "BUNDLED WITH" -A2 BUNDLED WITH 2.3.27 ``` And check the results into git: ``` $ git add Gemfile.lock $ git commit -m "Update bundler version to 2.3.x" ``` Then deploy. Bundler 2.3.x supports Ruby >= 2.3.0 so it should work for your application. If you're using an older version of Rails that's locked to an older version of bundler, you can work around this with Rails LTS. That information and other upgrade suggestions are here https://www.reddit.com/r/Heroku/comments/1ij7b89/upgrading_ruby_versions_to_run_on_heroku24/. ## Additional concerns Beyond `bundle platform --ruby` the buildpack also requires bundler internals to parse and load the Gemfile.lock. This strategy only works if the version of Ruby we're using for the buildpack is capable of running that version of bundler. Previously we only supported one version of bundler, but now that we support multiple, the Ruby version must be capable of running them all. We can move away from `bundle platform --ruby` by parsing the `Gemfile.lock` manually (this is what the CNB does) we can move away from requiring an arbitrary bundler version by listing out gems after they're installed via `gem list` or `bundle list`. However these are two relatively large behavior changes. It's still possible to temporarily use bundler 1.17.3 on the platform by using an older buildpack version https://devcenter.heroku.com/articles/bundler-version#using-an-older-version-of-bundler. However this should only be considered a temporary fix and not a long term one. --- CHANGELOG.md | 2 ++ lib/language_pack/helpers/bundler_wrapper.rb | 18 ++++++++++++++++-- spec/helpers/bundler_wrapper_spec.rb | 16 +++------------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f8e4e0fc..605107fe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,13 @@ ## [Unreleased] +- Explicit error message raised with upgrade instructions for applications specifying bundler `1.x` in the Gemfile.lock (https://github.com/heroku/heroku-buildpack-ruby/pull/1561) ## [v294] - 2025-03-19 - Default Ruby version is now 3.3.7 (https://github.com/heroku/heroku-buildpack-ruby/pull/1534) - Default bundler version (when no version present in the `Gemfile.lock`) is now bundler `2.3.x` which is currently `2.3.25` (https://github.com/heroku/heroku-buildpack-ruby/pull/1534) +- Bundler 1.x will no longer work with the Ruby buildpack (https://github.com/heroku/heroku-buildpack-ruby/pull/1534) ## [v293] - 2025-02-15 diff --git a/lib/language_pack/helpers/bundler_wrapper.rb b/lib/language_pack/helpers/bundler_wrapper.rb index 47ee08d84..4bec9d61b 100644 --- a/lib/language_pack/helpers/bundler_wrapper.rb +++ b/lib/language_pack/helpers/bundler_wrapper.rb @@ -36,7 +36,6 @@ class LanguagePack::Helpers::BundlerWrapper include LanguagePack::ShellHelpers BLESSED_BUNDLER_VERSIONS = {} - BLESSED_BUNDLER_VERSIONS["1"] = "1.17.3" # Heroku-20's oldest Ruby verison is 2.5.x which doesn't work with bundler 2.4 BLESSED_BUNDLER_VERSIONS["2.3"] = "2.3.25" BLESSED_BUNDLER_VERSIONS["2.4"] = "2.4.22" @@ -48,7 +47,22 @@ class LanguagePack::Helpers::BundlerWrapper # Convert arbitrary `..x` versions BLESSED_BUNDLER_VERSIONS.default_proc = Proc.new do |hash, key| if Gem::Version.new(key).segments.first == 1 - hash["1"] + raise BuildpackError.new(<<~EOF) + Cannot install bundler 1.17.3 + + Your application requested bundler `#{key}` in the `Gemfile.lock` + which resolved to `1.17.3`. This version no longer works on + Heroku. Please upgrade to bundler `2.3.x` or higher: + + ``` + $ gem install bundler -v #{hash["2.3"]} + $ bundle update --bundler + $ git add Gemfile.lock + $ git commit -m "Updated bundler version" + ``` + + https://devcenter.heroku.com/changelog-items/3166 + EOF elsif Gem::Version::new(key).segments.first == 2 if Gem::Version.new(key) > Gem::Version.new("2.6") hash["2.6"] diff --git a/spec/helpers/bundler_wrapper_spec.rb b/spec/helpers/bundler_wrapper_spec.rb index df357ad84..baca1aabd 100644 --- a/spec/helpers/bundler_wrapper_spec.rb +++ b/spec/helpers/bundler_wrapper_spec.rb @@ -15,9 +15,9 @@ describe "Bundler version detection" do it "supports minor versions" do wrapper_klass = LanguagePack::Helpers::BundlerWrapper - version = wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 1.17.3") - expect(wrapper_klass::BLESSED_BUNDLER_VERSIONS.key?("1")).to be_truthy - expect(version).to eq(wrapper_klass::BLESSED_BUNDLER_VERSIONS["1"]) + expect { + wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 1.17.3") + }.to raise_error(BuildpackError) version = wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 2.2.7") expect(wrapper_klass::BLESSED_BUNDLER_VERSIONS.key?("2.3")).to be_truthy @@ -59,16 +59,6 @@ expect(bundler.supports_multiple_platforms?).to be_truthy end end - - it "reports false on bundler prior to 2.2" do - Dir.mktmpdir do |dir| - gemfile = Pathname(dir).join("Gemfile") - lockfile = Pathname(dir).join("Gemfile.lock").tap {|p| p.write("BUNDLED WITH\n 1.15.2") } - - bundler = LanguagePack::Helpers::BundlerWrapper.new(gemfile_path: gemfile) - expect(bundler.supports_multiple_platforms?).to be_falsey - end - end end describe "BundlerWrapper mutates rubyopt" do From 7ceb62dba1cc098e3925b151f63c5b6a4d7cd0fa Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 18:11:07 +0000 Subject: [PATCH 2/6] Prepare release v295 (#1562) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- lib/language_pack/version.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 605107fe8..2f29746ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v295] - 2025-03-20 + - Explicit error message raised with upgrade instructions for applications specifying bundler `1.x` in the Gemfile.lock (https://github.com/heroku/heroku-buildpack-ruby/pull/1561) ## [v294] - 2025-03-19 @@ -1644,7 +1647,8 @@ Bugfixes: * Change gem detection to use lockfile parser * use `$RACK_ENV` when thin is detected for rack apps -[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v294...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v295...main +[v295]: https://github.com/heroku/heroku-buildpack-ruby/compare/v294...v295 [v294]: https://github.com/heroku/heroku-buildpack-ruby/compare/v293...v294 [v293]: https://github.com/heroku/heroku-buildpack-ruby/compare/v292...v293 [v292]: https://github.com/heroku/heroku-buildpack-ruby/compare/v291...v292 diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 5d9da50de..fd9056c52 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v294" + BUILDPACK_VERSION = "v295" end end From 47edb0fb991cbc0365c348e331f11cee22e40489 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Fri, 21 Mar 2025 09:19:33 -0500 Subject: [PATCH 3/6] Re-enable bundler 1.x, add a Warning (#1565) * Bootstrap with Ruby 3.2 * Warn instead of error on Bundler 1.x * Ruby buildpack bootstrap 3.1.6 * Changelog * Update version constant * Revert error class caught --- CHANGELOG.md | 1 + Gemfile | 2 +- Gemfile.lock | 2 +- buildpack.toml | 2 +- lib/language_pack/helpers/bundler_wrapper.rb | 21 ++++------------ lib/language_pack/ruby.rb | 25 ++++++++++++++++++++ lib/language_pack/ruby_version.rb | 2 +- spec/hatchet/bundler_spec.rb | 22 +++++++++++++++++ spec/helpers/bundler_wrapper_spec.rb | 6 ++--- spec/helpers/config_spec.rb | 6 ++--- spec/helpers/shell_spec.rb | 2 +- spec/spec_helper.rb | 2 ++ 12 files changed, 65 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f29746ea..8a4b51d7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [Unreleased] +- Bundler `1.x` usage error is downgraded to a warning. This warning will be moved to an error once `heroku-20` is Sunset (https://github.com/heroku/heroku-buildpack-ruby/pull/1565) ## [v295] - 2025-03-20 diff --git a/Gemfile b/Gemfile index 8aa727aa0..632e80ab6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby "3.3.7" +ruby "3.1.6" group :development, :test do gem "toml-rb" diff --git a/Gemfile.lock b/Gemfile.lock index c4490f416..4def54426 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,7 @@ DEPENDENCIES toml-rb RUBY VERSION - ruby 3.3.7p260 + ruby 3.1.6p260 BUNDLED WITH 2.5.11 diff --git a/buildpack.toml b/buildpack.toml index 0a19ee586..253627574 100644 --- a/buildpack.toml +++ b/buildpack.toml @@ -1,6 +1,6 @@ [buildpack] name = "Ruby" -ruby_version = "3.3.7" +ruby_version = "3.1.6" [publish.Ignore] files = [ diff --git a/lib/language_pack/helpers/bundler_wrapper.rb b/lib/language_pack/helpers/bundler_wrapper.rb index 4bec9d61b..224732f32 100644 --- a/lib/language_pack/helpers/bundler_wrapper.rb +++ b/lib/language_pack/helpers/bundler_wrapper.rb @@ -37,6 +37,7 @@ class LanguagePack::Helpers::BundlerWrapper BLESSED_BUNDLER_VERSIONS = {} # Heroku-20's oldest Ruby verison is 2.5.x which doesn't work with bundler 2.4 + BLESSED_BUNDLER_VERSIONS["1"] = "1.17.3" BLESSED_BUNDLER_VERSIONS["2.3"] = "2.3.25" BLESSED_BUNDLER_VERSIONS["2.4"] = "2.4.22" BLESSED_BUNDLER_VERSIONS["2.5"] = "2.5.23" @@ -47,22 +48,7 @@ class LanguagePack::Helpers::BundlerWrapper # Convert arbitrary `..x` versions BLESSED_BUNDLER_VERSIONS.default_proc = Proc.new do |hash, key| if Gem::Version.new(key).segments.first == 1 - raise BuildpackError.new(<<~EOF) - Cannot install bundler 1.17.3 - - Your application requested bundler `#{key}` in the `Gemfile.lock` - which resolved to `1.17.3`. This version no longer works on - Heroku. Please upgrade to bundler `2.3.x` or higher: - - ``` - $ gem install bundler -v #{hash["2.3"]} - $ bundle update --bundler - $ git add Gemfile.lock - $ git commit -m "Updated bundler version" - ``` - - https://devcenter.heroku.com/changelog-items/3166 - EOF + hash["1"] elsif Gem::Version::new(key).segments.first == 2 if Gem::Version.new(key) > Gem::Version.new("2.6") hash["2.6"] @@ -81,7 +67,8 @@ def self.detect_bundler_version(contents: ) if version_match major = version_match[:major] minor = version_match[:minor] - BLESSED_BUNDLER_VERSIONS["#{major}.#{minor}"] + version = BLESSED_BUNDLER_VERSIONS["#{major}.#{minor}"] + version else DEFAULT_VERSION end diff --git a/lib/language_pack/ruby.rb b/lib/language_pack/ruby.rb index 08d963ccb..7c24de80f 100644 --- a/lib/language_pack/ruby.rb +++ b/lib/language_pack/ruby.rb @@ -79,6 +79,7 @@ def compile Dir.chdir(build_path) remove_vendor_bundle warn_bundler_upgrade + warn_bundler_1x warn_bad_binstubs install_ruby(slug_vendor_ruby) setup_language_pack_environment( @@ -108,6 +109,30 @@ def compile raise e end + def warn_bundler_1x + bundler_versions = LanguagePack::Helpers::BundlerWrapper::BLESSED_BUNDLER_VERSIONS + if bundler.version == bundler_versions["1"] + warn(<<~EOF, inline: true) + Deprecating bundler 1.17.3 + + Your application requested bundler `1.x` in the `Gemfile.lock` + which resolved to `1.17.3`. This version is no longer maintained + by bundler core and will no longer work soon. + + Please upgrade to bundler `2.3.x` or higher: + + ``` + $ gem install bundler -v #{bundler_versions["2.3"]} + $ bundle update --bundler + $ git add Gemfile.lock + $ git commit -m "Updated bundler version" + ``` + + https://devcenter.heroku.com/changelog-items/3166 + EOF + end + end + def cleanup end diff --git a/lib/language_pack/ruby_version.rb b/lib/language_pack/ruby_version.rb index 1628b6cc3..a244b25d7 100644 --- a/lib/language_pack/ruby_version.rb +++ b/lib/language_pack/ruby_version.rb @@ -12,7 +12,7 @@ def initialize(output = "") end end - BOOTSTRAP_VERSION_NUMBER = "3.3.7".freeze + BOOTSTRAP_VERSION_NUMBER = "3.1.6".freeze DEFAULT_VERSION_NUMBER = "3.3.7".freeze DEFAULT_VERSION = "ruby-#{DEFAULT_VERSION_NUMBER}".freeze LEGACY_VERSION_NUMBER = "1.9.2".freeze diff --git a/spec/hatchet/bundler_spec.rb b/spec/hatchet/bundler_spec.rb index 8d8a122ae..74184e01e 100644 --- a/spec/hatchet/bundler_spec.rb +++ b/spec/hatchet/bundler_spec.rb @@ -9,4 +9,26 @@ end end end + + it "deploys with version 1.x" do + pending("Must enable HATCHET_EXPENSIVE_MODE") unless ENV["HATCHET_EXPENSIVE_MODE"] + + Hatchet::Runner.new("default_ruby").tap do |app| + app.before_deploy do + set_bundler_version(version: "1.17.3") + Pathname("Gemfile.lock").write(<<~EOF, mode: "a") + + RUBY VERSION + ruby 3.1.6 + EOF + end + app.deploy do + expect(app.output).to match("Deprecating bundler 1.17.3") + + app.run("which -a rake") do |which_rake| + expect(which_rake).to include("/app/vendor/bundle/bin/rake") + end + end + end + end end diff --git a/spec/helpers/bundler_wrapper_spec.rb b/spec/helpers/bundler_wrapper_spec.rb index baca1aabd..cf0362d2b 100644 --- a/spec/helpers/bundler_wrapper_spec.rb +++ b/spec/helpers/bundler_wrapper_spec.rb @@ -15,9 +15,9 @@ describe "Bundler version detection" do it "supports minor versions" do wrapper_klass = LanguagePack::Helpers::BundlerWrapper - expect { - wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 1.17.3") - }.to raise_error(BuildpackError) + version = wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 1.17.3") + expect(wrapper_klass::BLESSED_BUNDLER_VERSIONS.key?("1")).to be_truthy + expect(version).to eq(wrapper_klass::BLESSED_BUNDLER_VERSIONS["1"]) version = wrapper_klass.detect_bundler_version(contents: "BUNDLED WITH\n 2.2.7") expect(wrapper_klass::BLESSED_BUNDLER_VERSIONS.key?("2.3")).to be_truthy diff --git a/spec/helpers/config_spec.rb b/spec/helpers/config_spec.rb index 437725745..eaa8d2b9c 100644 --- a/spec/helpers/config_spec.rb +++ b/spec/helpers/config_spec.rb @@ -9,9 +9,9 @@ expect(`ruby -v`).to match(Regexp.escape(LanguagePack::RubyVersion::BOOTSTRAP_VERSION_NUMBER)) - bootstrap_version = Gem::Version.new(LanguagePack::RubyVersion::BOOTSTRAP_VERSION_NUMBER) - default_version = Gem::Version.new(LanguagePack::RubyVersion::DEFAULT_VERSION_NUMBER) + # bootstrap_version = Gem::Version.new(LanguagePack::RubyVersion::BOOTSTRAP_VERSION_NUMBER) + # default_version = Gem::Version.new(LanguagePack::RubyVersion::DEFAULT_VERSION_NUMBER) - expect(bootstrap_version).to be >= default_version + # expect(bootstrap_version).to be >= default_version end end diff --git a/spec/helpers/shell_spec.rb b/spec/helpers/shell_spec.rb index ef30c836c..0d4eab188 100644 --- a/spec/helpers/shell_spec.rb +++ b/spec/helpers/shell_spec.rb @@ -87,7 +87,7 @@ def sh.print(string); string.strip; end def sh.mcount(*args); @error_caught = true; end bad_lines = File.read("spec/fixtures/invalid_encoding.log") - expect { sh.puts(bad_lines) }.to raise_error(Encoding::CompatibilityError) + expect { sh.puts(bad_lines) }.to raise_error(ArgumentError) error_caught = sh.instance_variable_get(:"@error_caught") expect(error_caught).to eq(true) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 57c63095d..82b0b8e92 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -73,6 +73,8 @@ def set_bundler_version(version: ) version = "BUNDLED WITH\n #{version}" end gemfile_lock.gsub!(/^BUNDLED WITH$(\r?\n) (?\d+)\.(?\d+)\.\d+/m, version) + gemfile_lock << "\n#{version}" unless gemfile_lock.match?(/^BUNDLED WITH/) + Pathname("Gemfile.lock").write(gemfile_lock) end From b557162c9b5e7413a868fa4ce1746857d4e170ec Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:31:24 +0000 Subject: [PATCH 4/6] Prepare release v296 (#1566) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- lib/language_pack/version.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a4b51d7d..71bb15faa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v296] - 2025-03-21 + - Bundler `1.x` usage error is downgraded to a warning. This warning will be moved to an error once `heroku-20` is Sunset (https://github.com/heroku/heroku-buildpack-ruby/pull/1565) ## [v295] - 2025-03-20 @@ -1648,7 +1651,8 @@ Bugfixes: * Change gem detection to use lockfile parser * use `$RACK_ENV` when thin is detected for rack apps -[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v295...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v296...main +[v296]: https://github.com/heroku/heroku-buildpack-ruby/compare/v295...v296 [v295]: https://github.com/heroku/heroku-buildpack-ruby/compare/v294...v295 [v294]: https://github.com/heroku/heroku-buildpack-ruby/compare/v293...v294 [v293]: https://github.com/heroku/heroku-buildpack-ruby/compare/v292...v293 diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index fd9056c52..0dbc56765 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v295" + BUILDPACK_VERSION = "v296" end end From c9d002af6add6b3be4d04518f41f5ce761fa2fcb Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 12:33:52 +0000 Subject: [PATCH 5/6] Prepare release v297 (#1567) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 +++++++- lib/language_pack/version.rb | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71bb15faa..07d396e34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ ## [Unreleased] +## [v297] - 2025-03-26 + +- Ruby 3.1.7 and 3.2.8 is now available + + ## [v296] - 2025-03-21 - Bundler `1.x` usage error is downgraded to a warning. This warning will be moved to an error once `heroku-20` is Sunset (https://github.com/heroku/heroku-buildpack-ruby/pull/1565) @@ -1651,7 +1656,8 @@ Bugfixes: * Change gem detection to use lockfile parser * use `$RACK_ENV` when thin is detected for rack apps -[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v296...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v297...main +[v297]: https://github.com/heroku/heroku-buildpack-ruby/compare/v296...v297 [v296]: https://github.com/heroku/heroku-buildpack-ruby/compare/v295...v296 [v295]: https://github.com/heroku/heroku-buildpack-ruby/compare/v294...v295 [v294]: https://github.com/heroku/heroku-buildpack-ruby/compare/v293...v294 diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 0dbc56765..e969be762 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v296" + BUILDPACK_VERSION = "v297" end end From 649a302b89d442bbc3721f5ee69b1179e5e01be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20KUBLER?= Date: Wed, 26 Mar 2025 17:37:36 +0100 Subject: [PATCH 6/6] fix: apply suggestion from review --- lib/language_pack/ruby.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/language_pack/ruby.rb b/lib/language_pack/ruby.rb index 977e98d4a..08068cd3c 100644 --- a/lib/language_pack/ruby.rb +++ b/lib/language_pack/ruby.rb @@ -129,7 +129,7 @@ def warn_bundler_1x $ git commit -m "Updated bundler version" ``` - https://devcenter.heroku.com/changelog-items/3166 + https://doc.scalingo.com/languages/ruby/start#bundler-version EOF end end