summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2023-10-30[rubygems/rubygems] Relax matching pattern for rake versionHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a89f74c27e
2023-10-26Windows: Prefer USERPROFILE over HOMEPATHLars Kanis
Enable the test commented out in ruby/ruby@d0f5dc9eac78ecade459. Extracted from GH-7033, that is for initialization at start up time and this test is unrelated to it.
2023-10-25[rubygems/rubygems] Handle CI configuration on ignore list for ↵Hiroshi SHIBATA
Gem::Specification#files https://github.com/rubygems/rubygems/commit/4bb0ef3e55
2023-10-24[rubygems/rubygems] Handle empty arrayHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/7c0afdd9af
2023-10-23[rubygems/rubygems] Handle base64 encoded checksums in lockfile for future ↵Martin Emde
compatibility. Save checksums using = as separator. https://github.com/rubygems/rubygems/commit/a36ad7d160
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
2023-10-23[rubygems/rubygems] Refactor to checksums stored via sourceSamuel Giddins
This gets the specs passing, and handles the fact that we expect checkums to be pinned only to a particular source This also avoids reading in .gem files during lockfile generation, instead allowing us to query the source for each resolved gem to grab the checksum Finally, this opens up a route to having user-stored checksum databases, similar to how other package managers do this! Add checksums to dev lockfiles Handle full name conflicts from different original_platforms when adding checksums to store from compact index Specs passing on Bundler 3 https://github.com/rubygems/rubygems/commit/86c7084e1c
2023-10-23[rubygems/rubygems] Use the server checksum, then calculate from gem on disk ↵Mercedes Bernard
if possible 1. Use the checksum provided by the server if provided: provides security knowing if the gem you downloaded matches the gem on the server 2. Calculate the checksum from the gem on disk: provides security knowing if the gem has changed between installs 3. In some cases, neither is possible in which case we don't put anything in the checksum and we maintain functionality as it is today Add the checksums to specs in the index if we already have them Prior to checksums, we didn't lose any information when overwriting specs in the index with stubs. But now when we overwrite EndpointSpecifications or RemoteSpecifications with more generic specs, we could lose checksum info. This manually sets checksum info so we keep it in the index. https://github.com/rubygems/rubygems/commit/de00a4f153
2023-10-23[rubygems/rubygems] Add CHECKSUMS for each gem in lockfileThong Kuah
We lock the checksum for each resolved spec under a new CHECKSUMS section in the lockfile. If the locked spec does not resolve for the local platform, we preserve the locked checksum, similar to how we preserve specs. Checksum locking only makes sense on install. The compact index information is only available then. https://github.com/rubygems/rubygems/commit/bde37ca6bf
2023-10-22[rubygems/rubygems] Fix spelling of extraneousMartin Emde
https://github.com/rubygems/rubygems/commit/af61829432
2023-10-17[rubygems/rubygems] Don't hide original error in `after(:suite)` hookDavid Rodríguez
For some reason, Windows builds are failing quite consistently now. However, it seems that errors are happening before this directory is even created, so removal fails, hiding the original error. Instead, don't let this removal fail due to files not existing. https://github.com/rubygems/rubygems/commit/7669d6c96e
2023-10-16[rubygems/rubygems] Raise an error when top level dependency does not ↵David Rodríguez
resolve under all locked platforms https://github.com/rubygems/rubygems/commit/25304f3e8d
2023-10-16[rubygems/rubygems] Automatically remove invalid platforms before re-resolvingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/40989271dd
2023-10-16[rubygems/rubygems] Tweak platform mismatch resolution errorsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/20460bc1ee
2023-10-16[rubygems/rubygems] The `lock` command should not be affected by frozen settingDavid Rodríguez
The `lock` command is specifically designed to manage the lockfile, so running it should take precedence over any "frozen" setting. Besides that, "frozen" is not specifically designed as "lockfile cannot be updated" but as "installation of gems should be prevented if gemfile is not in sync with the lockfile". The lock command does not install any gems and preserves the property of the lockfile being in sycn with its gemfile, so I think frozen should not influence it. The current behavior is quite confusing when frozen is set. On an app where rubocop can get lockfile updates ``` $ bundle lock --update rubocop Writing lockfile to /path/to/Gemfile.lock ``` Completely silent, it makes you think that it has written the lockfile, but still no updates. In verbose mode, it gives a bit more information, but still confusing and unexpected, and does not change the lockfile: ``` $ bundle lock --update rubocop --verbose Running `bundle lock --update "rubocop" --verbose` with bundler 2.4.20 Frozen, using resolution from the lockfile Writing lockfile to /path/to/Gemfile.lock ``` With this commit, it updates the lockfile as expected. https://github.com/rubygems/rubygems/commit/1d501ae8ea
2023-10-16Re-resolve when lockfile is invalidDavid Rodriguez
Move the check for unmet dependencies in lockfile just in time to be able to re-resolve if unmet dependencies are found.
2023-10-15[rubygems/rubygems] Fix force_ruby_platform: when the lockfile only locks ↵Samuel Giddins
the ruby platform https://github.com/rubygems/rubygems/commit/7c50064c3c
2023-10-13Removed examples for warning bundled gemsHiroshi SHIBATA
2023-10-12M:N thread scheduler for RactorsKoichi Sasada
This patch introduce M:N thread scheduler for Ractor system. In general, M:N thread scheduler employs N native threads (OS threads) to manage M user-level threads (Ruby threads in this case). On the Ruby interpreter, 1 native thread is provided for 1 Ractor and all Ruby threads are managed by the native thread. From Ruby 1.9, the interpreter uses 1:1 thread scheduler which means 1 Ruby thread has 1 native thread. M:N scheduler change this strategy. Because of compatibility issue (and stableness issue of the implementation) main Ractor doesn't use M:N scheduler on default. On the other words, threads on the main Ractor will be managed with 1:1 thread scheduler. There are additional settings by environment variables: `RUBY_MN_THREADS=1` enables M:N thread scheduler on the main ractor. Note that non-main ractors use the M:N scheduler without this configuration. With this configuration, single ractor applications run threads on M:1 thread scheduler (green threads, user-level threads). `RUBY_MAX_CPU=n` specifies maximum number of native threads for M:N scheduler (default: 8). This patch will be reverted soon if non-easy issues are found. [Bug #19842]
2023-10-11[rubygems/rubygems] Update incorrect comments.Ellen Marie Dash
https://github.com/rubygems/rubygems/commit/6b21f593f3
2023-10-11[rubygems/rubygems] Simplify logic for Gem::PathSupport#home, and make ↵Ellen Marie Dash
GEM_HOME always overide it. https://github.com/rubygems/rubygems/commit/64273fd7e3
2023-10-11[rubygems/rubygems] Split out Gem::PathSupport#default_home_dir to fix ↵Ellen Marie Dash
"bundle doctor" specs. https://github.com/rubygems/rubygems/commit/d7f3f901f1
2023-10-11[rubygems/rubygems] Don't delete the release version from pre-release string ↵Martin Emde
more than once https://github.com/rubygems/rubygems/commit/6485adda54
2023-10-09[rubygems/rubygems] Exempt default gem 'etc' in setup tests for rubies ↵Martin Emde
before 3.2 on windows https://github.com/rubygems/rubygems/commit/834ae8a29a
2023-10-09[rubygems/rubygems] Avoid duplicates -rbundler/setup in RUBYOPT with Ruby ↵Jacopo
preview When using a Ruby preview the require path of `bundler/setup` is similar to `-r/opt/ruby3.3.0-preview2/lib/ruby/3.3.0+0/bundler/setup`. The special character `+` in the string makes the Regexp fail, leading to multiple addition of the same require statement each time `set_rubyopt` is called (e.g. server reloading). Escaping the characters in the string esure a correct match with all the different Ruby versions. https://github.com/rubygems/rubygems/commit/dd43dfa709
2023-10-04BigDecimal#to_s has not changed for fraction partNobuyoshi Nakada
The test for integer part was separated at dc54574adefe.
2023-10-03[rubygems/rubygems] Prevent gem activation in standalone modeDaniel Colson
As discussed in https://github.com/rubygems/rubygems/issues/6273#issuecomment-1449176658 The `gem` method behaves awkwardly in standalone mode. Assuming bundler isn't loaded at all, a call to gem might activate a gem that is not part of the bundle (because it's the gem method defined in lib/rubygems/core_ext/kernel_gem.rb and not lib/bundler/rubygems_integration.rb). And when running with `--disable-gems`, the gem method won't be defined at all so we'll get a NoMethodError. Calls to `gem` can appear in dependencies outside an application's control. To work around this at GitHub we defined our own `Kernel#gem` that no-ops. I agree with https://github.com/rubygems/rubygems/issues/6273#issuecomment-1440755882 > people using standalone mode don't want to activate gems like Kernel.gem This commit redefines `Kernel#gem` in the standalone script to no-op. https://github.com/rubygems/rubygems/commit/bea17b55f1
2023-10-03[rubygems/rubygems] Don't re-resolve with prereleases if unlocked gem has no ↵David Rodriguez
prereleases https://github.com/rubygems/rubygems/commit/d76dc70d90
2023-10-03[rubygems/rubygems] Fix typoDavid Rodriguez
https://github.com/rubygems/rubygems/commit/64e7a2656a
2023-10-03[rubygems/rubygems] 🐛 Specification of branch or ref with tag is ambiguousPeter Boling
- Specs for GitProxy were incorrect and insufficient - Specs are now correct and less insufficient https://github.com/rubygems/rubygems/commit/63d0a8cfd0
2023-10-03[rubygems/rubygems] 🚨 Rubocop LintingPeter Boling
https://github.com/rubygems/rubygems/commit/2851e051c3
2023-10-03[DOC] State the precision of `Process.times` as platform-definedNobuyoshi Nakada
Remove the bad example that can lead to misunderstanding as if this precision is defined in Ruby.
2023-10-03Check by integer modulo instead of float stringNobuyoshi Nakada
2023-10-02[rubygems/rubygems] Support Ruby's preview version format (Ex: ↵Harshal Bhakta
3.3.0-preview2) in Gemfile https://github.com/rubygems/rubygems/commit/4c1a0511b6
2023-10-02[rubygems/rubygems] Include gemspec in ExtensionTask for native gem tasksGraham Marlow
https://github.com/rubygems/rubygems/commit/042cfb7007
2023-09-30Fix failures when all network interfaces are downNobuyoshi Nakada
2023-09-27[rubygems/rubygems] Reword a couple of error messagesDavid Rodriguez
When a path does not make a lot of sense. https://github.com/rubygems/rubygems/commit/d173c79e9a
2023-09-27[rubygems/rubygems] Fix bundle install when older revisions of git sourcekrororo
https://github.com/rubygems/rubygems/commit/a30712c0fc
2023-09-27[rubygems/rubygems] Fix `bundle lock --minor --update <dep>` edge caseDavid Rodriguez
When the latest allowed minor of `dep` adds a new dependency, that new dependency would be incorrectly resolved to the latest minor of the first major version. https://github.com/rubygems/rubygems/commit/fd50c9d4f3
2023-09-21[rubygems/rubygems] Stop bundler eagerly loading all specs with extsSamuel Giddins
We were setting the wrong `extension_dir` for git specs stubs Additionally, the call to `self.extension_dir` was loading the remote spec, which was avoidable since the stub had an extension dir (and in fact its #gem_build_complete_path does exactly what we want anyway) Finally, now set the base_dir when loading the remote_spec from a stub specification, since the git source sets the base dir for stubs based on where the spec _will_ be installed to, and we want to preserve that so the base_dir for the loaded spec & the stub are the same https://github.com/rubygems/rubygems/commit/a94acb465b
2023-09-20[rubygems/rubygems] Bundler error handlingSamuel Giddins
https://github.com/rubygems/rubygems/commit/63b422b71a
2023-09-20[rubygems/rubygems] Fix bundler specs using safe_loadSamuel Giddins
https://github.com/rubygems/rubygems/commit/ccb1bb5d3a
2023-09-14[rubygems/rubygems] Gemfile ruby file: covers more version formatsMartin Emde
Increase test coverage and be explicit about what is and is not supported. https://github.com/rubygems/rubygems/commit/a096397a00
2023-09-12Adjust CGI spec to pass when ran in isolationAlan Wu
It failed with `NameError` because `Html3` is defined in the file that `CGI::HtmlExtension` autoloads.
2023-09-12[rubygems/rubygems] Unify LockfileParser loading of SPECS sectionMartin Emde
Ensure unrecognized SPECS types are ignored https://github.com/rubygems/rubygems/commit/5b33e91075
2023-09-12Make Kernel#lambda raise when given non-literal blockAlan Wu
Previously, Kernel#lambda returned a non-lambda proc when given a non-literal block and issued a warning under the `:deprecated` category. With this change, Kernel#lambda will always return a lambda proc, if it returns without raising. Due to interactions with block passing optimizations, we previously had two separate code paths for detecting whether Kernel#lambda got a literal block. This change allows us to remove one path, the hack done with rb_control_frame_t::block_code introduced in 85a337f for supporting situations where Kernel#lambda returned a non-lambda proc. [Feature #19777] Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/8405
2023-09-04Update to ruby/spec@96d1072Benoit Daloze
2023-09-04Update to ruby/mspec@55d1a62Benoit Daloze
2023-09-01[rubygems/rubygems] Use assertion message strictlyHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/98da5b9826