Platform specific versions of ffi-1.17.2 are not compatible with Ruby
3.5, so Bundler fails to resolve in Ruby 3.5 using recorded VCR
responses.
Use the generic version of ffi-1.17.2, which should work for all rubies,
consistently to fix that.
a192f7e35d
The generic Ruby platform was getting unconditionally added in
truffleruby, preventing resolution in situations where there's no
generic ruby version (sorbet-static). Instead, the generic platform
should be considered per dependency, not globally.
a96afc5351
There are several issues with these which I'm not sure I'll have time to
address properly. I prefer to keep our default branch in a releasable
state just in case. Once they are fixed, this can be reverted.
We now run specs against a single version, so I prefer to keep a single
branch. Once we bump the major version, this will need very little
updates, and that seems fine.
3866d25a00
- The `bundle plugin uninstall --all` was missing.
- The `bundle plugin install --local-git` was missing due to being
deprecated. We decided to reintroduce the doc for more clarity.
4da252945c
- Ref #8802
- ### Problem
Whenever a bundler command options is added, we want to make
sure that the associated command man page is updated to reflect
the new option (e.g. this mistake was made in #8624)
### Solution
In #8802 we discussed a bit on the implementation which would rely
on parsing ronn files and introduce some conventions on how options
documented in man pages should be written.
I figured I would try a simpler approach by just checking if the man
page of a command list options using a simple regex.
Pros:
- Simpler as we don't have to parse ronn files.
- No need to modify all existing man pages.
Cons:
- We can only verify one way (CLI options -> man pages).
If a CLI option get removed, we won't be able to warn that
the existing document man page option needs to be removed.
e10e60bd33
Running everything in `bundled_app` by default causes the `bundled_app`
helper to be used everytime, and that will create a scoped bundled_app
folder if it does not exist. That causes `bin/rake spec:deps` to create
an empty `tmp/2.1/bundled_app` folder which is a bit weird.
This commit changes specs to not switch to a (possibly empty)
bundled_app directory when not necessary (for example, when running
`gem` commands in order to setup test dependencies).
4bf89c0705
* Add support for `cause:` argument to `Fiber#raise` and `Thread#raise`.
The implementation behaviour is consistent with `Kernel#raise` and
`Exception#initialize` methods, allowing the `cause:` argument to be
passed to `Fiber#raise` and `Thread#raise`. This change ensures that
the `cause:` argument is handled correctly, providing a more consistent
and expected behavior when raising exceptions in fibers and threads.
[Feature #21360]
* Shared specs for Fiber/Thread/Kernel raise.
---------
Co-authored-by: Samuel Williams <samuel.williams@shopify.com>
I realized `--redownload` is not a good name, because it does not
necessarily redownloads gems. It only forces reinstallation even if gem
is already installed.
So I believe `--force` is actually a better name and the introduction of
`--force` was a misunderstanding of what the `--force` flag did at the
time.
Let's cancel the deprecation of `--force`.
For now the `--redownload` alias is left around until we decide what to
do with it.
These two specs need the version of Bundler to be faked to pass. In one
of them we're doing it already, and in the other one it will be needed
when bumping the major version of Bundler. So they are no longer truly
realworld anymore.
Realworld specs are hard to maintain, particularly the ones that depend
on the version of Bundler itself, so I'm slowly moving away from them.
I checked the changes that introduced them and I believe it's really
unlikely that any of these catches turns out to be the only spec to
catch a resolver regression. We've completely changed the resolution
engine since and a lot of extra coverage has been added so I believe
it's fine to let these two go.
a363f0168c
If you abort running test suite with a quick double Ctrl-C, tmp files
will be left around, and they will interfere with the next test run.
To avoid this, make sure to clear them once at the beginning of the test
suite.
### Before
```
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.............................................................................................^C^C
Finished in 19.45 seconds (files took 0.42722 seconds to load)
94 examples, 0 failures
(... turbo tests backtrace ...)
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.F....F....F...F......^C
Failures:
(... failures' details ...)
```
### After
```
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
.................................................................................^C^C
Finished in 18.18 seconds (files took 0.4383 seconds to load)
82 examples, 0 failures
(... turbo tests backtrace ...)
$ bin/parallel_rspec
16 processes for 175 specs, ~ 11 specs per process
................................................................................^C^C
Finished in 8.79 seconds (files took 0.45187 seconds to load)
80 examples, 0 failures
(... turbo tests backtrace ...)
```
6767a52711
This should be a minimal C-API needed to deal with Set objects. It
supports creating the sets, checking whether an element is the set,
adding and removing elements, iterating over the elements, clearing
a set, and returning the size of the set.
Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
... to conform to UTS 18 as mentioned in https://bugs.ruby-lang.org/issues/19417#note-3https://unicode.org/reports/tr18/#word states word should match join_control chars.
It currently does not:
```ruby
[*0x0..0xD799, *0xE000..0x10FFFF].map { |n| n.chr 'utf-8' } => all_chars
all_chars.grep(/\p{join_control}/) => jc
jc.count # => 2
jc.grep(/\p{word}/).count # => 0
```
* Conditionally set changelog_url if gh username passed
and enabled
* conditionally set homepage, source code uri, homepage uri when gh
username passed in
* update documentation to say username will also be used for gemspec file
1c1ada593b
It only affected the `--path` flag which is actually getting removed, so
I don't think it makes sense to make such change. The current behavior
is reasonable and I tried to codify it with a few more specs.
6f520eb146
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 d7291700d0, 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.
cc506f17e0
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.
9410ceb36b
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.
d32ed63d6f