Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 9, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

yui-knk and others added 9 commits December 9, 2025 09:09
Because `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` definition was removed
by 4f77d8d.
`ruby2_keywords` is set only to be `0` in parse.y.
However `args->ruby2_keywords` is initialized with `0` by `MEMZERO`
in `rb_node_args_new` function and `body->param.flags.ruby2_keywords`
is initialized with `0` by `ZALLOC` in `rb_iseq_constant_body_alloc` function,
so `args->ruby2_keywords` does nothing for `body->param.flags.ruby2_keywords`.
* `install_or_cli_help` does not exist for older Bundler like Bundler 2
  and so results in a confusing error on Bundler 2:
  ```
  $ bundle
  Could not find command "".
  ```
* See https://github.com/ruby/rubygems/pull/9136/files#r2592366837
* Merge the behavior of `install_or_cli_help` in `install`.

ruby/rubygems@9b4819ae18
…ommand

* It looked like:
            In a future version of Bundler, running `bundle` without argument will no longer run `bundle install`.
            Instead, the `cli_help` command will be displayed. Please use `bundle install` explicitly for scripts like CI/CD.
            You can use the future behavior now with `bundle config set default_cli_command cli_help --global`,
            or you can continue to use the current behavior with `bundle config set default_cli_command install --global`.
            This message will be removed after a default_cli_command value is set.
  Bundler version 4.0.0 (2025-12-08 commit ruby/rubygems@9b4819ae18)
* And now looks like:
  In a future version of Bundler, running `bundle` without argument will no longer run `bundle install`.
  Instead, the `cli_help` command will be displayed. Please use `bundle install` explicitly for scripts like CI/CD.
  You can use the future behavior now with `bundle config set default_cli_command cli_help --global`,
  or you can continue to use the current behavior with `bundle config set default_cli_command install --global`.
  This message will be removed after a default_cli_command value is set.

  Bundler version 4.0.0 (2025-12-08 commit ruby/rubygems@9b4819ae18)

ruby/rubygems@979dada8f3
When running a fresh `bundle install` with gems that contains
executables, Bundler will generate binstubs but soon after will remove
them. This is a regression introduced in ruby/rubygems@573ffad3ea4a.

This results in doing `bundle install && bundle exec foo` to raise an
error saying `foo` couldn't be found.

This issue only appears if `BUNDLE_CLEAN` is set.

At the end of the installation process, when Bundler has installed
gems and generated binstubs, it runs the cleanup.

1. It [detects](https://github.com/ruby/rubygems/blob/4f8aa3b40cded3465bb2cd761e9ce7f8673b7fcb/bundler/lib/bundler/runtime.rb#L182) the executable for the current specs
2. Any existing executables not detected is then removed https://github.com/ruby/rubygems/blob/4f8aa3b40cded3465bb2cd761e9ce7f8673b7fcb/bundler/lib/bundler/runtime.rb#L194.

The issue being that 1. now returns an empty array where as it should
return the executables of the gems from the current bundle.

The problem is in ruby/rubygems@573ffad3ea4a where we
removed the `executables` method from the `EndpointSpecification`.
When Bundler reads the lockfile, it creates a `EndpointSpecification`
object for each spec. At this point, the EndpointSpecification doesn't
know about the `executables` of a gem. Once Bundler fetches the
`gemspec` from the remote, it swaps the the "spec" with the real one
and from here knows what executables the gem has.

Reintroduce the `executables` method and the `bindir` in the
EndpointSpecification class. From what I'm seeing, the removal
of those wasn't needed to resolve the issue where Bundler remembers
CLI flags. This is probably an oversight.

ruby/rubygems@b47f6b0247
When there is an invalid syntax tree, we need to make sure to fill
in the required call operator location.

ruby/prism@937313d7f0
If a block exit has a further block exit in its subtree, we need to
keep recursing.

ruby/prism@855d81a4a8
When you have a heredoc interpolated into another heredoc where
the inner heredoc is terminated by a newline, you need to avoid
adding the newline character a second time.

ruby/prism@8eeb5f358b
@pull pull bot locked and limited conversation to collaborators Dec 9, 2025
@pull pull bot added the ⤵️ pull label Dec 9, 2025
@pull pull bot merged commit 5931491 into turkdevops:master Dec 9, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants