Skip to content

Generate requested binstubs even when dependencies are satisfied - #141

Open
OskarEichler wants to merge 1 commit into
capistrano:masterfrom
OskarEichler:codex/generate-requested-binstubs
Open

Generate requested binstubs even when dependencies are satisfied#141
OskarEichler wants to merge 1 commit into
capistrano:masterfrom
OskarEichler:codex/generate-requested-binstubs

Conversation

@OskarEichler

Copy link
Copy Markdown

Summary

Honor binstub generation when bundle check succeeds. Run the standalone binstubs command independently of whether installation was needed; legacy --binstubs requires running install.

Reproduction and verification

Configure a fresh bundle_binstubs directory and return success from bundle check. With either :install or :binstubs selected, the current task skips generation. The candidate issues the requested generation command. When no binstubs are requested, the successful-check installation shortcut remains.

The combined installed-release candidate passes 44 focused command checks and 501 generated path/prefix cases. Five additional scenarios use real Capistrano 3.20.1, Rake and SSHKit 1.25.1 with an Abstract recording backend, including installation failure propagation. The backend records commands and performs no SSH or shell execution.

The repository contains no automated test suite or lint configuration. Its default rake task is a no-op and succeeds through rbenv; runtime syntax and package checks pass. Official/candidate packages retain 2.2.0, all 17 paths and metadata/dependencies; only lib/capistrano/tasks/bundler.cap changes. All Ruby verification uses rbenv Ruby 4.0.6. No tests were added or modified under the consuming repository's policy.

Compatibility and limitations

Legacy binstub users now run bundle install even when dependencies are satisfied, because that is their selected generation command. Standalone binstub users retain the install shortcut. No --force is added, so this does not solve existing shared-binstub overwrite/stale-Gemfile concerns such as #111. Failed installation still stops before standalone generation.

No deployment or production changes. Legacy Bundler command generation is checked, but old Ruby/Bundler installations and remote servers were not executed. The existing Bundler 4 default-change proposal #140 is not included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant