summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2021-10-27[rubygems/rubygems] Don't warn when a lockfile is locked to a dev versionDavid Rodríguez
Even if it's newer than the running versions. Dev versions are not released to rubygems.org, so the warning message suggests a command that doesn't work. And dev versions are currently non deterministic (2.3.0.dev can be many different versions), so the warning doesn't really make sense at the moment. https://github.com/rubygems/rubygems/commit/6f31af27ef
2021-10-26pack.c: add an offset argument to unpack and unpack1Jean Boussier
[Feature #18254] This is useful to avoid repeteadly copying strings when parsing binary formats
2021-10-26Add Class#descendantsJeremy Evans
Doesn't include receiver or singleton classes. Implements [Feature #14394] Co-authored-by: fatkodima <fatkodima123@gmail.com> Co-authored-by: Benoit Daloze <eregontp@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/4974 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-25[Feature #18239] Implement VWA for stringsPeter Zhu
This commit adds support for embedded strings with variable capacity and uses Variable Width Allocation to allocate strings. Notes: Merged: https://github.com/ruby/ruby/pull/4933
2021-10-25[rubygems/rubygems] Show proper error when previous installation of gem ↵David Rodriguez
can't be deleted Instead of showing the bug report template with an error at a random place. https://github.com/rubygems/rubygems/commit/882ad3ab57
2021-10-25[rubygems/rubygems] Show a proper error if gem path is not writableDavid Rodriguez
Instead of showing the bug report place with an error at a randome place. https://github.com/rubygems/rubygems/commit/241854ce73
2021-10-25[rubygems/rubygems] Catch up with recent error message modificationDavid Rodriguez
https://github.com/rubygems/rubygems/commit/ae374c1f31
2021-10-25[rubygems/rubygems] Manage global gem cache directlyDavid Rodriguez
Previously, it was maintained in sync with the standard cache. That was less efficient, and it caused some error messages to point to non existent files. https://github.com/rubygems/rubygems/commit/931f8cb8a9
2021-10-25[rubygems/rubygems] Simplify gem downloading inside bundlerDavid Rodriguez
We can skip most stuff in `Gem::RemoteFetcher#download`, and use `Gem::RemoteFetcher#update_cache_path` directly. This has the benefit of allowing us to remove some workarounds to support several rubygems versions, but also allows us to pass the target folder where the gem should be downloaded directly and skip the logic inside `Gem::RemoteFetcher#download` to infer the cache path. This will be useful later to fix some issues with the `global_gem_cache` feature flag. https://github.com/rubygems/rubygems/commit/8fe74a77e4
2021-10-25[rubygems/rubygems] Remove unused `let`David Rodriguez
https://github.com/rubygems/rubygems/commit/7e1316e454
2021-10-25[rubygems/rubygems] Vendor a pure ruby implementation of SHA1Jean Boussier
This allows `Source::Git` to no longer load the `digest` gem as it is causing issues on Ruby 3.1. https://github.com/rubygems/rubygems/pull/4989/commits/c19a9f2ff7
2021-10-25Make Coverage suspendable (#4856)Yusuke Endoh
* Make Coverage suspendable Add `Coverage.suspend`, `Coverage.resume` and some methods. [Feature #18176] [ruby-core:105321] Notes: Merged-By: mame <mame@ruby-lang.org>
2021-10-25fix typo [ci skip]180909
Notes: Merged: https://github.com/ruby/ruby/pull/4972 Merged-By: nobu <nobu@ruby-lang.org>
2021-10-25Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiverTSUYUSATO Kitsune
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/1509 Merged-By: nobu <nobu@ruby-lang.org>
2021-10-22Refinement#include and Refinement#prepend have been deprecatedNobuyoshi Nakada
2021-10-22Refinement#include and Refinement#prepend have been deprecatedNobuyoshi Nakada
2021-10-20Fix tests with cppflags=-DYJIT_FORCE_ENABLETakashi Kokubun
https://github.com/ko1/build-ruby/commit/0dbd95c6250594b6ddadc3c4424b071704083187
2021-10-20Update to ruby/spec@254c380Benoit Daloze
2021-10-20Add extra files from ruby/spec which were skipped due to .gitignoreBenoit Daloze
2021-10-20Update to ruby/spec@d6921efBenoit Daloze
2021-10-20Update to ruby/mspec@08e1275Benoit Daloze
2021-10-18Fix error when srcdir not foundNobuyoshi Nakada
So that `spec/mspec/bin/mspec --help` works at least.
2021-10-18Simplify srcdir fallbackNobuyoshi Nakada
2021-10-18Not all environment variables can be convertible to IBM-437Nobuyoshi Nakada
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-13Fix a typoKazuhiro NISHIYAMA
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-10Use an isolated classNobuyoshi Nakada
The number of all instances of `Class` may be affected by GC-able anonymous classes created by other tests.
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-10-08Remove autoload for constant if the autoload failsJeremy Evans
Previously, if an autoload failed (the file was loaded, but the constant was not defined by the autoloaded file). Ruby will try to autoload again if you delete the autoloaded file from $LOADED_FEATURES. With this change, the autoload and the constant itself are removed as soon as it fails. To handle cases where multiple threads are autoloading, when deleting an autoload, handle the case where another thread already deleted it. Fixes [Bug #15790] Notes: Merged: https://github.com/ruby/ruby/pull/4715 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-07Followed up bd6e1a0f0883dba7b02f30cefe5ebec96d02cb90Hiroshi SHIBATA
2021-10-06Remove the useless platform guardNobuyoshi Nakada
2021-10-06Fix filesystem dependent testsNobuyoshi Nakada
Ruby cannot guarantee the resolutions of underlying filesystems.
2021-10-05Update to ruby/spec@ccf0d85Benoit Daloze