summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2025-07-07[rubygems/rubygems] Move specs independent of gem name out of shared examplesDavid Rodríguez
And rename the shared examples to "paths dependent on gem name". https://github.com/rubygems/rubygems/commit/cdcc8ba92a
2025-07-07[rubygems/rubygems] Move specs independent from gem_name out of "generating ↵David Rodríguez
a gem" shared specs So that they don't run repeatedly. https://github.com/rubygems/rubygems/commit/1f65e879f4
2025-07-07[rubygems/rubygems] Remove unnecessary nestingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/eac831a1b7
2025-07-07[rubygems/rubygems] Actually run "generating a gem" shared examples for the ↵David Rodríguez
more standard name They were only being run for "edge case" names, yet it tests all kind of things about generation. https://github.com/rubygems/rubygems/commit/3e9d805eea
2025-07-07[rubygems/rubygems] Fix assertions to not depend on specific gem nameDavid Rodríguez
https://github.com/rubygems/rubygems/commit/27a4af859e
2025-07-07[rubygems/rubygems] Remove unnecessary nesting from standalone specsDavid Rodríguez
Originally, all the specs in this file were put inside a shared examples block, and since then all specs were run only changing the cwd (either from root, or a subdirectory). This was in https://github.com/rubygems/rubygems/commit/d7291700d016, to cover a fix in the `bundler_path` method. However, reverting that fix does not make any of the specs in either of the main blocks fail! Only an unrelated spec of `bundle install --standalone --local` fails. The reason is that all specs set `path` to an absolute path, making the fix essentially uncovered. In order to simplify the file structure and improve runtime, I completely removed the shared examples block, and only run main specs for the root directory. Then I added a couple of extra specs to cover the original bug fix. This cuts runtime of this spec file in half, from 1m30s to 45s on my laptop. https://github.com/rubygems/rubygems/commit/cc506f17e0
2025-07-07[rubygems/rubygems] Remove `default_install_uses_path` settingDavid Rodríguez
The previous default can already be configured with `bundle config path.system true`. https://github.com/rubygems/rubygems/commit/cb483b79db
2025-07-07[rubygems/rubygems] Remove unnecessary feature flag checkDavid Rodríguez
This spec now only runs in Bundler 2 mode. https://github.com/rubygems/rubygems/commit/f52cb240ca
2025-07-03Sync RubyGemsDavid Rodríguez
2025-07-02[rubygems/rubygems] Split HTTP_ERRORS into retryable and non retryableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c241a640fc
2025-07-02[rubygems/rubygems] Handle connection refused and Errno::EADDRNOTAVAIL as ↵David Rodríguez
non-retryable https://github.com/rubygems/rubygems/commit/cd529776d5
2025-07-02[rubygems/rubygems] Refactor downloader specs to better test real behaviorDavid Rodríguez
In particular, no route to host errors are actually fatal since they are usually raised as `SocketError`'s, while the specs were incorrectly testing that they are retryable. https://github.com/rubygems/rubygems/commit/9410ceb36b
2025-07-02[rubygems/rubygems] Move Bundler::Fetcher::HTTP_ERRORS to ↵David Rodríguez
Bundler::Fetcher::DOWNLOADER And deprecate the old constant. It's only used in this class, and in Bundler::Fetcher there's already FAIL_ERRORS, very similar to it. So this makes things less confusing. https://github.com/rubygems/rubygems/commit/d32ed63d6f
2025-07-02[rubygems/rubygems] Fix typosDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2a2317249f
2025-07-02[rubygems/rubygems] Add a `verbose` setting to enable verbose output for all ↵David Rodríguez
commands https://github.com/rubygems/rubygems/commit/0aa1be946f
2025-07-02[rubygems/rubygems] Fix `bundle console` printing bug report template on ↵Earlopain
`NameError` during require Followup to https://github.com/rubygems/rubygems/pull/8436 It fixed showing the template when requiring a non-existant file but user code can do much more than just trying to require other code. I encountered this particular case because of load order issues, where a library wasn't able to properly require itself when loaded before some other library. https://github.com/rubygems/rubygems/commit/1c910e5afe
2025-07-02[rubygems/rubygems] Log when `simulate_version` is enabledDavid Rodríguez
Tweak version output and verbose mode to be transparent about Bundler simulating a different version than the real one. https://github.com/rubygems/rubygems/commit/179354d153
2025-07-02[rubygems/rubygems] None of the global options have default so this seems ↵David Rodríguez
unnecessary https://github.com/rubygems/rubygems/commit/bea87eab0b
2025-07-02[rubygems/rubygems] Remove duplicated specDavid Rodríguez
https://github.com/rubygems/rubygems/commit/66aabcc9f3
2025-07-02[rubygems/rubygems] Migrate all remaining specs to run offlineDavid Rodríguez
Also removed the helper to install real gems during specs to avoid the temptation of introducing network stuff again. https://github.com/rubygems/rubygems/commit/a1ab5e319a
2025-07-02[rubygems/rubygems] Verify specs still using realworld gems still pass with ↵David Rodríguez
latest versions https://github.com/rubygems/rubygems/commit/9da44ade24
2025-07-02[rubygems/rubygems] Realworld optparse gem should be no longer necessaryDavid Rodríguez
Optparse was vendored a while ago. https://github.com/rubygems/rubygems/commit/d7afd43756
2025-07-02[rubygems/rubygems] Remove possibly incorrect specDavid Rodríguez
I spent quite a while on this and I have not been able to reproduce or even understand how the original issue would happen. I also suspect it never actually reproduced the original problem properly. Since I'm in the middle of migrating all specs away from touching the network, I decided to remove it since I can't write an equivalent spec without being able to understand the original problem. https://github.com/rubygems/rubygems/commit/c9dfa20877
2025-07-02[rubygems/rubygems] `bundle viz` deprecation specs don't actually need the ↵David Rodríguez
gem installed The deprecation message is printed regardless. https://github.com/rubygems/rubygems/commit/397999a390
2025-07-02[rubygems/rubygems] Spec about cleaning default gems executables no longer ↵David Rodríguez
needs realworld gems https://github.com/rubygems/rubygems/commit/9cf284997b
2025-07-02[rubygems/rubygems] Don't use currently configured value for default branchDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1ae8533690
2025-07-02[rubygems/rubygems] Migrate `bundle viz` specs to run offlineDavid Rodríguez
https://github.com/rubygems/rubygems/commit/672722cd4d
2025-07-02[rubygems/rubygems] Logger realworld gem is no longer necessaryDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6e6288a496
2025-07-02[rubygems/rubygems] Realworld tsort gem should be no longer necessaryDavid Rodríguez
https://github.com/rubygems/rubygems/commit/93d9b97182
2025-07-02[rubygems/rubygems] These specs need stringio only for old versionsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a44cdf4c21
2025-07-02[rubygems/rubygems] Simpler glob to find path to rakeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/852db00169
2025-07-02[rubygems/rubygems] Rename some helpers to avoid name classesDavid Rodríguez
I plan to introduce a `base_system_gems` helper to actually install gems from `base_system_gem_path` into system gems but that would collapse with an existing helper. https://github.com/rubygems/rubygems/commit/714c209e62
2025-07-02[rubygems/rubygems] Lock specs don't need the real rake gemDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d795b8fcb4
2025-07-02[rubygems/rubygems] Migrate `bundle add` specs to run offlineDavid Rodríguez
https://github.com/rubygems/rubygems/commit/02de767e14
2025-06-30[rubygems/rubygems] Update some reference to Bundler 3 to Bundler 4David Rodríguez
https://github.com/rubygems/rubygems/commit/53174e0aa6
2025-06-30[rubygems/rubygems] Added extra examplesHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a2e4d8299f
2025-06-30[rubygems/rubygems] Use Bundler.settings[gem.bundle]Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/b16511598e
2025-06-30[rubygems/rubygems] Assert stdout message instead of rspec-mockHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/91d7abe27f
2025-06-30[rubygems/rubygems] Added missing caller for shared_exampleHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/ab9b8c2511
2025-06-30[rubygems/rubygems] Added --bundle option for triggering bundle install ↵Hiroshi SHIBATA
automatically after bundle gem https://github.com/rubygems/rubygems/commit/59ac0db26b
2025-06-30[rubygems/rubygems] Fix flakies in bundler gem installer specsDavid Rodríguez
After introducing the `simulate_version` setting, that's another call to `Bundler#Settings#[]` that gets in the middle and makes these specs fail when run in isolation. https://github.com/rubygems/rubygems/commit/722360e98e
2025-06-30[rubygems/rubygems] Fix some pending specs filters that are actually for ↵David Rodríguez
Bundler 5 https://github.com/rubygems/rubygems/commit/b42b2e7055
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-30Rewrite specs to not start local dev serversDavid Rodríguez
They cause flakies when different tests start them in parallel, and also make the specs more complicated.
2025-06-26[rubygems/rubygems] Simulate Bundler 4 in a better wayDavid Rodríguez
Overriding the version constant feels too magic and creates a set of problems. For example, Bundler will lock the simulated version, and that can cause issues when the lockfile is used under an environment not simulating Bundler 4 (it will try to auto-install and auto-switch to a version that does not exist). On top of that, it can only be configured with an ENV variable which is not too flexible. This commit takes a different approach of using a setting, which is configurable through ENV or `bundle config`, and pass the simulated version to `Bundler::FeatureFlag`. The real version is still the one set by `VERSION`, but anything that `Bundler::FeatureFlag` controls will use the logic of the "simulated version". In particular, all feature flags and deprecation messages will respect the simulated version, and this is exactly the set of functionality that we want users to be able to easily try before releasing it. https://github.com/rubygems/rubygems/commit/8129402193
2025-06-26[rubygems/rubygems] Remove unnecessary version checkDavid Rodríguez
The `inject` command is deprecated, so these specs only run for Bundler 3 and checking this is unnecessary. https://github.com/rubygems/rubygems/commit/c89fb788f8
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] Remove hardcoded version check from one clean specDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9244cca381
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-26[rubygems/rubygems] Centralize managing major version dependent behavior in ↵David Rodríguez
`FeatureFlag` class https://github.com/rubygems/rubygems/commit/7708e5b784