Skip to content

Conversation

@deivid-rodriguez
Copy link
Contributor

@deivid-rodriguez deivid-rodriguez commented Oct 9, 2023

What was the end-user or developer problem that led to this PR?

No user problem, but came up with a refactoring that I believe makes the code better and easier to customize.

I think this may help bootboot remove some monkey patches.

What is your fix for the problem, implemented in this PR?

This PR deprecates passing a file to Definition#lock. Instead, it will always lock the lockfile the definition was built for.

Make sure the following tasks are checked

Copy link
Contributor

@martinemde martinemde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good refactor. It makes a lot more sense to me this way. Just a few question and maybe a crazy idea that you can probably ignore.

@deivid-rodriguez deivid-rodriguez force-pushed the refactor-lockfile-generation branch from 0222f62 to 6a0c03c Compare January 26, 2024 07:18
@deivid-rodriguez deivid-rodriguez marked this pull request as ready for review January 26, 2024 09:29
Co-authored-by: Martin Emde <martin.emde@gmail.com>
@deivid-rodriguez deivid-rodriguez changed the title Refactor lockfile generation Refactor lockfile generation and deprecate Definition#lock with explicit lockfile Jan 30, 2024
@deivid-rodriguez deivid-rodriguez merged commit 2e28234 into master Jan 30, 2024
@deivid-rodriguez deivid-rodriguez deleted the refactor-lockfile-generation branch January 30, 2024 18:40
deivid-rodriguez added a commit that referenced this pull request Feb 5, 2024
Refactor lockfile generation and deprecate `Definition#lock` with explicit lockfile

(cherry picked from commit 2e28234)
Edouard-chin added a commit to Edouard-chin/rubygems that referenced this pull request Aug 13, 2025
- Ref ruby#8917
- ### Problem

  Prior to Bundler 2.5.6, running
  `bundle lock --update foo --lockfile Gemfile_bumped.lock` would
  update only the foo gem and write the lockfile to the
  `Gemfile_bumped.lock`.

  In Bundler 2.5.6 and above running the same command, updates
  absolutely all gems.
  This change is related to ruby#7047

  ### Solution

  Build the definition using the existing lockfile, not the one passed
  in the `--lockfile` as it may not exist. Dump the definition into
  a new lockfile.
Edouard-chin added a commit to Edouard-chin/rubygems that referenced this pull request Aug 13, 2025
- Ref ruby#8917
- ### Problem

  Prior to Bundler 2.5.6, running
  `bundle lock --update foo --lockfile Gemfile_bumped.lock` would
  update only the foo gem and write the lockfile to the
  `Gemfile_bumped.lock`.

  In Bundler 2.5.6 and above running the same command, updates
  absolutely all gems.
  This change is related to ruby#7047

  ### Solution

  Build the definition using the existing lockfile, not the one passed
  in the `--lockfile` as it may not exist. Dump the definition into
  a new lockfile.
Edouard-chin added a commit to Edouard-chin/rubygems that referenced this pull request Aug 14, 2025
- Ref ruby#8917
- ### Problem

  Prior to Bundler 2.5.6, running
  `bundle lock --update foo --lockfile Gemfile_bumped.lock` would
  update only the foo gem and write the lockfile to the
  `Gemfile_bumped.lock`.

  In Bundler 2.5.6 and above running the same command, updates
  absolutely all gems.
  This change is related to ruby#7047

  ### Solution

  We decided to expose the `write_lock` method rather than going
  through a complex deprecation cycle of the `lock` method.

  This commit applies the same business logic as prios to 2.5.6 where,
  we build the definition using the existing lockfile, make changes to
  the definition and dump it into the desired lockfile.
deivid-rodriguez pushed a commit to Edouard-chin/rubygems that referenced this pull request Aug 26, 2025
- Ref ruby#8917
- ### Problem

  Prior to Bundler 2.5.6, running
  `bundle lock --update foo --lockfile Gemfile_bumped.lock` would
  update only the foo gem and write the lockfile to the
  `Gemfile_bumped.lock`.

  In Bundler 2.5.6 and above running the same command, updates
  absolutely all gems.
  This change is related to ruby#7047

  ### Solution

  We decided to expose the `write_lock` method rather than going
  through a complex deprecation cycle of the `lock` method.

  This commit applies the same business logic as prios to 2.5.6 where,
  we build the definition using the existing lockfile, make changes to
  the definition and dump it into the desired lockfile.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants