From 8d656c6d623b8b746b4f1575570e3f3d588f8c54 Mon Sep 17 00:00:00 2001 From: Josh W Lewis Date: Fri, 8 Nov 2024 12:03:55 -0600 Subject: [PATCH 01/17] Update Node.js default to 22.11.0 (#1503) * Update Node.js default to 22.11.0 * Update changelog for Node.js defaults * Add missing dot! Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com> * Node yarn changelog for #1503 (#1514) --------- Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com> Co-authored-by: Richard Schneeman --- CHANGELOG.md | 2 ++ changelogs/unreleased/node-yarn.md | 8 ++++++++ lib/language_pack/helpers/nodebin.rb | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/node-yarn.md diff --git a/CHANGELOG.md b/CHANGELOG.md index fa0148793..408c95ec5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +- Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) ## [v281] - 2024-11-07 diff --git a/changelogs/unreleased/node-yarn.md b/changelogs/unreleased/node-yarn.md new file mode 100644 index 000000000..b469a66de --- /dev/null +++ b/changelogs/unreleased/node-yarn.md @@ -0,0 +1,8 @@ +## Ruby apps now default to Node version 22.11.0 and Yarn version 1.22.22 + +Applications using the `heroku/ruby` buildpack that do not have a version of Node installed by another buildpack (such as the `heroku/nodejs` buildpack) will now receive: + +- Node version 22.11.0 +- Yarn version 1.22.22 + +These versions and instructions on how to specify a specific version of these binaries can be found on the [installed binaries section of the Heroku Ruby Support page](https://devcenter.heroku.com/articles/ruby-support#installed-binaries). diff --git a/lib/language_pack/helpers/nodebin.rb b/lib/language_pack/helpers/nodebin.rb index 7632e8366..c71398658 100644 --- a/lib/language_pack/helpers/nodebin.rb +++ b/lib/language_pack/helpers/nodebin.rb @@ -1,8 +1,8 @@ require 'json' class LanguagePack::Helpers::Nodebin - NODE_VERSION = "20.9.0" - YARN_VERSION = "1.22.19" + NODE_VERSION = "22.11.0" + YARN_VERSION = "1.22.22" def self.hardcoded_node_lts(arch: ) arch = "x64" if arch == "amd64" From e791d739b74bcb47401e4d74dcaf615559b4d887 Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Fri, 8 Nov 2024 18:10:12 +0000 Subject: [PATCH 02/17] Prepare release v282 (#1515) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- changelogs/{unreleased => v282}/node-yarn.md | 0 lib/language_pack/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename changelogs/{unreleased => v282}/node-yarn.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 408c95ec5..d90f3dec3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v282] - 2024-11-08 + - Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) - Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) @@ -1586,7 +1589,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/v281...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v282...main +[v282]: https://github.com/heroku/heroku-buildpack-ruby/compare/v281...v282 [v281]: https://github.com/heroku/heroku-buildpack-ruby/compare/v280...v281 [v280]: https://github.com/heroku/heroku-buildpack-ruby/compare/v279...v280 [v279]: https://github.com/heroku/heroku-buildpack-ruby/compare/v278...v279 diff --git a/changelogs/unreleased/node-yarn.md b/changelogs/v282/node-yarn.md similarity index 100% rename from changelogs/unreleased/node-yarn.md rename to changelogs/v282/node-yarn.md diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 82778b71b..68b4135c2 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v281" + BUILDPACK_VERSION = "v282" end end From adc448458d8dcd334893f05db4d939873382637f Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Mon, 11 Nov 2024 17:21:21 -0600 Subject: [PATCH 03/17] Roll back node & yarn updates (#1518) There's an issue with the way that yarn is packaged that caused #1516 due to behavior introduced in #1503. This commit reverts to the old node/yarn versions until we can fix the underlying bug. --- CHANGELOG.md | 4 ++-- lib/language_pack/helpers/nodebin.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d90f3dec3..eb4119a51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,8 @@ ## [v282] - 2024-11-08 -- Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) -- Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- [Rolled back] Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- [Rolled back] Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) ## [v281] - 2024-11-07 diff --git a/lib/language_pack/helpers/nodebin.rb b/lib/language_pack/helpers/nodebin.rb index c71398658..7632e8366 100644 --- a/lib/language_pack/helpers/nodebin.rb +++ b/lib/language_pack/helpers/nodebin.rb @@ -1,8 +1,8 @@ require 'json' class LanguagePack::Helpers::Nodebin - NODE_VERSION = "22.11.0" - YARN_VERSION = "1.22.22" + NODE_VERSION = "20.9.0" + YARN_VERSION = "1.22.19" def self.hardcoded_node_lts(arch: ) arch = "x64" if arch == "amd64" From a3f4f66c97a359921cd6820b1d30037744e883e2 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Wed, 13 Nov 2024 09:11:46 -0600 Subject: [PATCH 04/17] Fix tests not executing (#1517) * Emit log order Issue #1505 spells out a problem where it appears ci-queue does not fail even when the test suite is broken. I'm unsure why this happens. To debug I'm emitting the tests that run so I can audit to make sure `rspec ./spec/helpers/yarn_installer_spec.rb:6` is executed. If it's not, then I need to diagnose why. If it is, then perhaps there some ordering bug that's affecting the outcome. * Update CI-queue * Update redis version * Use branch of ci-queue --- Gemfile | 2 +- Gemfile.lock | 14 +++++++++++--- app.json | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index c887ccc55..593368af1 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ group :development, :test do gem "parallel_tests" gem 'rspec-retry' gem 'json' - gem 'ci-queue' + gem 'ci-queue', github: "schneems/ci-queue", branch: "schneems/allow-hosted-redis" gem 'redis' gem 'dead_end' end diff --git a/Gemfile.lock b/Gemfile.lock index 5c0085fa5..41807c869 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,15 @@ +GIT + remote: https://github.com/schneems/ci-queue.git + revision: 285353ba8bc58e1b2ed02dedf55730400c27e32b + branch: schneems/allow-hosted-redis + specs: + ci-queue (0.58.0) + logger + GEM remote: https://rubygems.org/ specs: base64 (0.2.0) - ci-queue (0.55.0) citrus (3.0.2) connection_pool (2.4.1) dead_end (4.0.0) @@ -23,6 +30,7 @@ GEM thor (~> 1) threaded (~> 0) json (2.7.2) + logger (1.6.1) moneta (1.0.0) multi_json (1.15.0) parallel (1.25.1) @@ -34,7 +42,7 @@ GEM rate_throttle_client (~> 0.1.0) rake (13.2.1) rate_throttle_client (0.1.2) - redis (5.2.0) + redis (5.3.0) redis-client (>= 0.22.0) redis-client (0.22.2) connection_pool @@ -57,7 +65,7 @@ PLATFORMS ruby DEPENDENCIES - ci-queue + ci-queue! dead_end excon heroku_hatchet diff --git a/app.json b/app.json index f0c801d15..514ddad23 100644 --- a/app.json +++ b/app.json @@ -20,7 +20,7 @@ }, "scripts": { "test-setup": "bundle exec rake hatchet:setup_ci", - "test": "bundle exec rspec-queue --max-requeues=3 --timeout 180 --queue $REDIS_URL || { cat log/test_order.log; $(exit 1); }" + "test": "bundle exec rspec-queue --max-requeues=3 --timeout 180 --queue $REDIS_URL --format documentation || { cat log/test_order.log; $(exit 1); }" }, "buildpacks": [ { From 55ee089e506578847c76e85fd2dea86c0b47aaa5 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Thu, 14 Nov 2024 09:49:05 -0600 Subject: [PATCH 05/17] Fix failure installing yarn 1.22.22 (#1519) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix failure installing yarn 1.22.22 In #1516 there were reported build failures: ``` remote: -----> Installing node-v22.11.0-linux-x64 remote: -----> Installing yarn-v1.22.22 remote: remote: ! remote: ! No such file or directory @ rb_file_s_rename - (/tmp/d20241108-1032-vggdc3/yarn-v1.22.22, yarn-v1.22.22) remote: ! remote: /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:541:in `rename': No such file or directory @ rb_file_s_rename - (/tmp/d20241108-1032-vggdc3/yarn-v1.22.22, yarn-v1.22.22) (Errno::ENOENT) remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:541:in `block in mv' remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:1577:in `block in fu_each_src_dest' remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:1593:in `fu_each_src_dest0' remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:1575:in `fu_each_src_dest' remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/fileutils.rb:532:in `mv' remote: from /tmp/codon/tmp/buildpacks/50d5eddf222a9b7326028041d4e6509f915ccf2c/lib/language_pack/helpers/yarn_installer.rb:27:in `block in install' remote: from /tmp/tmp.l8hWafbPfJ/lib/ruby/3.1.0/tmpdir.rb:96:in `mktmpdir' ``` This is because older versions of the yarn package have a top level directory that looks like this: ``` yarn-v1.22.19/ ``` But yarn 1.22.22 has a directory named "package" instead: ``` package/ ``` To work around this naming issue we can use `--strip 1` tar flag to remove the top level directory. From gnutar manfiles https://www.gnu.org/software/tar/manual/tar.html: ``` ‘--strip-components=number’ Strip given number of leading components from file names before extraction. For example, suppose you have archived whole ‘/usr’ hierarchy to a tar archive named ‘usr.tar’. Among other files, this archive contains ‘usr/include/stdlib.h’, which you wish to extract to the current working directory. To do so, you type: $ tar -xf usr.tar --strip=2 usr/include/stdlib.h The option ‘--strip=2’ instructs tar to strip the two leading components (‘usr/’ and ‘include/’) off the file name. If you add the ‘--verbose’ (‘-v’) option to the invocation above, you will note that the verbose listing still contains the full file name, with the two removed components still in place. This can be inconvenient, so tar provides a special option for altering this behavior: ``` * Default to strip 0 instead of true From the feedback: > Minor - maybe the default for strip_components should be 0 instead of false? From this signature, I would expect that if I want it to strip components I would pass true instead of false but that would produce an invalid command. --- CHANGELOG.md | 2 ++ changelogs/{v282 => unreleased}/node-yarn.md | 0 lib/language_pack/fetcher.rb | 5 +++-- lib/language_pack/helpers/yarn_installer.rb | 4 ++-- 4 files changed, 7 insertions(+), 4 deletions(-) rename changelogs/{v282 => unreleased}/node-yarn.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb4119a51..ac6a6da7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +- Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) ## [v282] - 2024-11-08 diff --git a/changelogs/v282/node-yarn.md b/changelogs/unreleased/node-yarn.md similarity index 100% rename from changelogs/v282/node-yarn.md rename to changelogs/unreleased/node-yarn.md diff --git a/lib/language_pack/fetcher.rb b/lib/language_pack/fetcher.rb index f16390720..d2a79c2e5 100644 --- a/lib/language_pack/fetcher.rb +++ b/lib/language_pack/fetcher.rb @@ -26,9 +26,10 @@ def fetch(path) run!(curl, error_class: FetchError) end - def fetch_untar(path, files_to_extract = nil) + def fetch_untar(path, files_to_extract = nil, strip_components: 0) curl = curl_command("#{@host_url.join(path)} -s -o") - run! "#{curl} - | tar zxf - #{files_to_extract}", + tar_cmd = ["tar zxf - #{files_to_extract}", "--strip #{strip_components}"] + run! "#{curl} - | #{tar_cmd.join(" ")}", error_class: FetchError, max_attempts: 3 end diff --git a/lib/language_pack/helpers/yarn_installer.rb b/lib/language_pack/helpers/yarn_installer.rb index 49a4e777c..2aae36f2a 100644 --- a/lib/language_pack/helpers/yarn_installer.rb +++ b/lib/language_pack/helpers/yarn_installer.rb @@ -21,10 +21,10 @@ def binary_path def install Dir.mktmpdir do |dir| Dir.chdir(dir) do - @fetcher.fetch_untar(@url) + @fetcher.fetch_untar(@url, strip_components: 1) end - FileUtils.mv(File.join(dir, name), name) + FileUtils.cp_r(dir, name) end end end From 83a67ef1436f2bde87701d296b48a36e43cdadd0 Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:29:18 +0000 Subject: [PATCH 06/17] Prepare release v283 (#1520) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- changelogs/{unreleased => v283}/node-yarn.md | 0 lib/language_pack/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename changelogs/{unreleased => v283}/node-yarn.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac6a6da7b..6cd7f3119 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v283] - 2024-11-14 + - Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) - Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) @@ -1591,7 +1594,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/v282...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v283...main +[v283]: https://github.com/heroku/heroku-buildpack-ruby/compare/v282...v283 [v282]: https://github.com/heroku/heroku-buildpack-ruby/compare/v281...v282 [v281]: https://github.com/heroku/heroku-buildpack-ruby/compare/v280...v281 [v280]: https://github.com/heroku/heroku-buildpack-ruby/compare/v279...v280 diff --git a/changelogs/unreleased/node-yarn.md b/changelogs/v283/node-yarn.md similarity index 100% rename from changelogs/unreleased/node-yarn.md rename to changelogs/v283/node-yarn.md diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 68b4135c2..859857c01 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v282" + BUILDPACK_VERSION = "v283" end end From b17267f49cff2b62988c2446addb7b06057b8fae Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Fri, 15 Nov 2024 09:23:04 -0600 Subject: [PATCH 07/17] Re-apply Node 22.11.0 and yarn 1.22.22 defaults (#1521) --- CHANGELOG.md | 5 +++-- changelogs/{v283 => unreleased}/node-yarn.md | 0 lib/language_pack/helpers/nodebin.rb | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) rename changelogs/{v283 => unreleased}/node-yarn.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cd7f3119..f6327c70e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,12 @@ ## [Unreleased] +- Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) ## [v283] - 2024-11-14 -- Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) -- Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) +- No customer facing changes ## [v282] - 2024-11-08 diff --git a/changelogs/v283/node-yarn.md b/changelogs/unreleased/node-yarn.md similarity index 100% rename from changelogs/v283/node-yarn.md rename to changelogs/unreleased/node-yarn.md diff --git a/lib/language_pack/helpers/nodebin.rb b/lib/language_pack/helpers/nodebin.rb index 7632e8366..c71398658 100644 --- a/lib/language_pack/helpers/nodebin.rb +++ b/lib/language_pack/helpers/nodebin.rb @@ -1,8 +1,8 @@ require 'json' class LanguagePack::Helpers::Nodebin - NODE_VERSION = "20.9.0" - YARN_VERSION = "1.22.19" + NODE_VERSION = "22.11.0" + YARN_VERSION = "1.22.22" def self.hardcoded_node_lts(arch: ) arch = "x64" if arch == "amd64" From abd7281af5734358c2144cd5b4267af4728336b8 Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:35:15 +0000 Subject: [PATCH 08/17] Prepare release v284 (#1522) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- changelogs/{unreleased => v284}/node-yarn.md | 0 lib/language_pack/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename changelogs/{unreleased => v284}/node-yarn.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6327c70e..6a4ff2050 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v284] - 2024-11-15 + - Default Node.js version now 22.11.0 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) - Default Yarn version now 1.22.22 (https://github.com/heroku/heroku-buildpack-ruby/pull/1503) @@ -1595,7 +1598,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/v283...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v284...main +[v284]: https://github.com/heroku/heroku-buildpack-ruby/compare/v283...v284 [v283]: https://github.com/heroku/heroku-buildpack-ruby/compare/v282...v283 [v282]: https://github.com/heroku/heroku-buildpack-ruby/compare/v281...v282 [v281]: https://github.com/heroku/heroku-buildpack-ruby/compare/v280...v281 diff --git a/changelogs/unreleased/node-yarn.md b/changelogs/v284/node-yarn.md similarity index 100% rename from changelogs/unreleased/node-yarn.md rename to changelogs/v284/node-yarn.md diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 859857c01..05ab999c2 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v283" + BUILDPACK_VERSION = "v284" end end From 8187b74201f2c19f8b5bf7c6972ea0a6a02dfd4d Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Thu, 21 Nov 2024 13:27:14 -0600 Subject: [PATCH 09/17] Fix build timeouts with node/yarn by setting UV_USE_IO_URING=0 by default (#1523) * Set UV_USE_IO_URING=0 by default Default `UV_USE_IO_URING=0` due to build timeouts This mirrors a change by the nodejs buildpack: https://github.com/heroku/heroku-buildpack-nodejs/pull/1347 The Ruby buildpack needs this because we can install node/yarn without the `heroku/nodejs` buildpack, however this behavior triggers a warning and is generally advised against. * Only set UV_USE_IO_URING=0 at build (not runtime) * Make UV_USE_IO_URING=0 available for other buildpacks --- CHANGELOG.md | 1 + lib/language_pack/ruby.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a4ff2050..dd6a66278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [Unreleased] +- Default `UV_USE_IO_URING=0` due to build timeouts [context](https://github.com/heroku/heroku-buildpack-nodejs/pull/1347) (https://github.com/heroku/heroku-buildpack-ruby/pull/1523) ## [v284] - 2024-11-15 diff --git a/lib/language_pack/ruby.rb b/lib/language_pack/ruby.rb index 65612d7b5..bdb72bdb6 100644 --- a/lib/language_pack/ruby.rb +++ b/lib/language_pack/ruby.rb @@ -964,6 +964,11 @@ def add_node_js_binary version = @node_installer.version old_version = @metadata.fetch("default_node_version") { version } + # Make available for `rake assets:precompile` and other sub-shells + ENV["UV_USE_IO_URING"] ||= "0" + # Make available to future buildpacks (export), but not runtime (profile.d) + set_export_default "UV_USE_IO_URING", "0" + if version != version warn(<<~WARNING, inline: true) Default version of Node.js changed (#{old_version} to #{version}) @@ -994,6 +999,11 @@ def add_yarn_binary version = @yarn_installer.version old_version = @metadata.fetch("default_yarn_version") { version } + # Make available for `rake assets:precompile` and other sub-shells + ENV["UV_USE_IO_URING"] ||= "0" + # Make available to future buildpacks (export), but not runtime (profile.d) + set_export_default "UV_USE_IO_URING", "0" + if version != version warn(<<~WARNING, inline: true) Default version of Yarn changed (#{old_version} to #{version}) From bfb911a08784901edf0263a17aa97e938e75807d Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Thu, 21 Nov 2024 19:38:39 +0000 Subject: [PATCH 10/17] Prepare release v285 (#1524) 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 dd6a66278..0938eb156 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v285] - 2024-11-21 + - Default `UV_USE_IO_URING=0` due to build timeouts [context](https://github.com/heroku/heroku-buildpack-nodejs/pull/1347) (https://github.com/heroku/heroku-buildpack-ruby/pull/1523) ## [v284] - 2024-11-15 @@ -1599,7 +1602,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/v284...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v285...main +[v285]: https://github.com/heroku/heroku-buildpack-ruby/compare/v284...v285 [v284]: https://github.com/heroku/heroku-buildpack-ruby/compare/v283...v284 [v283]: https://github.com/heroku/heroku-buildpack-ruby/compare/v282...v283 [v282]: https://github.com/heroku/heroku-buildpack-ruby/compare/v281...v282 diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 05ab999c2..162bb64a0 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v284" + BUILDPACK_VERSION = "v285" end end From b1c482c8dd72a20c6e1682165266751b8a5a88f8 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Thu, 5 Dec 2024 15:53:42 -0600 Subject: [PATCH 11/17] Fix tests to work with `sharpstone/default_ruby` (#1527) * Update bundler version for jruby app Fixes: ``` Hatchet::App::FailedDeployError Could not deploy 'hatchet-t-741ea26fdf' (default_ruby) using 'Hatchet::GitApp' at path: './repos/rack/default_ruby' if this was expected add `allow_failure: true` to your deploy hash. Buildpack: nil Repo: https://git.heroku.com/hatchet-t-741ea26fdf.git output: remote: Updated 5 paths from 3dac5f9 remote: Compressing source files... done. remote: Building source: remote: remote: -----> Building on the Heroku-20 stack remote: -----> Using buildpack: https://github.com/heroku/heroku-buildpack-ruby#schneems/ci-queue-dec3 remote: -----> Ruby app detected remote: remote: ## Warning: Your app needs java remote: remote: The Ruby buildpack determined your app needs java installed remote: we recommend you add the jvm buildpack to your application: remote: remote: $ heroku buildpacks:add heroku/jvm --index=1 remote: remote: -----> Installing Java remote: remote: -----> Downloading Buildpack: heroku/jvm remote: -----> Detected Framework: JVM Common remote: remote: ! WARNING: No OpenJDK version specified remote: Your application does not explicitly specify an OpenJDK remote: version. OpenJDK 1.8 will be installed. remote: remote: This default version will change at some point. Your remote: application might fail to build with the new version. We remote: recommend explicitly setting the required OpenJDK version for remote: your application. remote: remote: To set the OpenJDK version, add or edit the system.properties remote: file in the root directory of your application to contain: remote: remote: java.runtime.version = 1.8 remote: remote: remote: -----> Installing OpenJDK 1.8... done remote: -----> Installing bundler 1.17.3 remote: -----> Removing BUNDLED WITH version in the Gemfile.lock remote: -----> Compiling Ruby/Rack remote: -----> Using Ruby version: ruby-2.5.7-jruby-9.2.13.0 remote: -----> Installing dependencies using bundler 1.17.3 remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 BUNDLE_GLOBAL_PATH_APPENDS_RUBY_SCOPE=1 bundle install -j4 remote: You are trying to install in deployment mode after changing remote: your Gemfile. Run `bundle install` elsewhere and add the remote: updated Gemfile.lock to version control. remote: remote: If this is a development machine, remove the /tmp/build_3b0d62e8/Gemfile freeze remote: by running `bundle install --no-deployment`. remote: remote: Bundler is unlocking ruby remote: remote: You have added to the Gemfile: remote: * webrick remote: Bundler Output: You are trying to install in deployment mode after changing remote: your Gemfile. Run `bundle install` elsewhere and add the remote: updated Gemfile.lock to version control. remote: remote: If this is a development machine, remove the /tmp/build_3b0d62e8/Gemfile freeze remote: by running `bundle install --no-deployment`. remote: remote: Bundler is unlocking ruby remote: remote: You have added to the Gemfile: remote: * webrick remote: remote: ! remote: ! Failed to install gems via Bundler. remote: ! remote: ! Push rejected, failed to compile Ruby app. remote: remote: ! Push failed remote: ! remote: ! ## Warning - The same version of this code has already been built: df7a92f56ea636831f28033356791f2ba6ba0ef0 remote: ! remote: ! We have detected that you have triggered a build from source code with version df7a92f56ea636831f28033356791f2ba6ba0ef0 remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch. remote: ! remote: ! If you are developing on a branch and deploying via git you must run: remote: ! remote: ! git push heroku :main remote: ! remote: ! This article goes into details on the behavior: remote: ! https://devcenter.heroku.com/articles/duplicate-build-version remote: remote: Verifying deploy... remote: remote: ! Push rejected to hatchet-t-741ea26fdf. remote: To https://git.heroku.com/hatchet-t-741ea26fdf.git ! [remote rejected] HEAD -> main (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/hatchet-t-741ea26fdf.git' /app/vendor/bundle/ruby/3.1.0/gems/heroku_hatchet-8.0.4/lib/hatchet/git_app.rb:36:in `git_push_heroku_yall' /app/vendor/bundle/ruby/3.1.0/gems/heroku_hatchet-8.0.4/lib/hatchet/git_app.rb:13:in `block in push_without_retry!' /app/vendor/bundle/ruby/3.1.0/gems/heroku_hatchet-8.0.4/lib/hatchet/shell_throttle.rb:28:in `block (2 levels) in call' /app/vendor/bundle/ruby/3.1.0/gems/heroku_hatchet-8.0.4/lib/hatchet/shell_throttle.rb:27:in `catch' /app/vendor/bundle/ruby/3.1.0/gems/heroku_hatchet-8.0.4/lib/hatchet/shell_throttle.rb:27:in `block in call' ``` https://dashboard.heroku.com/pipelines/ac057663-170b-4bdd-99d0-87560eb3a570/tests/2165 * Update jruby version for bundler support ``` remote: -----> Installing dependencies using bundler 2.5.6 remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4 remote: NoMethodError: undefined method `union' for ["BUNDLE_JOBS"]:Array remote: all at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/settings.rb:169 remote: report at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/env.rb:20 remote: request_issue_report_for at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:71 remote: log_error at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:50 remote: with_friendly_errors at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:123 remote:
at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/exe/bundle:20 remote: load at org/jruby/RubyKernel.java:1009 remote:
at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/bin/bundle:25 remote: Bundler Output: NoMethodError: undefined method `union' for ["BUNDLE_JOBS"]:Array remote: all at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/settings.rb:169 remote: report at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/env.rb:20 remote: request_issue_report_for at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:71 remote: log_error at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:50 remote: with_friendly_errors at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:123 remote:
at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/gems/bundler-2.5.6/exe/bundle:20 remote: load at org/jruby/RubyKernel.java:1009 remote:
at /tmp/build_0e08ea51/vendor/bundle/jruby/2.5.0/bin/bundle:25 ``` * Update test to not be on deprecated stack * Update gem versions * Inspect ruby version instead of jar file From https://github.com/heroku/heroku-buildpack-java/blob/b3c51f94de6a43bc656b777bc84ef2a9451371aa/test/spec/java_spec.rb#L78 > OpenJDK versions > 9 do not have the jre/lib/ext directory where we drop the pgconfig.jar This test was added by Joe in https://github.com/heroku/heroku-buildpack-ruby/commit/248b30a420766fa3ec2e0b29581571e6089f7aee later I moved to not having a separate track for installing JVM https://github.com/heroku/heroku-buildpack-ruby/commit/648a14986020ae6c681dbbba0895fe6bb542d5fd so I removed the logic for installing a pgconfig.jar and relied on the buildpack. According to the JVM buildpack it's no longer in this updated version. It seems the original PR was using this to test that installation logic. While we no longer need to do that (as the logic is part of the `heroku/jvm` buildpack) I wanted to preserve calling a `heroku run` to assert something about the dyno that would indicate that jruby was installed as we expect. --- spec/hatchet/rubies_spec.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/spec/hatchet/rubies_spec.rb b/spec/hatchet/rubies_spec.rb index 22e029111..55e7c23b0 100644 --- a/spec/hatchet/rubies_spec.rb +++ b/spec/hatchet/rubies_spec.rb @@ -13,15 +13,16 @@ end describe "Ruby versions" do - it "should deploy jdk on heroku-20" do - Hatchet::Runner.new("default_ruby", stack: "heroku-20").tap do |app| + it "should deploy jdk on heroku-24" do + Hatchet::Runner.new("default_ruby", stack: "heroku-24").tap do |app| app.before_deploy do |app| Pathname("Gemfile.lock").write(<<~EOM) GEM remote: https://rubygems.org/ specs: - rack (2.2.2) - rake (13.0.1) + rack (3.1.8) + rake (13.2.1) + webrick (1.9.1) PLATFORMS java @@ -29,10 +30,13 @@ DEPENDENCIES rack rake - + webrick RUBY VERSION - ruby 2.5.7p0 (jruby 9.2.13.0) + ruby 3.1.4p0 (jruby 9.4.8.0) + + BUNDLED WITH + 2.5.23 EOM Pathname("Rakefile").write(<<~'EOM') @@ -50,7 +54,7 @@ app.push! expect(app.output).to match("JRUBY_OPTS is: --dev") - expect(app.run("ls .jdk/jre/lib/ext/")).to match("pgconfig.jar") + expect(app.run("ruby -v")).to match("jruby") end end end From 278f9e8d8b361d438e884cb692614104adbbd1fe Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Thu, 5 Dec 2024 16:06:48 -0600 Subject: [PATCH 12/17] Use non-forked ci-queue gem (#1526) Should work on hosted redis now https://github.com/Shopify/ci-queue/pull/294 --- Gemfile | 2 +- Gemfile.lock | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index 593368af1..c887ccc55 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ group :development, :test do gem "parallel_tests" gem 'rspec-retry' gem 'json' - gem 'ci-queue', github: "schneems/ci-queue", branch: "schneems/allow-hosted-redis" + gem 'ci-queue' gem 'redis' gem 'dead_end' end diff --git a/Gemfile.lock b/Gemfile.lock index 41807c869..86917b001 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,15 +1,9 @@ -GIT - remote: https://github.com/schneems/ci-queue.git - revision: 285353ba8bc58e1b2ed02dedf55730400c27e32b - branch: schneems/allow-hosted-redis - specs: - ci-queue (0.58.0) - logger - GEM remote: https://rubygems.org/ specs: base64 (0.2.0) + ci-queue (0.59.0) + logger citrus (3.0.2) connection_pool (2.4.1) dead_end (4.0.0) @@ -30,7 +24,7 @@ GEM thor (~> 1) threaded (~> 0) json (2.7.2) - logger (1.6.1) + logger (1.6.2) moneta (1.0.0) multi_json (1.15.0) parallel (1.25.1) @@ -65,7 +59,7 @@ PLATFORMS ruby DEPENDENCIES - ci-queue! + ci-queue dead_end excon heroku_hatchet From e189a638fd65581afabf3d30e345d4c9212f5497 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Fri, 13 Dec 2024 09:51:39 -0600 Subject: [PATCH 13/17] Ruby 3.4.0-rc1 (#1528) * Ruby 3.4.0-rc1 * Update CHANGELOG.md Co-authored-by: Rune Soerensen --------- Co-authored-by: Rune Soerensen --- CHANGELOG.md | 1 + changelogs/unreleased/3.4.0-rc1.md | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 changelogs/unreleased/3.4.0-rc1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 0938eb156..376293f00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [Unreleased] +- Ruby 3.4.0-rc1 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1528) ## [v285] - 2024-11-21 diff --git a/changelogs/unreleased/3.4.0-rc1.md b/changelogs/unreleased/3.4.0-rc1.md new file mode 100644 index 000000000..46c7cf703 --- /dev/null +++ b/changelogs/unreleased/3.4.0-rc1.md @@ -0,0 +1,15 @@ +## Ruby version 3.4.0-rc1 is now available + +[Ruby v3.4.0-rc1](/articles/ruby-support#ruby-versions) is now available on Heroku. To run +your app using this version of Ruby, add the following `ruby` directive to your Gemfile: + +```ruby +ruby "3.3.0.rc1" +``` + +For more information on [Ruby 3.4.0-rc1, you can view the release announcement](https://www.ruby-lang.org/en/news/). + +> Note: This version of Ruby is not suitable for production applications. +> However, it can be used to test that your application is ready for +> the official release of Ruby 3.4.0 and +> to provide feedback to the Ruby core team. From c3494fee9ee28c7fdb60720b1e9410df40c5f0b9 Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:45:00 +0000 Subject: [PATCH 14/17] Prepare release v286 (#1529) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- changelogs/{unreleased => v286}/3.4.0-rc1.md | 0 lib/language_pack/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename changelogs/{unreleased => v286}/3.4.0-rc1.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 376293f00..d39e5be90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v286] - 2024-12-13 + - Ruby 3.4.0-rc1 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1528) ## [v285] - 2024-11-21 @@ -1603,7 +1606,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/v285...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v286...main +[v286]: https://github.com/heroku/heroku-buildpack-ruby/compare/v285...v286 [v285]: https://github.com/heroku/heroku-buildpack-ruby/compare/v284...v285 [v284]: https://github.com/heroku/heroku-buildpack-ruby/compare/v283...v284 [v283]: https://github.com/heroku/heroku-buildpack-ruby/compare/v282...v283 diff --git a/changelogs/unreleased/3.4.0-rc1.md b/changelogs/v286/3.4.0-rc1.md similarity index 100% rename from changelogs/unreleased/3.4.0-rc1.md rename to changelogs/v286/3.4.0-rc1.md diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 162bb64a0..e401a7d61 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v285" + BUILDPACK_VERSION = "v286" end end From a4a9ac9b99fd4526ae7fb1768df1f428f6103b9e Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Fri, 13 Dec 2024 11:29:04 -0600 Subject: [PATCH 15/17] Update changelog (#1530) --- changelogs/v286/3.4.0-rc1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/changelogs/v286/3.4.0-rc1.md b/changelogs/v286/3.4.0-rc1.md index 46c7cf703..c26eed3c8 100644 --- a/changelogs/v286/3.4.0-rc1.md +++ b/changelogs/v286/3.4.0-rc1.md @@ -1,15 +1,15 @@ ## Ruby version 3.4.0-rc1 is now available -[Ruby v3.4.0-rc1](/articles/ruby-support#ruby-versions) is now available on Heroku. To run -your app using this version of Ruby, add the following `ruby` directive to your Gemfile: +[Ruby v3.4.0-rc1](/articles/ruby-support-reference#ruby-versions) is now available on Heroku. To run your app using this version of Ruby, add the following `ruby` directive to your Gemfile: ```ruby -ruby "3.3.0.rc1" +ruby "3.4.0.rc1" ``` For more information on [Ruby 3.4.0-rc1, you can view the release announcement](https://www.ruby-lang.org/en/news/). -> Note: This version of Ruby is not suitable for production applications. +> Note +> This version of Ruby is not suitable for production applications. > However, it can be used to test that your application is ready for > the official release of Ruby 3.4.0 and > to provide feedback to the Ruby core team. From dd401008f8ff387219d6c3b00526a9aff6393ac3 Mon Sep 17 00:00:00 2001 From: Richard Schneeman Date: Wed, 25 Dec 2024 07:37:38 -0600 Subject: [PATCH 16/17] Stage Ruby 3.4.0 (#1531) * Stage Ruby 3.4.0 Ruby 3.4.0 will be released on Christmas. This PR is for pre-approval. It will be held for merge until December 25th, 2024. * Update CHANGELOG.md --- CHANGELOG.md | 2 ++ changelogs/unreleased/ruby_3.4.0.md | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 changelogs/unreleased/ruby_3.4.0.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d39e5be90..d59f78a97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +- Ruby 3.4.0 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1531) +- Ruby 3.4.1 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1531) ## [v286] - 2024-12-13 diff --git a/changelogs/unreleased/ruby_3.4.0.md b/changelogs/unreleased/ruby_3.4.0.md new file mode 100644 index 000000000..b63ee6503 --- /dev/null +++ b/changelogs/unreleased/ruby_3.4.0.md @@ -0,0 +1,9 @@ +## Ruby version 3.4.0 is now available + +[Ruby v3.4.0](/articles/ruby-support-reference#ruby-versions) is now available on Heroku. To run your app using this version of Ruby, add the following `ruby` directive to your Gemfile: + +```ruby +ruby "3.4.0" +``` + +For more information on [Ruby 3.4.0, you can view the release announcement](https://www.ruby-lang.org/en/news/). From 5ea0ef80a7bf59e29af77f809886baaee2300e6b Mon Sep 17 00:00:00 2001 From: "heroku-linguist[bot]" <136119646+heroku-linguist[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 13:53:59 +0000 Subject: [PATCH 17/17] Prepare release v287 (#1532) Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com> --- CHANGELOG.md | 6 +++++- changelogs/{unreleased => v287}/ruby_3.4.0.md | 0 lib/language_pack/version.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename changelogs/{unreleased => v287}/ruby_3.4.0.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index d59f78a97..9678d7362 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] + +## [v287] - 2024-12-25 + - Ruby 3.4.0 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1531) - Ruby 3.4.1 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1531) @@ -1608,7 +1611,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/v286...main +[unreleased]: https://github.com/heroku/heroku-buildpack-ruby/compare/v287...main +[v287]: https://github.com/heroku/heroku-buildpack-ruby/compare/v286...v287 [v286]: https://github.com/heroku/heroku-buildpack-ruby/compare/v285...v286 [v285]: https://github.com/heroku/heroku-buildpack-ruby/compare/v284...v285 [v284]: https://github.com/heroku/heroku-buildpack-ruby/compare/v283...v284 diff --git a/changelogs/unreleased/ruby_3.4.0.md b/changelogs/v287/ruby_3.4.0.md similarity index 100% rename from changelogs/unreleased/ruby_3.4.0.md rename to changelogs/v287/ruby_3.4.0.md diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index e401a7d61..1143c73e1 100644 --- a/lib/language_pack/version.rb +++ b/lib/language_pack/version.rb @@ -2,6 +2,6 @@ module LanguagePack class LanguagePack::Base - BUILDPACK_VERSION = "v286" + BUILDPACK_VERSION = "v287" end end