summaryrefslogtreecommitdiff
path: root/spec/bundler/commands/update_spec.rb
AgeCommit message (Collapse)Author
2025-11-20[ruby/rubygems] Improve error messages and handling in testseileencodes
This is a first pass to improve the way errors are handled and raised in bundler's tests. The goal is to clean up tests and modernize them - these were some obvious areas that could be cleaned up. - Instead of raising "ZOMG" in the load error tests, it now tests for the actual error and gem raising. - Improve error messages where applicable. - All errors raise a specific error class, rather than falling back to a default and just setting a message. - Removed arguments and `bundle_dir` option from `TheBundle` class as it wasn't actually used so therefore we don't need to raise an error for extra arguments. - Removed error from `BundlerBuilder`, as it won't work if it's not `bundler`, also it never uses `name`. The only reaon `name` is passed in is because of metaprogramming on loading the right builder. I think that should eventually be refactored. - Replaced and removed `update_repo3` and `update_repo4` in favor of just `build_repo3` and `build_repo4`. Rather than tell someone writing tests to use a different method, automatically use the right method. https://github.com/ruby/rubygems/commit/68c39c8451
2025-11-18[ruby/rubygems] fix testsAustin Pray
https://github.com/ruby/rubygems/commit/1dc669a0ab
2025-11-14[ruby/rubygems] Fix triple spacing when generating lockfileJimmy Lin
https://github.com/ruby/rubygems/commit/d3baf4110e
2025-10-14[rubygems/rubygems] Bump up to test version for 4.0.0.devHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/9d70887185
2025-09-16[rubygems/rubygems] Completely remove multisources supportDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8f9d6c54a1
2025-09-11[rubygems/rubygems] Remove deprecated usages of `bundle install ↵David Rodríguez
--deployment` during specs https://github.com/rubygems/rubygems/commit/c903afbc3f
2025-08-18[rubygems/rubygems] Fix incorrect error message capitalizationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d41b8d303c
2025-08-18[rubygems/rubygems] Fix `bundle update foo` not upgrading foo to latest in a ↵David Rodríguez
specific case If upgrading `foo` needs an indirect dependency to be downgraded, Bundler would not be able to upgrade foo. This is because when calculating the latest resolvable version of foo, Bundler was still adding lower bound requirements on the locked versions of all dependencies to avoid downgrades, effectively pinning foo to a version older than the latest. To fix this, instead of creating a second "unlocked" definition to figure out the latest resolvable version, create a second unlocked resolver, and DO NOT add lower bound requirements to it. https://github.com/rubygems/rubygems/commit/00cc0ecc69
2025-06-30[rubygems/rubygems] Remove "double CI" for testing Bundler 4 modeDavid Rodríguez
Since now every functionality that changes in Bundler 4 is under a setting, we can enable that setting to test the new functionality, without having to run our full CI twice. This can actually be seen as increasing coverage, because Bundler 4 functionality will now be tested on Windows, MacOS, or any other environment where previously "Bundler 4 mode" was not running. https://github.com/rubygems/rubygems/commit/1cb3e009fc
2025-06-26[rubygems/rubygems] Make yet one more update spec independent of running versionDavid Rodríguez
https://github.com/rubygems/rubygems/commit/07762f6c1f
2025-06-26[rubygems/rubygems] Make one more update spec independent of running versionDavid Rodríguez
https://github.com/rubygems/rubygems/commit/dcd8e8210f
2025-06-24[rubygems/rubygems] Remove no longer necessary workarounds for restartsDavid Rodríguez
Since we no longer pass ruby CLI flags in our spec commands, we no longer need the previous workaround and can get the realworld code tested. https://github.com/rubygems/rubygems/commit/fd92c855fb
2025-06-19Skip to Bundler 4 directlyDavid Rodríguez
2025-06-19[rubygems/rubygems] Normalize Bundler version spec filtersDavid Rodríguez
https://github.com/rubygems/rubygems/commit/28b6a7cf5e
2025-06-19[rubygems/rubygems] Allow enabling "Bundler 3 mode" more easilyDavid Rodríguez
Currently to test Bundler 3 mode we have to actually edit the version file to simulate we're running a future version. This is inconvenient. Instead, allow passing an environment variable, `BUNDLER_3_MODE`, to set the "working mode" Bundler should use. This can now be set easily by end users to enable them to try out the changes in the future version and give us feedback. It's unclear how version auto-switching should work when this environment variable is set, so the auto-switching feature will be disabled in that case. https://github.com/rubygems/rubygems/commit/4e92e9b209
2025-06-06[rubygems/rubygems] Extract stdboth spec helperDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb13f4e702
2025-06-05[rubygems/rubygems] Fix `bundle update --bundler` when restarts disabledDavid Rodríguez
There's no reason why we should not update bundler as requested, even if restarts are disabled. https://github.com/rubygems/rubygems/commit/e59acd2a0d
2025-06-05[rubygems/rubygems] Look in configured path when checking if self-update ↵David Rodríguez
version is installed https://github.com/rubygems/rubygems/commit/1ce0882e6f
2025-06-05[rubygems/rubygems] Make update specs independent from version of BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/609b21a5fe
2025-04-14[rubygems/rubygems] Refine `bundle update --verbose` logsDavid Rodríguez
Don't mention "Found changes from the lockfile" because that's not really true in general. https://github.com/rubygems/rubygems/commit/0181c278e8
2025-03-31[rubygems/rubygems] Remove edge cases for not removing invalid platformsDavid Rodríguez
Instead, remove them anytime we find dependencies don't match the lockfile for a platform, and then add them back after resolution if they ended up being valid. https://github.com/rubygems/rubygems/commit/220bd77887
2025-03-24[rubygems/rubygems] Consistently use "lockfile" over "lock file"David Rodríguez
https://github.com/rubygems/rubygems/commit/e891be9197 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-12[rubygems/rubygems] Prefer `FileUtils.rm_r` to `FileUtils.rm_rf` for specsDavid Rodríguez
Because it does not swallow errors if it fails to remove the given folders, making issues easier to debug. https://github.com/rubygems/rubygems/commit/0db12d7afc
2025-02-18[rubygems/rubygems] Fix Bundler incorrectly downgrading direct dependenciesDavid Rodríguez
There's no reason to call `converge_specs` when adding additional lower bound requirements to prevent downgrades, and it actually causes the extra requirements to be missed sometimes. Loop over the originally locked specs directly, adding the additional precaution of not adding the requirement if the Gemfile dependency has changed and it no longer matches the locked spec. https://github.com/rubygems/rubygems/commit/5154506912
2025-02-13[rubygems/rubygems] Fix incorrect error message in frozen modeDavid Rodríguez
When Bundler refuses to install in frozen mode, sometimes it would incorrectly claim that some dependencies have been added to the Gemfile when that's not really the case. Fix that by making sure `locked_dependencies` always has all locked dependencies, even when unlocking, Additionally, the suggestion to run `bundle install` is also confusing when unlocking, since `bundle update` is what has been run. So skip that part as well when unlocking. https://github.com/rubygems/rubygems/commit/64d84ad7d8
2025-01-28[rubygems/rubygems] Remove unnecessary platform helpersDavid Rodríguez
I think they add unnecessary indirection and inconsistency to the specs. https://github.com/rubygems/rubygems/commit/609924d985
2024-11-26[rubygems/rubygems] Fix installs of subdependencies of unlocked dependencies ↵David Rodríguez
to be conservative When converging specification to pass the set of versions that should be preserved from the lockfile during resolution, we should make sure all top level gems are considered, and only exclude those gems themselves (and not their dependencies) if their locked versions happen to not be satisfied by an edited Gemfile. https://github.com/rubygems/rubygems/commit/ed2f1b7b88
2024-10-04[rubygems/rubygems] Remove extra space in BUNDLED WITH sectionSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/d8b5d05e46
2024-10-04[rubygems/rubygems] Remove outdated conditionals from testsSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/06eec6d855
2024-09-20[rubygems/rubygems] Fix RubyGems warnings about pre-release dependenciesDavid Rodríguez
Nothing here relies on the dependency being on a pre-release, and Bundler does not use prereleases in the realworld. https://github.com/rubygems/rubygems/commit/96f5742ff1
2024-09-13[rubygems/rubygems] Remove redundant arguments passed to `bundle` helperDavid Rodríguez
They are used by default. https://github.com/rubygems/rubygems/commit/0b7f7d879f
2024-09-13[rubygems/rubygems] Remove `BUNDLER_IGNORE_DEFAULT_GEM`David Rodríguez
As long as we use a high enough test version, the default version of Bundler should never get in the middle. https://github.com/rubygems/rubygems/commit/d63f0818aa
2024-09-13[rubygems/rubygems] Make sure test does not load system version of BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d850ea1d95
2024-08-05[rubygems/rubygems] Extract a `build_repo3` helperDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d8cf4aa0cd
2024-07-26[rubygems/rubygems] Make all tests still pass when switching from ↵David Rodríguez
truffleruby to cruby https://github.com/rubygems/rubygems/commit/4f3d9fa3bf
2024-07-23[rubygems/rubygems] Enable checksums on Bundler 3 for fresh lockfilesDavid Rodríguez
And get specs passing. https://github.com/rubygems/rubygems/commit/c23b5f5b84
2024-07-23[rubygems/rubygems] Enforce passing a block to `simulate_platform`David Rodríguez
https://github.com/rubygems/rubygems/commit/0658903e25
2024-06-28Synchronize Bundler & RubyGems (#11071)David Rodríguez
2024-05-31[rubygems/rubygems] Raise a friendly error whenever commands run in subshell ↵David Rodríguez
take more than a minute I expect to make occasional CI hangs easier to investigate. Implementation was adapted from tty-command. https://github.com/rubygems/rubygems/commit/39c92955bf
2024-04-29[rubygems/rubygems] Fix issue with `bundle update` with an out of sync lockfileDavid Rodríguez
An old platform related bug fix made some existing lockfiles no longer work because they included invalid platforms. So to make it backwards compatible, code was added to remove invalid platforms from the lockfile before resolution. This is skipped though when Gemfile has changed dependencies because in that case we will be re-resolving anyways. However, in the `bundle update` case, the detection of "dependencies have changed" was not actually working making Bundler remove all platforms and not be able to resolve. https://github.com/rubygems/rubygems/commit/6452adfd62
2024-03-29[rubygems/rubygems] add test case to ensure updating with multiple sources + ↵Alex Robbin
caching maintains the right lockfile https://github.com/rubygems/rubygems/commit/65839757e6
2024-03-22[rubygems/rubygems] Fix incorrect `bundle update --bundler` messageDavid Rodriguez
https://github.com/rubygems/rubygems/commit/146de56353
2024-01-11[rubygems/rubygems] Fix Bundler daily CIDavid Rodríguez
There is another place artifice usage was making the copy of vendored http in ruby-core be loaded instead of the one under test. Remove unnecessary usage of artifice. https://github.com/rubygems/rubygems/commit/d2488199b0
2023-12-22Merge RubyGems-3.5.2 and Bundler-2.5.2Hiroshi SHIBATA
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-05[rubygems/rubygems] Converts Bundler lockfile checksum validation to opt-in onlyMartin Emde
Looks for the CHECKSUMS section in the lockfile, activating the feature only if the section exists. Without a CHECKSUMS section, Bundler will continue as normal, validating checksums when gems are installed while checksums from the compact index are present. https://github.com/rubygems/rubygems/commit/2353cc93a4
2023-11-13[rubygems/rubygems] Automatically lock extra ruby platformsDavid Rodríguez
Since we started locking the specific platform in the lockfile, that has created an annoying situation for users that don't develop on Linux. They will create a lockfile on their machines, locking their local platform, for example, darwin. But then that lockfile won't work automatically when deploying to Heroku for example, because the lockfile is frozen and the Linux platform is not included. There's the chance though that resolving against two platforms (Linux + the local platform) won't succeed while resolving for just the current platform will. So, instead, we check other platform specific variants available for the resolution we initially found, and lock those platforms and specs too if they satisfy the resolution. This is only done when generating new lockfiles from scratch, existing lockfiles should keep working as before, and it's only done for "ruby platforms", i.e., not Java or Windows which have their own complexities, and so are excluded. With this change, we expect that MacOS users can bundle locally and deploy to Heroku without needing to do anything special. https://github.com/rubygems/rubygems/commit/5f24f06bc5
2023-11-09[rubygems/rubygems] No need to let this command failDavid Rodríguez
This command is not expected to fail. If it fails, we can stop the test. https://github.com/rubygems/rubygems/commit/2511a5b093
2023-10-23[rubygems/rubygems] Improve errors and register checksums reliablyMartin Emde
Improve error reporting for checksums, raises a new error class. Solve for multi-source checksum errors. Add CHECKSUMS to tool/bundler/(dev|standard|rubocop)26_gems.rb https://github.com/rubygems/rubygems/commit/26ceee0e76 Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
2023-10-23[rubygems/rubygems] Refactor Checksum classes and methods to reduceMartin Emde
code. (https://github.com/rubygems/rubygems/pull/6917) https://github.com/rubygems/rubygems/commit/2238bdaadc