This repository was archived by the owner on Jul 14, 2022. It is now read-only.
Pull Upstream - #1
Open
DheerG wants to merge 1565 commits into
Open
Conversation
* Clean up release automation The scripts in .github/scripts were for CNB releases which have been moved over to https://github.com/heroku/buildpacks-ruby and have not been used for some time. The rake task to prepare releases has been moved to a GitHub action. The deploy task is still used, it's updated to work with the new standard CHANGELOG format. * Reinstate the release task Accidentally removed in the last commit * Remove "tarballer" It was used by the removed GitHub actions scripts
…ions (#1428) * ## Bundler versions 2.4.22 and 2.5.6 are now available for Ruby Applications The [Ruby Buildpack](https://devcenter.heroku.com/articles/ruby-support#libraries) now installs a version of bundler based on the major and minor version listed in the `Gemfile.lock` under the `BUNDLED WITH` key. Previously, it only used the major version. Now, this logic will be used: - `BUNDLED WITH` 1.x will receive bundler `1.17.3` - `BUNDLED WITH` 2.0.x to 2.3.x will receive bundler `2.3.25` - `BUNDLED WITH` 2.4.x will receive bundler `2.4.22` - `BUNDLED WITH` 2.5.x and above will receive bundler `2.5.6` It is strongly recommended that you have both a `RUBY VERSION` and `BUNDLED WITH` version listed in your `Gemfile.lock`. If you do not have those values, you can generate them and commit them to git: ``` $ bundle update --ruby $ git add Gemfile.lock $ git commit -m "Update Gemfile.lock" ``` Applications without these values specified in the `Gemfile.lock` may break unexpectedly when the defaults change. * Only match major versions with major logic Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com> --------- Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
* Fix tests after bundler change The Ruby buildpack uses the Ruby buildpack on CI. When the bundler versions changed in 56ff138 it also changed the behavior of these tests (which use the local bundler version). That means that after the buildpack was deployed, it retroactively meant that tests on main were failing. The issue with these tests is that they're using a feature of bundler that's been removed, specifically this change https://devcenter.heroku.com/changelog-items/2809. In these tests the Ruby version is specified in the Gemfile but not the Gemfile.lock: - Gemfile https://github.com/sharpstone/mri_193/blob/master/Gemfile - Gemfile.lock https://github.com/sharpstone/mri_193/blob/master/Gemfile.lock With the newer version of bundler, these tests now fail. To fix this tests will need to be updated or removed (based on their current relevance). * Clean up unused hatchet apps * Remove RBX and "build" support Rubinius is a Ruby implementation that was available to use on the platform a long time ago but has not been supported for some time: Ruby 1.9.2 requires a "build" branch of logic that can be removed as well. It is not on any existing stacks and was not present on Heroku-18: ``` $ curl -I https://heroku-buildpack-ruby.s3.us-east-1.amazonaws.com/heroku-18/ruby-2.5.7.tgz HTTP/1.1 200 OK x-amz-id-2: Hl89PTav6LfvU90vP97YsBc5DEBptax9s4PZU+3ubIrIUBY54lD0f2FXMOCgh9XQEQRU+5ia1x4= x-amz-request-id: KVDZM54WRBN5ASGT Date: Mon, 15 Apr 2024 15:55:27 GMT Last-Modified: Tue, 01 Oct 2019 14:46:30 GMT ETag: "93ff97625abfc6ccd1a071bb0fda8e66" x-amz-version-id: null Accept-Ranges: bytes Content-Type: Server: AmazonS3 Content-Length: 11995820 $ curl -I https://heroku-buildpack-ruby.s3.us-east-1.amazonaws.com/heroku-18/ruby-1.9.2.tgz HTTP/1.1 404 Not Found x-amz-request-id: 1NKVW4VD3T94T71R x-amz-id-2: tTow7CFW9BcWmAbkEWvrqPz5zJdsy7ry8Jm39v+EURa4RN/UpslBhhGf1iHzOrpJ4n1BJxiGGoI= Content-Type: application/xml Date: Mon, 15 Apr 2024 15:55:31 GMT Server: AmazonS3 ``` Other unused functionality that's being removed: - CDN support for downloading Ruby binaries. This provided no meaningful download improvement when deploying as the binaries are on S3 in the same data center. This was disabled a long time ago. - A "default cache" that was warmed with common gems for the most common Ruby version. This was effective at reducing "first build" time but the complexity exploded if we were to try and support N versions of Rails and M versions of Ruby for this feature. Additionally the community has moved to pre-built binaries for some expensive components such as nokogiri. * Update lib/language_pack/installers/heroku_ruby_installer.rb Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com> --------- Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com>
Heroku-24 base image supports two architectures amd64 and arm64. We've built binaries for these two architectures heroku/docker-heroku-ruby-builder#38. Effectively this means that the s3 bucket that holds the Ruby binaries has an additional folder. Previously files were at `<stack>/ruby-<version>.tgz` now they are at `<stack>/<arch>/ruby-<version>.tgz` but only for `heroku-24` and future stacks moving forward. To support multiple architectures, the buildpack needs to detect the current architecture and whether or not the current stack supports multiple architectures. Beyond downloading binaries, the buildpack is aware of the S3 structure to travers version numbers in order to warn customers when a newer version of a ruby version is available. We also warn customers if their current Ruby version is not available on the next stack. This behavior is implemented and tested in this commit, however we're not turning on warnings for `heroku-24` yet as customers cannot currently use it.
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
* Deprecate beta CNB support CNB support was introduced into this buildpack as an experiment. The experiment is over, anyone wanting to use the official CNB (still in "preview" support) should use https://github.com/heroku/buildpacks-ruby * Apply suggestions from code review Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com> --------- Co-authored-by: Josh W Lewis <josh.w.lewis@gmail.com>
* Fix heroku-24 bootstrap ruby support The Ruby buildpack needs Ruby to run. For the heroku-24 stack the location of ruby binaries changed to include an architecture specifier (amd64/arm64) but the logic for bootstrapping a Ruby version was not updated. * Apply suggestions from code review Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com> * Only vendor required binaries Classic build packs do not support ARM for now so we don't need to vendor it. * Make shellcheck happy * Fix stack/base-image name --------- Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
#1452) * make reference to sprockets unnnecesary * added changelog entry
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
This update reflects the actual release dates and associated changes.
The buildpack in this repo is primarily a classic Heroku buildpack, however, as part of the initial exploration into CNBs had experimental CNB support added some time ago. However, the maintained Ruby CNB now exists in a separate repo: https://github.com/heroku/buildpacks-ruby The experimental CNB support in this repo doesn't actually work any more since the buildpack API version it implements (v0.2) isn't supported by modern `lifecycle` versions - and attempts at building encounter this error: ``` ERROR: failed to set API for Buildpack 'heroku/ruby@0.1.4': buildpack API version '0.2' is incompatible with the lifecycle ``` In addition, it's not even possible to use this repo with a CNB build without having cloned it locally, since: 1. The CNB parts are no longer published 2. The old CNB release assets were deleted a year or so ago: https://github.com/heroku/heroku-buildpack-ruby/releases 3. Pack/lifecycle doesn't support cloning Git URLs. 4. Attempting to use a buildpack URL pointing at the GitHub gzip archive fails due to GitHub's nesting of the repo inside a subdirectory: ``` $ pack build --builder heroku/builder:22 --buildpack https://github.com/heroku/heroku-buildpack-ruby/archive/refs/heads/main.tar.gz ruby-test ... Downloading from https://github.com/heroku/heroku-buildpack-ruby/archive/refs/heads/main.tar.gz 93.2 KB/-1 B ERROR: failed to build: downloading buildpack: extracting from https://github.com/heroku/heroku-buildpack-ruby/archive/refs/heads/main.tar.gz: reading buildpack: reading buildpack.toml: could not find entry path 'buildpack.toml': not exist ``` Given both the Buildpack API error, and the GitHub URL issues no one is using the CNB implementation here, and so its dead code that should be removed to prevent confusion (eg over where the CNB lives). A deprecation warning was previously added in #1445 (though as above it's unlikely anyone even saw that message, since the build was already erroring before it gets that far).
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
expect new line at the end of the `which` command output by stripping it to satisfy the test using the getting started fixture as expected by the current spec file Co-authored-by: Richard Schneeman <rschneeman@salesforce.com>
* Let bundler >= 2.2 handle windows platform Fixes #1157 Because it has support for multiple platforms in Gemfile.lock. So deleting Gemfile.lock when one of the platforms is windows is not good. Bundler's error message tells the user how to handle it. ``` Your bundle only supports platforms ["mingw"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again. ``` * Test and document Windows bundler 2.2+ behavior * Update changelogs/unreleased/windows_gemfile.md Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com> --------- Co-authored-by: Rune Philosof <57357936+runephilosof-abtion@users.noreply.github.com> Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>
…1471) Bumps the ruby-dependencies group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [heroku_hatchet](https://github.com/heroku/hatchet) | `8.0.2` | `8.0.4` | | [rspec-core](https://github.com/rspec/rspec-core) | `3.12.2` | `3.13.0` | | [excon](https://github.com/excon/excon) | `0.109.0` | `0.110.0` | | [rake](https://github.com/ruby/rake) | `13.1.0` | `13.2.1` | | [parallel_tests](https://github.com/grosser/parallel_tests) | `4.4.0` | `4.7.1` | | [json](https://github.com/flori/json) | `2.7.1` | `2.7.2` | | [ci-queue](https://github.com/Shopify/ci-queue) | `0.44.0` | `0.55.0` | | [redis](https://github.com/redis/redis-rb) | `5.0.8` | `5.2.0` | Updates `heroku_hatchet` from 8.0.2 to 8.0.4 - [Changelog](https://github.com/heroku/hatchet/blob/main/CHANGELOG.md) - [Commits](heroku/hatchet@v8.0.2...v8.0.4) Updates `rspec-core` from 3.12.2 to 3.13.0 - [Release notes](https://github.com/rspec/rspec-core/releases) - [Changelog](https://github.com/rspec/rspec-core/blob/main/Changelog.md) - [Commits](rspec/rspec-core@v3.12.2...v3.13.0) Updates `rspec-expectations` from 3.12.3 to 3.13.1 - [Release notes](https://github.com/rspec/rspec-expectations/releases) - [Changelog](https://github.com/rspec/rspec-expectations/blob/main/Changelog.md) - [Commits](rspec/rspec-expectations@v3.12.3...v3.13.1) Updates `excon` from 0.109.0 to 0.110.0 - [Changelog](https://github.com/excon/excon/blob/master/changelog.txt) - [Commits](excon/excon@v0.109.0...v0.110.0) Updates `rake` from 13.1.0 to 13.2.1 - [Release notes](https://github.com/ruby/rake/releases) - [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc) - [Commits](ruby/rake@v13.1.0...v13.2.1) Updates `parallel_tests` from 4.4.0 to 4.7.1 - [Changelog](https://github.com/grosser/parallel_tests/blob/master/CHANGELOG.md) - [Commits](grosser/parallel_tests@v4.4.0...v4.7.1) Updates `json` from 2.7.1 to 2.7.2 - [Release notes](https://github.com/flori/json/releases) - [Changelog](https://github.com/flori/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.7.1...v2.7.2) Updates `ci-queue` from 0.44.0 to 0.55.0 - [Release notes](https://github.com/Shopify/ci-queue/releases) - [Commits](Shopify/ci-queue@v0.44.0...v0.55.0) Updates `redis` from 5.0.8 to 5.2.0 - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](redis/redis-rb@v5.0.8...v5.2.0) --- updated-dependencies: - dependency-name: heroku_hatchet dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ruby-dependencies - dependency-name: rspec-core dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: rspec-expectations dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: excon dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: rake dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: parallel_tests dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: json dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ruby-dependencies - dependency-name: ci-queue dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: redis dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add platform information to windows support docs Update windows docs to specify how to add Heroku's platform to the Gemfile.lock. In #1469 the behavior changed for Windows users. However if they're depending on a platform specific gem and they don't have the `x86_64-linux` platform locked then their dependency resolution will not use that information and their deploy will fail with a message saying to run those commands. By adding the instructions into the descanter article, warning message, and changelog entry there's a better chance windows users will succeed on their first deploy after #1469 ## Commands breakdown Install the latest bundler version at the system level: ``` > gem install bundler ``` Update the current project to explicitly use the latest version of bundler: ``` > bundle update --bundler ``` Ensure that both `ruby` and `x86_64-linux` platforms are specified in the `Gemfile.lock`: ``` > bundle lock --add-platform ruby > bundle lock --add-platform x86_64-linux ``` Ensure bundler has resolved dependencies with all platforms in mind: ``` > bundle install ``` Commit the results to git: ``` > git add Gemfile.lock > git commit -m "Upgrade bundler" ``` * Fix variable access for windows users Reported in #1472, the code was using an instance variable that does not exist so it raises an error. The `bundler` call is both a class and instance method https://github.com/heroku/heroku-buildpack-ruby/blob/4d2621c7dedff3edc95ee809d1cd71d6186fb796/lib/language_pack/ruby.rb#L27-L33. Internally it's stored as a class instance variable https://www.ruby-lang.org/en/documentation/faq/8/ so the data can be shared between the class and instances. The fix is to use `bundler` instead of `@bundler`. The test exercises and asserts that codepath was executed. Close #1472 * Update warning message to be less confusing Based on this conversation #1469 (comment)
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Bumps the ruby-dependencies group with 2 updates: [excon](https://github.com/excon/excon) and [json](https://github.com/ruby/json). Updates `excon` from 1.4.0 to 1.4.2 - [Changelog](https://github.com/excon/excon/blob/master/changelog.txt) - [Commits](excon/excon@v1.4.0...v1.4.2) Updates `json` from 2.19.2 to 2.19.3 - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.19.2...v2.19.3) --- updated-dependencies: - dependency-name: excon dependency-version: 1.4.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ruby-dependencies - dependency-name: json dependency-version: 2.19.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Prepare release v357 * Update tests for heroku-26 --------- Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
* Replace curl -s with --no-progress in fetcher.rb Using `curl -s` without `--show-error` silently swallows error messages when downloads fail, making failures hard to debug. Replace with `--no-progress` which hides only the progress bar while still showing error messages and retry backoff status. * Use long-form curl flags in fetcher.rb Convert short curl flags to their long-form equivalents for readability: -I to --head, -O to --remote-name, -L to --location, -o to --output. * Replace curl -s with --no-progress in plugin_installer.rb Same fix as fetcher.rb: -s silently swallows errors. Use --no-progress to hide only the progress bar. * Use long-form curl flags in plugin_installer.rb Convert -o to --output for readability. * Replace -s/--silent with --no-progress in bash scripts These scripts already paired -s with --show-error so errors were visible, but --no-progress also surfaces retry backoff messages and removes the need for --show-error. * Use long-form curl flags in download_ruby Convert -o to --output for readability. * Changelog
`Pathname#join` can have somewhat surpising behavior when passed
an absolute path:
```ruby
>> Pathname.new("/home").join("/.bundle/config").to_s
=> "/.bundle/config"
>> File.join("/home", "/.bundle/config")
=> "/home/.bundle/config"
```
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Co-authored-by: Isla Hoe <isla.hoe@intercom.io>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
* Add DotRubyVersionFile parser for .ruby-version files Parses .ruby-version file contents and produces a LanguagePack::RubyVersion instance. Uses service object pattern: initialize stores contents, call returns a Result struct with ruby_version and a warnings array. Supported formats: - Plain version: 3.4.8 - Ruby prefix: ruby-3.4.8 - With @org suffix: ruby-3.4.8@company-name - Pre-release (dot or dash): 3.4.0.rc1, 3.4.0-preview2 - Comments (#) and blank lines are ignored Invalid inputs produce warnings (not errors): - JRuby prefix - Version specifiers (>=, ~>, etc.) - Multiple version lines - Unparseable content * Address Flappy test * Add pre-release direct assertions and edge-case tests for DotRubyVersionFile - Expose `pre` via attr_reader on RubyVersion so tests can assert it directly - Assert `result.ruby_version.pre` in all three existing pre-release tests - Add test for combined pipeline: prefix strip + gemset strip + pre-release - Add test for CRLF line endings to protect against regression * Test two-part versions like "3.4" and improve parse error message Two-part versions (e.g. "3.4") are a common real-world input from rbenv/mise/asdf but are intentionally unsupported — only full major.minor.patch versions are accepted. The test documents this behavior and the updated warning message makes the requirement explicit. * Fix NoMethodError crash on bare "ruby-" input "ruby-".delete_prefix("ruby-") produces "", and "".split("@") returns [] in Ruby, so .first yields nil which crashes on nil.match?(...). Guard with || "" to ensure the method always returns a String.
* Report .ruby-version vs Gemfile.lock version comparison
Parse the .ruby-version file via DotRubyVersionFile in the build
flow and pass the result into get_ruby_version for comparison
against the Gemfile.lock ruby version.
Two new report keys:
- ruby.dot_ruby_version.version: parsed version string
- ruby.dot_ruby_version.vs_gemfile_lock: "match",
"dot_ruby_version_higher", or "gemfile_lock_higher"
* Add unit tests for .ruby-version vs Gemfile.lock comparison
Covers: no file, unparseable file, version match, .ruby-version
higher, Gemfile.lock higher, and Gemfile.lock default (no RUBY
VERSION section).
* Add hatchet smoke test for .ruby-version report keys
Extends the existing report extraction test to include a
.ruby-version file and assert the new comparison keys appear
in the build report.
* Use <=> for version comparison in .ruby-version report
* Rename dot_ruby_version report keys to drop ruby. prefix
Renames ruby.dot_ruby_version to dot_ruby_version.contents
and ruby.dot_ruby_version.{version,vs_gemfile_lock} to
dot_ruby_version.{version,vs_gemfile_lock} to parallel the
gemfile_lock.ruby_version.* naming convention.
* Fixup terminology
The term "version specifier" is used to denote `>=|<=|~>|>|<` etc., which isn't supported. Changing to a more correct term.
* Include matched version specifier in output
* Expand version specifier warnings
Any non-alphanumeric symbol will block parsing. Developers coming from other ecosystems might try to use `=4.0.5` even though it's not a commonly accepted pattern in Ruby. While the regex is greedy and would match something like `<~~~~~>4.0.5` which isn't **technically** a version specifier, we're pulling out the value so it's clear which part of the regex isn't valid.
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Calls the shared `_classic-buildpack-publish.yml` workflow from `heroku/languages-github-actions` to publish the `heroku/ruby` buildpack to the registry via OIDC.
- Rename to "Release Buildpack" for consistency with the CNB release workflows - Remove the workflow_dispatch "qa" input; QA staging publishes stay an optional feature of the reusable workflow, enabled from a test buildpack when needed rather than exposed on every classic buildpack caller - Drop the now-unused "qa" with: input (reusable workflow defaults it to false)
Bumps the ruby-dependencies group with 4 updates: [toml-rb](https://github.com/emancu/toml-rb), [excon](https://github.com/excon/excon), [rake](https://github.com/ruby/rake) and [json](https://github.com/ruby/json). Updates `toml-rb` from 4.1.0 to 4.2.0 - [Release notes](https://github.com/emancu/toml-rb/releases) - [Commits](emancu/toml-rb@v4.1.0...v4.2.0) Updates `excon` from 1.4.2 to 1.5.0 - [Changelog](https://github.com/excon/excon/blob/master/changelog.txt) - [Commits](excon/excon@v1.4.2...v1.5.0) Updates `rake` from 13.3.1 to 13.4.2 - [Release notes](https://github.com/ruby/rake/releases) - [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc) - [Commits](ruby/rake@v13.3.1...v13.4.2) Updates `json` from 2.19.3 to 2.19.8 - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.19.3...v2.19.8) --- updated-dependencies: - dependency-name: toml-rb dependency-version: 4.2.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: excon dependency-version: 1.5.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: rake dependency-version: 13.4.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: json dependency-version: 2.19.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This test was added to assert the order of PATH, and the `rake` executable. An implementation detail is that it uses `heroku run` in the background as well as the `--exit-code` flag. The Heroku CLI changed in 11.8.1 for users of `--exit-code`: ``` $ npm_config_min_release_age=0 npx -y heroku@11.8.0 run --app "$APP" --exit-code -- console Running console on ⬢ fast-plains-61981... up, run.3560 /bin/bash: line 1: console: command not found › Error: Process exited with code 127 $ npm_config_min_release_age=0 npx -y heroku@11.8.1 run --app "$APP" --exit-code -- console Running console on ⬢ fast-plains-61981... up, run.1524 irb(main):001> ``` This resolves the behavior to match what a user would expect when they're NOT using `--exit-code`. The behavior you're seeing above is: There's a shortcut so when `heroku run console` is used, it checks to see if a `console` process type exists and runs that if it does. heroku/cli#3804 changed fixed the behavior to mirror `heroku run` (without `--exit-code`). Which broke the test. Since `heroku run` is an implementation detail, we can bypass it using `bash -c`.
* Add BundleBinstubCheck helper to detect bin/bundle binstub When `bin/bundle` is present in an app, `bundle clean` can remove the installed version of bundler. At runtime, the app then falls back to the default bundler version shipped with Ruby (e.g. Ruby 3.4.x ships with bundler 2.6.x), which may be a different major version than what the app expects. While Rails no longer generates a `bin/bundle` binstub (rails/rails#54687), many pre-existing apps still have this file. This commit adds a new helper class and tests that detect the presence of `bin/bundle` and emit a warning advising the user to remove it. The class follows the same pattern as the existing `BinstubCheck` helper. Tests can be run with: $ rspec spec/helpers/bundle_binstub_check_spec.rb Issue: #1690 Upstream: ruby/rubygems#9218 * Wire BundleBinstubCheck into the build flow Integrates the `bin/bundle` binstub warning into the buildpack's compile phase. The check runs alongside the existing bad-binstub shebang check during the early warning stage, before Ruby and bundler are installed. When a user deploys an app that contains `bin/bundle`, they will now see a build warning explaining the issue and how to fix it. Issue: #1690 Made-with: Cursor * Code style
To match the templates at: https://github.com/salesforce/oss-template GUS-W-23426985.
* Bump the ruby-dependencies group across 1 directory with 2 updates Bumps the ruby-dependencies group with 2 updates in the / directory: [json](https://github.com/ruby/json) and [standard](https://github.com/standardrb/standard). Updates `json` from 2.19.8 to 2.20.0 - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.19.8...v2.20.0) Updates `standard` from 1.54.0 to 1.55.0 - [Release notes](https://github.com/standardrb/standard/releases) - [Changelog](https://github.com/standardrb/standard/blob/main/CHANGELOG.md) - [Commits](standardrb/standard@v1.54.0...v1.55.0) --- updated-dependencies: - dependency-name: json dependency-version: 2.20.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: standard dependency-version: 1.55.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * Disable Lint/InterpolationCheck for literal rails runner command standard 1.55.0 (rubocop 1.87.0) added Lint/InterpolationCheck, which flags the single-quoted expected command strings in the RailsRunner spec. These strings must literally contain `#{...}` because they are the raw command sent to the `rails runner` subprocess, so converting to double quotes would break the assertion. Disable the cop inline instead. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…1759) Bumps the ruby-dependencies group with 3 updates in the / directory: [excon](https://github.com/excon/excon), [json](https://github.com/ruby/json) and [standard](https://github.com/standardrb/standard). Updates `excon` from 1.5.0 to 1.6.0 - [Changelog](https://github.com/excon/excon/blob/master/changelog.txt) - [Commits](excon/excon@v1.5.0...v1.6.0) Updates `json` from 2.20.0 to 2.21.1 - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.20.0...v2.21.1) Updates `standard` from 1.55.0 to 1.56.0 - [Release notes](https://github.com/standardrb/standard/releases) - [Changelog](https://github.com/standardrb/standard/blob/main/CHANGELOG.md) - [Commits](standardrb/standard@v1.55.0...v1.56.0) --- updated-dependencies: - dependency-name: excon dependency-version: 1.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: json dependency-version: 2.21.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies - dependency-name: standard dependency-version: 1.56.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ruby-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The heroku-nodebin S3 bucket is being sunset, so point the Yarn download at the public npm registry tarball instead (https://registry.npmjs.org/yarn/-/yarn-VERSION.tgz). The npm tarball is structurally identical to the S3 one (both extract to package/ with the same bin/yarn and bin/yarnpkg), so the existing Fetcher#fetch_untar + strip_components: 1 install path and the resulting on-disk layout are unchanged. Only the URL string changes; note npm's filename convention has no "v" prefix and uses .tgz. Add a unit spec guarding that Nodebin.yarn points at registry.npmjs.org so it can't silently regress back to the S3 bucket. W-21368290
Bumps [json](https://github.com/ruby/json) from 2.21.1 to 2.21.2. - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.21.1...v2.21.2) --- updated-dependencies: - dependency-name: json dependency-version: 2.21.2 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.