summaryrefslogtreecommitdiff
path: root/spec/bundler
AgeCommit message (Collapse)Author
2021-10-13[rubygems/rubygems] Improve error messages in gem helpersDavid Rodríguez
Previously they were printing the original command that was run, and telling the user to rerun it. However, the command sometimes would not match the exact command that was run (for example, when using the `--local` flag), and in any case, it's simpler and more useful to print the underlying error anyways. https://github.com/rubygems/rubygems/commit/5bc0d51b58
2021-10-13[rubygems/rubygems] Fix `bundle install` crash due to an incorrectly ↵David Rodríguez
incomplete resolve In case we have a corrupted lockfile that claims to support a platform, but it's missing platform specific gems for it, bundler has a check that detects the situation and forces a re-resolve. The result of this check is kept under the `@locked_specs_incomplete_for_platformn` instance variable in `Definition`. The installer, however, calls `Definition#nothing_changed?` before this instance variable has been filled, so the result of it is actually incorrect here since it will claim that nothing has changed, but something has changed (locked specs are incomplete for the current platform). The consequence of this incorrect result is that the installer thinks it can go on without re-resolving, resulting in the incomplete resolution from the lockfile being used, and in a crash being triggered due to that. The solution is to make sure the `@locked_specs_incomplete_for_platform` instance variable is filled before `nothing_changed?` gets called. Moving it to `initialize` makes the most sense, not because it's the best place for it (we can refactor this later), but because all of the other "outdated definition" checks are already set there. https://github.com/rubygems/rubygems/commit/708afdd789
2021-10-13[rubygems/rubygems] Fix `bundle install` to force reinstallation of deleted gemsDavid Rodriguez
https://github.com/rubygems/rubygems/commit/8950631f02
2021-10-13[rubygems/rubygems] Use correct way to detect default gemsDavid Rodríguez
The other way, in particular matching a substring in the gemspec summary, is brittle and no longer used since Ruby 2.0. This needed rewriting the specs that depended on that way. https://github.com/rubygems/rubygems/commit/059dbfa971
2021-10-13[rubygems/rubygems] Remove unnecessary codeDavid Rodríguez
All supported rubygems versions implement this. https://github.com/rubygems/rubygems/commit/2130782ef6
2021-10-13[rubygems/rubygems] Make spec more realisticDavid Rodriguez
The spec was just faking an installed gemspec without any installed gem backing it up, resulting in `bundle install` claiming that the gem was already installed when it was not. https://github.com/rubygems/rubygems/commit/c35531d1c7
2021-10-11[rubygems/rubygems] Show a warning in `bundle info` if gem has been deletedDavid Rodriguez
https://github.com/rubygems/rubygems/commit/ff86cd7dd2
2021-10-11[rubygems/rubygems] Show the exact name of the gem that was deletedDavid Rodriguez
If a non exact name (matched as a regexp) is passed to `bundle info`, these strings might not match. https://github.com/rubygems/rubygems/commit/831edf1edf
2021-10-11[rubygems/rubygems] Match a more exact warning messageDavid Rodriguez
https://github.com/rubygems/rubygems/commit/80158e9d75
2021-10-11[ruby/rubygems] Get specs green on arm64-darwin-20David Rodriguez
https://github.com/rubygems/rubygems/commit/7a0bd9801d
2021-10-09Newly generated gems require Ruby 2.6.0OKURA Masafumi
In 2021, Ruby 2.5 and older are EOL. We can set the default required Ruby version to 2.6.0 to encourage people to use newer Ruby. If the command is executed with old Ruby, it falls back to 2.3.0. It's still possible to create a gem for older Ruby just by changing two lines of code (one in gemspec and another is in rubocop.yml).
2021-10-09[rubygems/rubygems] I see no harm in this, allow itDavid Rodríguez
https://github.com/rubygems/rubygems/commit/01feb40283
2021-10-09[rubygems/rubygems] `git commit` no longer needs to be allowed to failDavid Rodríguez
https://github.com/rubygems/rubygems/commit/12af03d32f
2021-10-09[rubygems/rubygems] Let `update_git` work with whatever branch is checkout outDavid Rodríguez
Unless the `:branch` option is passed. It's more efficient, and it results in less hardcoding of "master". https://github.com/rubygems/rubygems/commit/aa5c3409ab
2021-10-09[rubygems/rubygems] Make adding files and committing into a single commandDavid Rodríguez
For efficiency. https://github.com/rubygems/rubygems/commit/979d1634dd
2021-10-09[rubygems/rubygems] Keep different code in custom branch in dummy repoDavid Rodríguez
This doesn't affect the outcome of the test, but it makes the `git commit` command inside `update_git` not fail because of not having anything to commit. https://github.com/rubygems/rubygems/commit/ad0160ed97
2021-10-09[rubygems/rubygems] Fix typoDavid Rodríguez
We want to update the original repo, not a fresh one. This went undetected because the `git commit` command inside the `update_git` method ignores failures, and in this case it was failing because all files are untracked in the new repo. I will fix that later but for now fix the typo. https://github.com/rubygems/rubygems/commit/c889f1d715
2021-10-09[rubygems/rubygems] Improve performance of Specification#missing_extensions?Masataka Pocke Kuwabara
https://github.com/rubygems/rubygems/commit/90c1919f94
2021-10-09[rubygems/rubygems] Add glob infomation to Bundler::Source::Git#to_sgabriele renzi
The glob information was not specified in the string representation for a source, which led to non-deterministic behaviour when generating the lockfile, since sources are sorted by this value. https://github.com/rubygems/rubygems/commit/493b880abc
2021-09-22[rubygems/rubygems] Fix possible malicious website to example.comfiveNinePlusR
example.com is the canonical stand in for domain examples and will never have a backing website. via https://www.rfc-editor.org/rfc/rfc2606.html https://github.com/rubygems/rubygems/commit/26622c81c2
2021-09-17[rubygems/rubygems] Trigger install command by default on removeJose Galisteo
Closes https://github.com/rubygems/rubygems/issues/4889 https://github.com/rubygems/rubygems/commit/2b1754479c
2021-08-31[rubygems/rubygems] Remove `syck` traces from `bundler`David Rodríguez
Same reason as in the previous commit. https://github.com/rubygems/rubygems/commit/f00a6c8516 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix `bundle plugin install` misdetection of installed ↵David Rodríguez
versions https://github.com/rubygems/rubygems/commit/9c88db949d Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Normalize setting `GEM_PATH`David Rodríguez
https://github.com/rubygems/rubygems/commit/4188ebd568 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Make plugin installation idempotentDavid Rodríguez
The error had not be caught be specs because `bundle install` was returning a zero exit code when plugin installation errors happened. So I fixed that issue too. https://github.com/rubygems/rubygems/commit/90cde87856 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Correctly redact credentials when using x-oauth-basicMatt Larraz
https://github.com/rubygems/rubygems/commit/290b6ab078 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix `bundle check` showing duplicated gemsDavid Rodríguez
If the lockfile contains multiple platforms, `bundle check` would show duplicated missing gems. https://github.com/rubygems/rubygems/commit/6ac5931783 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Restore working `bundle check` behaviourDavid Rodríguez
As part of a recent bug fix where bundler was accidentally hitting the network when not supposed to, I made some refactoring, and the commit I'm reverting here (https://github.com/rubygems/rubygems/commit/d74830d00bb541883377992f56818620a78930b0) was some cleanup that those refactorings allowed according to "past me". That was completely wrong, `bundle check` should never consider cached gems, only installed gems, so the code that was removed was necessary. https://github.com/rubygems/rubygems/commit/5483e98305 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix some failing Bundler tests with old Git.Jun Aruga
Use the `git branch --list` rather than the `git branch -l` for better compatibility. Because the `git branch -l` is used to create a new branch in Git version < 2.20.0. https://github.com/rubygems/rubygems/commit/eac5be7d06 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Respect `BUNDLE_USER_HOME` for global config locationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/58fc31442f Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Disable `RUBYGEMS_GEMDEPS` for bundler spec runDavid Rodríguez
Running `bundler` specs using `bundler` is not supported. https://github.com/rubygems/rubygems/commit/cc97b6773d Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove `RUBYGEMS_GEMDEPS` warningDavid Rodríguez
When setting the `RUBYGEMS_GEMDEPS` environment variable to allow skipping `bundle exec`, `bundler` will print a warning about potential incompatibility. Initially the `RUBYGEMS_GEMDEPS` variable used a completely different (re)implementation of `bundler` functionality. That implementation was not battle tested and could potentially differ in behaviour from what `bundler` does. That's why print a warning. However, these days, all `rubygems` does when `RUBYGEMS_GEMDEPS` is set is to require `bundler/setup`, so there's no risk of any incompatibility, since that's just plain `bundler`. https://github.com/rubygems/rubygems/commit/bbddc27016 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Expect the right permissions on WindowsDavid Rodríguez
Given Windows doesn't have executable bit. https://github.com/rubygems/rubygems/commit/35dc3fa845 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix git repo initialization on a path with spacesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a2d6e10192 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Simplify overkill usage of shared examplesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/36a00144b9 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Deprecate `bundle exec --no-keep-file-descriptors`David Rodríguez
https://github.com/rubygems/rubygems/commit/591466d512 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Exclude gemspec file itself from gemNobuyoshi Nakada
The processed YML data is included as metadata, the source gemspec file is unused and just confusing. https://github.com/rubygems/rubygems/commit/f444478eac Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] typos in UI messages: fix a couple missing spaces ↵Tim Sutton
between sentence breaks https://github.com/rubygems/rubygems/commit/5cdda53382 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] The `--local` flag to `bundle install` shouldn't hit the ↵David Rodríguez
network If the cache was missing, `bundler` would try to re-fetch it. With the `--local` flag, it should just look at installed gems. https://github.com/rubygems/rubygems/commit/630d29c69e Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Requiring `bundler/setup` shouldn't try to hit the networkDavid Rodríguez
https://github.com/rubygems/rubygems/commit/06f5efce02 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Improve "gem not found in source" errorsDavid Rodríguez
When printing sources inside these error messages, it's useful to only consider the current state of the source. For example, when requiring `bundler/setup`, the source shouldn't be configured to be able to hit the network, so the error message should only mention "locally installed gems" to make that more clear. https://github.com/rubygems/rubygems/commit/30eb14f853 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove redundant part of error messageDavid Rodríguez
It doesn't really add much, in my opinion. We want to be helpful, but also concise when possible. https://github.com/rubygems/rubygems/commit/9d56009cf7 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix standalone generated script to deal with path sourcesDavid Rodríguez
In the case of path sources, the path the source is pointing to should be added directly to the `$LOAD_PATH` without any modifications. https://github.com/rubygems/rubygems/commit/d3bba936f0 Co-authored-by: Daniel Niknam <mhmd.niknam@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove unnecessary `ruby_version` local variableDavid Rodríguez
Under some case, this variable might not end up being used, in which case running the script would print unused variable warnings. https://github.com/rubygems/rubygems/commit/bf96030362 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove unnecessary `ruby_engine` local variableDavid Rodríguez
Under some case, this variable might not end up being used, in which case running the script would print unused variable warnings. https://github.com/rubygems/rubygems/commit/a2d6392ada Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove unnecessary `path` local variableDavid Rodríguez
We can use `__dir__` directly. https://github.com/rubygems/rubygems/commit/0e6083ca94 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Respect `BUNDLE_USER_CONFIG` if setDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f28ab141af Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Fix standalone install of default gemsDavid Rodríguez
Rubygems source replacement was broken. https://github.com/rubygems/rubygems/commit/3549c122f6 Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] This spec can pass now on ruby 3David Rodríguez
TSort was released as a library so we can install it, and also other gems that are loaded by the spec. Also, Ruby on Windows apparently loads fiddle 1.0.6, so we need to also install that to make that not fail. https://github.com/rubygems/rubygems/commit/2b8dcab99e Notes: Merged: https://github.com/ruby/ruby/pull/4789
2021-08-31[rubygems/rubygems] Remove unnecessary test repositoryDavid Rodríguez
These gems are built and installed to system directly as default gems. There's no need to also build a remote repo. https://github.com/rubygems/rubygems/commit/ad9dad4c22 Notes: Merged: https://github.com/ruby/ruby/pull/4789