diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29bb..000000000 diff --git a/CHANGELOG.md b/CHANGELOG.md index fa0148793..6a4ff2050 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,20 @@ ## [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) + +## [v283] - 2024-11-14 + +- No customer facing changes + +## [v282] - 2024-11-08 + +- [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 - Ruby 3.3.6 is now available (https://github.com/heroku/heroku-buildpack-ruby/pull/1511) @@ -1584,7 +1598,10 @@ 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/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 [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/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/VERSION b/VERSION deleted file mode 100644 index f0bb29e76..000000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.3.0 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": [ { diff --git a/changelogs/v284/node-yarn.md b/changelogs/v284/node-yarn.md new file mode 100644 index 000000000..b469a66de --- /dev/null +++ b/changelogs/v284/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/fetcher.rb b/lib/language_pack/fetcher.rb index 47efef863..b814c9f7f 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/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" 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 diff --git a/lib/language_pack/version.rb b/lib/language_pack/version.rb index 82778b71b..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 = "v281" + BUILDPACK_VERSION = "v284" end end