Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix negative Bignum conversion #200

Merged
merged 3 commits into from
Nov 12, 2021
Merged

Conversation

casperisfine
Copy link

Fix: #199

Introduced in 4792a91

rb_absint_size return the number of bytes needed to fit the absolute integer, but negative integers need the sign, so one more bit, and potentially one more byte.

I would have expected the same bug to happen between LONG_MIN and -ULONG_MAX but somehow I couldn't reproduce it.

Introduced in 4792a91

`rb_absint_size` return the number of bytes needed to fit
the absolute integer, but negative integers need the sign, so one more
bit, and potentially one more byte.
@casperisfine
Copy link
Author

I modified the PR a bit, turns out rb_absint_size() second parameter gives us the number of leading zero bits. So we can know precisely wether we have enough space for a signed number.

@mrkn mrkn merged commit 14e35f5 into ruby:master Nov 12, 2021
@casperisfine casperisfine deleted the handle-min-long branch December 2, 2021 11:30
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 2, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 2, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 2, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 2, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 3, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 3, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
casperisfine pushed a commit to casperisfine/rubygems that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 6, 2021
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.

So for instance ruby/bigdecimal#211 will look like:

```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # ruby/bigdecimal#200
```

It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

If I could simply use the PR URL like this:

```
gem "bigdecimal", github: "ruby/bigdecimal#211"
```

It would make a very common task for me so much simpler.

rubygems/rubygems@517c527751
queilawithaQ added a commit to queilawithaQ/rubygems that referenced this pull request Dec 10, 2021
commit 68c587eb9de40f6ad2d6db746eda1e96a07a3b59
Merge: 68c2f5956 64798118d
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 12:20:08 2021 -0500

    Merge remote-tracking branch 'origin/1.8'

commit 68c2f59568ae64dbce437cd33ba78b21c39ae3e7
Merge: bd2f607af c6a2c7d25
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:49:37 2021 -0500

    Merge remote-tracking branch 'origin/improve_bundler_installer'

commit bd2f607afcb8b0371b0fbe3397f0700c7f81f7fc
Merge: c2b479b02 63233b877
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:48:43 2021 -0500

    Merge branch 'master' into force_ruby_platform_per_gem

commit 63233b877aefafc1739d4e7a484e4ed3c91df72d
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:46:12 2021 -0500

    Squashed commit of the following:

    commit ca5ce6538f75eef53b22e6a5f17268b0460a7856
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Wed Mar 24 11:44:59 2021 +0100

        Re-clone if we have a shallow clone and the situation requires a full clone

        For example, it the `ref:` specification was changed to something that
        requires a full clone like a non fully qualified raw reference (not 40
        hex characters).

    commit 1a0f6e98ae8bbefb638944bf3676beda7d9107e0
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Tue Mar 23 16:36:55 2021 +0100

        Don't clone whole repos for git sources

        Instead, clone only what's strictly necessary. This means:

        * Cloning shallow repositories using `--depth 1`.
        * Passing a specific refs to `git fetch`, including the proper depth if
          `ref~<n>` notation is used.

        Now all "ref validation" happens in the `checkout` method, which allows
        to simplify some logic.

        Cloning big repositories should be now significantly faster and use much
        less disk space. For example, on my maching bundling edge rails goes
        from:

        ```
        real 0m26,123s
        user 0m39,029s
        sys 0m4,780s
        248M /home/deivid/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/cache/bundler/git/rails-fcf0202857b07db1a0f6220dae5ca99319ca0f32
        290M /home/deivid/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/bundler/gems/rails-e287eed77a2a
        ```

        to:

        ```
        real 0m6,326s
        user 0m3,572s
        sys 0m0,639s
        9,1M /home/deivid/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/cache/bundler/git/rails-fcf0202857b07db1a0f6220dae5ca99319ca0f32
        51M /home/deivid/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/bundler/gems/rails-e287eed77a2a
        ```

    commit 8e53b03f502a2d7329d6b1ac70a612e83c9e2700
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Wed Mar 24 12:34:29 2021 +0100

        Small refactoring

        Extract some common logic to `configured_uri` and
        `credential_filtered_uri`.

    commit 0c37f0d14397b51606a000226e0d789e408214ce
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Wed Mar 24 12:33:49 2021 +0100

        Remove misleading part of comment

        That method doesn't exist.

    commit 4a1123166dd6b2ce4c45b081a0bd9e02be719981
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Tue Mar 23 12:15:35 2021 +0100

        Don't use `git_retry` for local fetching

        I don't think it's needed and it makes errors unnecessarily verbose.

    commit 7c9c863cd5c7a085fc81988a89072f7b5461050e
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Tue Mar 23 10:57:16 2021 +0100

        Remove unnecessary `bundle config` command from spec

        It was just run a few lines above.

    commit 47e24343e1b060df7e2cb20e76e632d5516e2723
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Tue Mar 23 10:48:44 2021 +0100

        The target path is guaranteed to exist at this point

        Since we just cloned the repo.

    commit 76ff8a193fb6960f52838901b1b76bcf31c7eb65
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Mon Mar 22 22:21:23 2021 +0100

        Remove `--no-hardlinks` option to `git clone`

        It seems to only have the effect to taking up more disk space, I don't
        think it's really needed.

    commit 9079e45f6a3f14e905f0f777787773e2871fe284
    Author: David Rodríguez <deivid.rodriguez@riseup.net>
    Date:   Mon Mar 22 18:57:37 2021 +0100

        Remove misleading comments

        These are not two alternatives to do the same thing, but two separate
        steps.

commit 6cf4fc61154013143de05594a06921efc297d1cf
Merge: 5377ff129 b412f7a71
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:44:35 2021 -0500

    Merge remote-tracking branch 'origin/1.7'

commit 5377ff1296de313d303df99b7c728ac2a3ad327d
Merge: 270457870 e2e85fc24
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:37:25 2021 -0500

    Merge remote-tracking branch 'upstream/bundler_specs'

commit 270457870ceb3257ad2bc790b0b037e20790c744
Merge: 38453e830 5f9f28260
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:32:55 2021 -0500

    Merge remote-tracking branch 'origin/gem_install_respects_required_ruby_version'

commit 38453e830141bbc52aea90e22cd769265037ac0b
Merge: c93bb1e21 997b16173
Author: loca <queilawithaq@aol.com>
Date:   Fri Dec 10 00:31:44 2021 -0500

    Merge remote-tracking branch 'upstream/run_subprocesses_without_shell'

commit c93bb1e212b5e8b2ef8a4c1d750fa979cfcab4d7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Dec 9 12:46:23 2021 +0100

    Resolve symlinks in LOAD_PATH when activating pre-required default gems

    Some double load issues were reported a while ago by OS packagers where
    if a gem has been required before rubygems, and then after, rubygems
    require would cause a double load.

    We avoid this issue by activating the corresponding gem if we detect
    that a file in the default LOAD_PATH that belongs to a default gem has
    already been required when rubygems registers default gems.

    However, the fix does not take into account that the default LOAD_PATH
    could potentially include symlinks. This change fixes the same double
    load issue described above but for situations where the default
    LOAD_PATH includes symlinks.

commit 60a2ac15bbbf6219b3daa45d538d8cc049f61f78
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Dec 9 06:08:31 2021 +0100

    Install default fiddle on latest ruby on specs that need it

    Otherwise first OS customizations load and activate that fiddle version,
    but then when we change to `Gem.default_dir`, that fiddle version is no
    longer there.

commit 0e9336ed663f3a8fa542ea7f381d2af9dd884390
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 8 21:45:16 2021 +0100

    Load `operating_system.rb` customizations before setting up default gems

    It's very common for packagers to configure gem paths in this file, for
    example, `Gem.default_dir`. Also, setting up default gems requires these
    paths to be set, so that we know which default gems need to be setup.

    If we setup default gems before loading `operatin_system.rb`
    customizations, the wrong default gems will be setup.

    Unfortunately, default gems loaded by `operating_system.rb` can't be
    upgraded if we do this, but it seems much of a smaller issue. I wasn't
    even fully sure it was the right thing to do when I added that, and it
    was not the culprit of the end user issue that led to making that
    change.

commit 3875f0faa01dfbd42c8c0eae5f75d5f3c6c02c18
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 8 22:30:36 2021 +0100

    Load a dummy implementation customization

    So that it doesn't interfere with this test if it exists.

commit a0905bb652dd8e0145eae96c13a6a103221b08de
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 8 21:17:30 2021 +0100

    Remove ineffective autoloads

    These files are loaded on startup unconditionally, so we can require
    them relatively when needed.

commit 22b7417b17b0a693c8007c3903a423170d3fd6bd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 8 21:12:24 2021 +0100

    More explicit require

    This class does not use `rubygems/deprecate`. It uses
    `rubygems/version`, which in turn uses `rubygems/deprecate`. Make this
    explicit.

commit 54b558c918b7c2c92fcb1c6313f5d56c67f91060
Merge: ea8a61cf6 f5e0b68cd
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Thu Dec 9 00:58:17 2021 +0100

    Merge pull request #5155 from rubygems/dont_load_system_rubygems

    Don't load system rubygems during tests

commit f5e0b68cdd9306727c228bc72b48ef4858995dd5
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 8 22:33:55 2021 +0100

    Don't load system rubygems during tests

    Since tests are about testing our development copy of rubygems, not
    whatever is installed in the system.

commit ea8a61cf621fab4df6848f9a80eba0c8a0ce60da
Merge: 9ba61d600 3f2bb6984
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Tue Dec 7 23:59:59 2021 +0100

    Merge pull request #5146 from rubygems/release_deps

    Add missing prerequisite for `prepare_release_branch`

commit 9ba61d60094d7149eae6a2ea7fe65e1a88f8a90c
Merge: 3444e7e3d 5e50f12e7
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Tue Dec 7 23:59:27 2021 +0100

    Merge pull request #5147 from rubygems/cancel_custom_git_source_deprecation

    Cancel deprecation of custom git sources

commit 5e50f12e7a2b31a94b80e3b5766f6dd89b16f49c
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 19:25:18 2021 +0100

    Remove unnecessary comment

commit 25ccaab46b3a157b8d652a7a8e912fd822de8893
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 19:23:22 2021 +0100

    Don't add custom github source to `bundle init` Gemfile

    It's provided by bundler.

commit 99cd6e0627978d84f8681e7e9c5db43737b06cfb
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 19:10:46 2021 +0100

    Cancel deprecation of custom git sources

commit 3f2bb69848b8b706b14d9f68891f88d2e13a15df
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 18:12:50 2021 +0100

    Add missing prerequisite for `prepare_release_branch`

commit 3444e7e3d5672d7f4fbde17eab349243e97daade
Merge: f48acfeb5 a4f2f8ac1
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 17:49:14 2021 +0100

    Merge pull request #5021 from boardfish/5017-set-require-param-in-bundle-add

    Add require parameter to `bundle add`

commit f48acfeb503ea2e8141a0899aeb1217c885acae6
Merge: f30b939f2 f819a261b
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Tue Dec 7 17:42:02 2021 +0100

    Merge pull request #5140 from rubygems/more_upgraded_default_gems_issues

    Fix upgrade crashing when multiple versions of `fileutils` installed

commit f30b939f2ca1e7937ebeb2c8bd620118c0cc9a7a
Merge: 6a655a698 f813bbc40
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Tue Dec 7 17:23:23 2021 +0100

    Merge pull request #5143 from rubygems/cherry_pick_changelogs

    Changelogs for rubygems 3.2.33 and bundler 2.2.33

commit a4f2f8ac17e6ce81c689527a8b6f14381060d95f
Author: Simon Fish <si@mon.fish>
Date:   Tue Oct 26 17:50:55 2021 +0100

    Add require parameter to `bundle add``

    Test and ensure "false" is handled

    Don't use yield_self to operate on autorequire

    Remove duplicate autorequire

    Add banner to require option

    Don't use json to break down require params

    Pass linter

commit f813bbc40af9b3ffcfabfbd87970972752a91c60
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 15:34:57 2021 +0100

    Changelog for Rubygems version 3.2.33

commit 0fad1ccfe9dd7a3c5b82c1496df3c2b4842870d3
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 15:34:48 2021 +0100

    Changelog for Bundler version 2.2.33

commit 6a655a698e952f897d0d014fc11bae4b608528ce
Merge: 370c9d70b 90b1ed8b9
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Dec 7 15:27:51 2021 +0100

    Merge pull request #5142 from rubygems/local_code_execution

    Pass "--" to git commands to separate positional and optional args

commit 90b1ed8b9f8b636aa8c913f7b5a764a2e03d179c
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Nov 13 11:18:54 2021 +0100

    Pass "--" to git commands to separate positional and optional args

    To make sure git uri's specified in Gemfile are never misinterpreted as
    optional arguments, potentially allowing for local code execution.

commit 370c9d70b10b822405799b4310d3d19ef7d0cdd0
Merge: 6d0b1ccb5 6a6ff9847
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Dec 6 21:23:29 2021 +0100

    Merge pull request #5139 from rubygems/revert_things

    Revert stuff about `Gem::Version` availability

commit f819a261bc7fab2b681227c6ae3dc55530f723b7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 19:10:37 2021 +0100

    Remove unnecessary mutexes

    These were added initially to allow for concurrent `gem install`
    commands, but these are not really supported anyways, because the
    installer first completely wipes out existing installations, and then
    unpackages files, which is obviously not thread safe. We would need a
    file lock or something to make it thread safe, but no one has ever
    complained about it so I don't think it's necessary. In any case, I
    don't think the current mutex is effective so I'll remove it.

commit ae3980eed01ed17c186ceb4094adef185864512e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 19:03:55 2021 +0100

    Don't evaluate all specifications when upgrading rubygems

commit ba7d6a5ec6f0a9c3fc0673ed1351690e5c798c58
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 18:04:13 2021 +0100

    Fix upgrade crash when multiple versions of fileutils are installed

    The issue is tricky. It happens when running `ruby setup.rb` while
    having two different versions of `fileutils` present in the system.

    There's 3 relevant moments:

    * When first loading the `update` command,  `tmpdir` is required. This
      require causes the `Gem::Specification.stubs` array to be loaded,
      because since there are more than one version of `fileutils`, which is
      a `tmpdir` dependency, `rubygems` needs to figure out which one to
      require, and needs to load stubs from disk for that.
    * Later on, when installing the upgraded default bundler gem, the
      upgrader first deletes the existing default bundler gemspec from disk
      before installing the upgraded version.
    * Finally, when plugins are being regenerated specification stubs are
      materialized into actual `Gem::Specification`'s, but since one of them
      is no longer on disk, it results on a `nil` specification being
      loaded, causing a runtime error later on when calling a specification
      method on it.

    I can think of several ways of fixing this issue:
    * Delete the existing spec after installing the new one, not before.
    * Require `tmpdir` lazily.
    * Don't materialize specs at all when regenerating plugins, since I
      don't think it's needed. All we need is their versions and names,
      which stubs already provide.

    This commit fixes the issue by implementing the second solution, but
    I'll also add the third one later, since it should make things more
    efficient (not requiring to evaluate all specifications during rubygems
    upgrade).

commit 6a6ff984754d0183b9d6eed9e924ef9f98f6c396
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 17:58:05 2021 +0100

    Partially revert 1b862537a5b501065e2710e6635bc8fc781459b0

    I did leave the explicit require of `rubygems/deprecation` in place
    because `Gem::Version` uses it and we normal keep explicit requires for
    each files dependencies.

commit 7245ae1d9c7a170b88e081e6bf6e3299ea053451
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 17:56:32 2021 +0100

    Vendor latest connection_pool master

    Our last change was reverted, so let's respect upstream decision.

commit 6d0b1ccb5d7aa5e4b01fe60dc9e72aa7a8a317d6
Merge: 112b3b923 732553054
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 17:53:31 2021 +0100

    Merge pull request #5111 from rubygems/dont_clean_load_path

    Don't cleanup paths from gems already activated from `$LOAD_PATH`

commit 112b3b923f9be83663fe1cb32cceac413c4d9379
Merge: a6332e2b4 517c52775
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Dec 6 12:27:19 2021 +0100

    Merge pull request #5126 from casperisfine/github-pr-url

    Accept pull request URLs as github source

commit 517c52775124fd470c70cad648e8004b30a7ab94
Author: Jean Boussier <jean.boussier@gmail.com>
Date:   Thu Dec 2 12:59:45 2021 +0100

    Feature: accept pull request URLs as github source

    Very often github source is used to temporarily use a modified gem
    while a PR upstream is being reviewed.

    So for instance https://github.com/ruby/bigdecimal/pull/211 will look like:

    ```ruby
    gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # https://github.com/ruby/bigdecimal/pull/200
    ```

    It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.

    If I could simply use the PR URL like this:

    ```
    gem "bigdecimal", github: "https://github.com/ruby/bigdecimal/pull/211"
    ```

    It would make a very common task for me so much simpler.

commit a6332e2b4ad584da0bb89a62668f099e5b0c4b3d
Merge: 5768c2bc5 1b862537a
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Dec 6 10:43:22 2021 +0100

    Merge pull request #5136 from rubygems/require_gem_version_isolated

    Allow using `Gem::Version` without loading the rest of rubygems

commit 5768c2bc5542ce05466d379981a433ba1ee1e10a
Merge: aeb1a84b1 7d9fdd908
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Dec 6 10:03:49 2021 +0100

    Merge pull request #5137 from rubygems/bundle-info-version

    Add --version parameter to bundle info command.

commit aeb1a84b1b23170a36282af68aa3f9f35230bf83
Merge: 7befe7e97 49b491970
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Dec 6 09:42:49 2021 +0100

    Merge pull request #5133 from rubygems/colby/signing-signout-alias

    Add login & logout alias for the signin & signout commands

commit 1b862537a5b501065e2710e6635bc8fc781459b0
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sun Dec 5 09:23:28 2021 +0100

    Allow using `Gem::Version` without loading the rest of rubygems

commit 62c827d7e1a813f9096e6b6b68600868912ae5cd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sun Dec 5 09:22:29 2021 +0100

    Fix incorrect quoting

    Test was just returning a string instead of actually exercising the
    require.

commit 7d9fdd908dbe7e08d44ff922b776e832e9a8db3d
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Dec 6 01:42:43 2021 +0100

    Add --version parameter to bundle info command.

commit 7befe7e97ac05b3f2c7e52093d00df9f3bfc070f
Merge: a1510355d b0bbb2711
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Sun Dec 5 21:25:15 2021 +0100

    Merge pull request #3132 from rubygems/improve_tests

    Little cleanup in test suite

commit b0bbb271159117c70023e6a4f79d34851f9dd59e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Feb 17 14:02:17 2020 +0100

    LOAD_PATH is already reset globally

commit 9815a04e31342d09c2d966505af1088f660b0a7e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Feb 13 18:17:55 2020 +0100

    Remove unneded setup

commit 73255305478535770a69927695d603329d60ab9d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 29 18:18:24 2021 +0100

    Don't cleanup paths from gems already activated from `$LOAD_PATH`

    This way, if some default gem has been required before bundler, and
    rubygems has enhanced the `$LOAD_PATH` to use the latest version in the
    system, further requires of that default gem after bundler has been
    activated will use the same version and don't cause redefinition
    warnings or worse problems derived from the fact of mixing up two
    different versions. That, unless the gem is a `Gemfile` dependency. In
    that case, we'll get a mismatch error anyways as we do now.

    This fix doesn't mean that all default gems internally used by
    bundler/rubygems are now supported inside `Gemfile`'s. That should be
    handled case by case, but it will now bite people only when they try to
    add the gem to their `Gemfile`, not before.

commit a1510355d20552552cb5893b90203e18e272315e
Merge: 2b7965a85 7039f3fe2
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sun Dec 5 00:16:50 2021 +0100

    Merge pull request #5135 from rubygems/bump_jruby

    Bump JRuby and Java in CI

commit 7039f3fe29aff2ccfd17cd0ea731270f5aa2c861
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Dec 4 22:44:13 2021 +0100

    Use Java 11 on Windows CI

    After noticing a java crash in one Windows job I noticed that Windows is
    the only Github Actions environment that still uses Java 8 by default.
    Maybe updating it fixes the crash and makes it less likely to happen.

commit d6503efce344e1a86676a353d040c54631f2e3c0
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Dec 4 22:18:04 2021 +0100

    Use jruby 9.3.1.0 in CI

commit 2b7965a85f22f6c4200e22dfbc784c2954473bc6
Merge: 7818aafc2 141ef4cb9
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Dec 4 21:47:38 2021 +0100

    Merge pull request #5053 from rubygems/never_write_outside_of_destdir

    Fix `ruby setup.rb` trying to write outside of `--destdir`

commit 141ef4cb9a98b54d04bfd23060276abb02db79be
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 20:57:41 2021 +0100

    Don't write outside of destdir when regenerating plugins

commit a62d00c5e8fbddfe9225f7cf050a7c5495e2c0f8
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 13:55:09 2021 +0100

    Don't write outside of destdir when installing default bundler

commit 49317d8bebe1ed989068ab56097bc6c67e6a972c
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 18:20:17 2021 +0100

    Fold a line that got out of hand

commit 7079de16faefc98ee639975e198f1bffcfd49e60
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 12:44:29 2021 +0100

    Fix binstubs and plugins regeneration with `--destdir` is used

commit 49b491970bdea1eeea54d21bb596cd795d694dd6
Author: Colby Swandale <me@colby.fyi>
Date:   Sat Dec 4 18:25:43 2021 +1100

    add login & logout for the signin & signout commands respectively

commit 7818aafc2e0127cb6cfdce2126c74dd31fd9f27b
Merge: 7d4ef4016 f7dbe5440
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Dec 3 21:18:01 2021 +0100

    Merge pull request #5110 from rubygems/let_original_eacces_error_be_raised

    Let original `Errno::EACCES` error be raised in compact index updater

commit 7d4ef401603dbc55cacc520dcdf4f858764b10c7
Merge: 9ac4b38ac 06b4a7994
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Dec 3 12:00:37 2021 +0100

    Merge pull request #5120 from rubygems/improve_gemfile_lockfile_equivalence

    Improve gemfile-lockfile source equivalence errors

commit 9ac4b38ac36c9f958e3ed457690239679557c100
Merge: a5a1c7f08 de6552ac3
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Dec 2 22:01:09 2021 +0100

    Merge pull request #5130 from rubygems/ruby-version-guide

    Move required_ruby_version gemspec attribute to recommended section.

commit de6552ac3074a38e91bc17b011da5348458f56c3
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Thu Dec 2 20:44:30 2021 +0100

    Move required_ruby_version gemspec attribute to recommended section.

commit a5a1c7f0828ab3c52e75ebbbc88e92a4740b9208
Merge: f6f1b42d4 8fa29e5e5
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Dec 2 10:10:22 2021 +0100

    Merge pull request #5116 from rubygems/fix_materializing_locked_0_prereleases

    Fix handling prereleases of 0 versions, like 0.0.0.dev or 0.0.0.SNAPSHOT

commit f6f1b42d4bc4189446a5a9220665b9c88a4f37d7
Merge: 8360ad025 09ca0c2da
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Dec 1 20:42:57 2021 +0100

    Merge pull request #5030 from voxik/fix-rfc2253-distinguished-name

    Provide distinguished name which will be correctly parsed.

commit 09ca0c2daefc25c6999e1fcb8750c2661b80be6f
Author: Vít Ondruch <vondruch@redhat.com>
Date:   Wed Oct 27 16:28:24 2021 +0200

    Provide distinguished name which will be correctly parsed.

    It seems that since ruby openssl 2.1.0 [[1]], the distinguished name
    submitted to `OpenSSL::X509::Name.parse` is not correctly parsed if it
    does not contain the first slash:

    ~~~
    $ ruby -v
    ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

    $ gem list | grep openssl
    openssl (default: 2.2.0)

    $ irb -r openssl
    irb(main):001:0> OpenSSL::X509::Name.parse("CN=nobody/DC=example").to_s(OpenSSL::X509::Name::ONELINE)
    => "CN = nobody/DC=example"
    irb(main):002:0> OpenSSL::X509::Name.parse("/CN=nobody/DC=example").to_s(OpenSSL::X509::Name::ONELINE)
    => "CN = nobody, DC = example"
    ~~~

    Instead, use `OpenSSL::X509::Name.new` directly as suggested by upstream
    maintainer.

    [1]: https://github.com/ruby/openssl/commit/19c67cd10c57f3ab7b13966c36431ebc3fdd653b

    Co-authored-by: Kazuki Yamaguchi <k@rhe.jp>

commit 06b4a7994d747d6ca181ace3c752d8752c712afc
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 15:26:06 2021 +0100

    Don't unnecessarily loop twice through dependencies

commit f1d33fa0df5354bf20d7c84478bd5c77fba480c0
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 15:14:30 2021 +0100

    Improve source gemfile/lockfile equivalence checks

    Since we no longer have multiple global sources, each top level dependency is
    always pinned to a single source, so it makes little sense to talk about
    adding or removing a source. Instead, source changes always mean to
    change the source one or more dependencies are pinned to. This logic can
    now be much simpler.

commit b5f2b88957a4486d474b4c7e4ac0801f8468990e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 23:58:40 2021 +0100

    Improve sources representation

    We have two representations of a source. Once used for sorting, which
    should not depend on the source's state, but solely on its static
    information, like remotes. Another one used for error and informational
    messages, which should properly inform about the exact state of the
    source when the message is printed.

    This commit makes the latter be the default implementation of `to_s`, so
    that error and informational messages are more accurate by default.

commit c926673c5b29aa21388e5fbdb26f7c8e9c4b1b14
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 14:09:50 2021 +0100

    Don't overwrite locked dependency sources too early

    Otherwise we hide some useful message about dependency source changes.

commit 6f1b5f68de0d8f7776886c789cd8fe702350140b
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 14:21:48 2021 +0100

    Fix incorrect order in changed sources message

commit 17c978e16131da86dc696dd80d12864ee2b205e7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 12:58:07 2021 +0100

    Remove unnecessary code

    Somehow this is trying to relax frozen mode constraints for path
    sources. It doesn't make sense to me and it's not covered by any spec so
    I'm killing it.

commit f28d05a5482f03ac7e4ce89b97867a18b71aec36
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 12:02:24 2021 +0100

    Reuse `locked_dependencies` helper

    It makes the code more consistent with the above line.

commit 11193be3f11108cd01d343664315210099ac8cb7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 12:01:55 2021 +0100

    Reformat for consistency with the above line

commit d047b8935d0f996cbbb135d433be879c6e374eeb
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 09:19:03 2021 +0100

    Remove unnecessary nil checks

commit 8360ad02539f7555f94e2d3b0cc02f35d5bdd0c4
Merge: ddd3d2cc3 0f67ae877
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Wed Dec 1 21:09:49 2021 +0900

    Merge pull request #5118 from rubygems/ignore-to-generate-vendored-docs

    Ignore to generate the documentation from vendored libraries

commit 0f67ae877a417a337b0e819cbcddd4885fd7685b
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Wed Dec 1 20:01:17 2021 +0900

    rake update_manifest

commit 2d7cd65228196beeec51ea44664497d1af253599
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Wed Dec 1 19:13:36 2021 +0900

    Ignore to generate the documentation from vendored libraries

commit ddd3d2cc323b423bdb5d2fbe6324e4683202d2c5
Merge: fd676ac46 0bc9b9191
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Wed Dec 1 14:02:03 2021 +0900

    Merge pull request #5117 from rubygems/bump_ci_versions

    Bump ci versions

commit fd676ac464491afaa0baf5435cb11b3f86229cbd
Merge: c5884b2a8 8836fe157
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Wed Dec 1 07:15:08 2021 +0900

    Merge pull request #5089 from olleolleolle/patch-2

    newgem templ: Avoid Float 3.0 -> "3" in GH Action

commit 8836fe157b1721ae3bb019ec58a59efe9ac249d0
Author: Olle Jonsson <olle.jonsson@gmail.com>
Date:   Tue Nov 30 21:40:01 2021 +0100

    Update bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt

    Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>

commit 0bc9b91910c62bcc8f3d4eaa1fc4f73c45f72ddf
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 21:01:40 2021 +0100

    Add arm64-darwin-21 to dev lockifles

commit 6481c3ef5b5e8124c4b419ea704689ce72f53493
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 21:01:21 2021 +0100

    Fix typo in skip message

commit b091deb9b6ca12d20d7b1e2269f4d6bce6938b00
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 19:48:12 2021 +0100

    CI against latest rubygems in 3.2 series

commit 6a9da57fa586656a061a86ce80a96c01cf93022f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 19:47:07 2021 +0100

    Use latest ruby patch levels in CI

commit eeaa51d50df95c33a1d8f7ebb781187803d58958
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 21:02:23 2021 +0100

    Fix spec so that the default optparse gem doesn't mess with it

commit 8fa29e5e55006d85c8d316fb09803c54271516b8
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 18:12:54 2021 +0100

    This warrants a comment

commit 711498b3421447963ae80d61a776b65ec4563f3f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 18:07:32 2021 +0100

    Fix gemspec source unlocking also for prereleases like 0.0.0.SNAPSHOT

    The default prerelease requirement in rubygems doesn't actually match
    things like "0.0.0.SNAPSHOT".

commit 68fe37937c29286c72566e4a147d2e7f29428d21
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 18:03:14 2021 +0100

    Fix materialization of locked 0 prereleases

    Since the default requirement in rubygems is ">= 0", it was failing to
    match 0 prereleases. Changing the default globally to be ">= 0.a"
    instead is a major refactoring that's quite tricky to make backwards
    compatible, so I'm special casing this where needed for now to fix the
    regression.

commit c5884b2a80474678087d2ecf676c7950b67fa60f
Merge: 87efab4b4 d39703d17
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 14:15:29 2021 +0100

    Merge pull request #5041 from rubygems/sig-template

    Add an initial rbs template to `bundle gem` skeleton

commit 87efab4b432923c00526ae63d3794617e21fc2e7
Merge: 76f8736d9 a672e7555
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 30 12:53:59 2021 +0100

    Merge pull request #4408 from rubygems/race_conditions

    Fix race conditions when reading & writing gemspecs concurrently

commit d39703d1785fed248e1a6f00b1b2ed901fae94a6
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Tue Nov 2 11:54:48 2021 +0900

    Added darwin-20 platforms

commit 95456e5dac8e4c8dc4e8a2afcdde2b6ddd23cc3c
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Tue Nov 2 11:23:10 2021 +0900

    Added the initial template of rbs

commit 76f8736d9e2807fa320f0d244fa3cb57948678d6
Merge: 563ac1ffd 4ca066138
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 29 21:38:34 2021 +0100

    Merge pull request #5112 from rubygems/bump_connection_pool

    Use prerelease-aware version comparison inside `connection_pool`

commit 4ca06613850c3231a4f9039415a248aaf1f15d03
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 29 19:18:46 2021 +0100

    Cherry-pick small change in connection pool

commit a672e7555c1d04abfd07d896fcd90b147d4aa984
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Feb 25 18:43:51 2021 +0100

    Fix race condition when reading & writing gemspecs concurrently

    When bundler parallel installer installs gems concurrently, one can get
    confusing warnings like the following:

    ```
    "[/home/runner/work/rubygems/rubygems/bundler/tmp/2/gems/system/specifications/zeitwerk-2.4.2.gemspec] isn't a Gem::Specification (NilClass instead).
    ```

    I've got these warnings several times in the past, but I never managed
    to reproduce them, and never look deeply into the root cause, but this
    time a got a cause that reproduced quite frequently, so I looked into
    it.

    The problem is one thread reading a gemspec while another thread is
    writing it. The write of the gemspec was not protected, so
    `Gem::Specification.load` could end up seeing a truncated gemspec and
    thus throw this warning.

    The fix involve two changes:

    * Change the methods that write gemspecs to use `Gem.binary_write` which
      is protected by a lock.

    * Fix `Gem.binary_write` to create the file lock at file creation time,
      not when the file already exists after.

    The realworld user problem caused by this issue happens in bundler, but
    I'm fixing it in rubygems first, and then I'll backport to bundler
    whatever needs backporting to fix the issue on the bundler side.

commit 2dd267f0e49a91b9e22cc24b1b14b9f9e4c65080
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Feb 25 17:06:01 2021 +0100

    Revert "Remove spec file before building"

    This reverts commit af604436d8141c34cb2e1e645b9b0d47bfd55a55.

    The issue that led to introducing it was never reproduced. I tried to
    repro with this patch and it still works just fine. Since this removal
    is getting in the middle for some race conditions I'm facing, I'm
    reverting the patch.

commit 843f1a0abc27c7a88d3cc986a7c45fcd76ce24cc
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Feb 25 17:02:32 2021 +0100

    Run hooks tests on gemspecs not already installed

    The current `setup_base_installer` ends up using the `quick_gem` helper,
    which leaves the created specification installed. Instead, make sure to
    use the `util_spec` helper, which does a similar thing but doesn't leave
    the specification installed.

    The idea is that tests do not rely on the installer removing existing
    gemspecs, bacause I plan to stop doing that.

commit 563ac1ffdc30cb4c8062ea3dd1e286f57146ba7a
Merge: 36d7117ae 3ede1435e
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Mon Nov 29 17:29:26 2021 +0100

    Merge pull request #5102 from ooooooo-q/fix/bundle_doctor_escape

    Fix escape of filenames in `bundle doctor`

commit 36d7117aeba8a58837c73ad520c257d96a35df94
Merge: afddaffd3 62d54cbf0
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Mon Nov 29 23:37:55 2021 +0900

    Merge pull request #5109 from nobu/deprecate-typo-name

    Deprecate typo name

commit f7dbe54404ede7b8964a909ec06d6826c1402296
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 29 13:43:09 2021 +0100

    Let original EACCES error be raised

    This block of code already wraps file operations with
    `SharedHelpers.filesystem_access`, which rescues and re-raises more
    friendly errors. Also, I'm not fully sure creating a temporary directory
    can end up raising an `Errno::EACCES` error from reading `tmpdir`
    sources. Finally, this rescue block apparently leads to some false
    positives when firewall is blocking the ruby executable on Windows, or
    at least that's what we've got reported.

    In any case, I think it's best to let the original error be raised.

commit 62d54cbf085059b9d0e92f6228e89be2446ef7b2
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
Date:   Mon Nov 29 19:00:15 2021 +0900

    Deprecate typo name

commit 3ede1435ea9f87fe887333df118631c08d5bd088
Author: ooooooo-q <ooooooo-q@users.noreply.github.com>
Date:   Sat Nov 27 15:17:48 2021 +0900

    Fix escape of filenames in `bundle doctor`

commit afddaffd3d09856845657d3b4298e011da54d536
Merge: e6205d831 892d70241
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Nov 27 11:55:31 2021 +0100

    Merge pull request #5090 from rubygems/dont_unlock_deps_when_changing_global_source

    Don't unlock dependencies when running `bundle install` after changing global source

commit e6205d831ccb54eb400c7cddb0c0c65030862954
Merge: 1e12c5d04 0396e899d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 26 21:31:48 2021 +0100

    Merge pull request #5092 from rubygems/dont_crash_on_missing_deps_for_other_platforms

    Fix missing locked specs when depended on another platform

commit 1e12c5d04819292bb28928abf92257c75ff972b4
Merge: 1598cb3a6 fe1a31db3
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Fri Nov 26 00:50:46 2021 +0100

    Merge pull request #5097 from rubygems/bundler_gem_deleted

    Fix `bundle info` sometimes claiming that bundler has been deleted

commit fe1a31db312b1dca5cafb59d30c8e5037d5f9170
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 25 21:29:56 2021 +0100

    Fix `bundle info` sometimes claiming that bundler has been deleted

commit 892d7024101df3b89acab1e5ebf08ce0ca18686c
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 25 16:11:31 2021 +0100

    We no longer need to amend sources in the resolver

    They should now be correct in the first place.

commit 2cb672be099f432699cec81417789bd8ce1b6c8d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 09:51:20 2021 +0100

    Make Rubygems source comparison consider `allow_deployment_source_credential_changes`

    Honestly I want to remove this setting, but for now we have to live with
    it.

    Moving it to `Source::Rubygems` though allows us to simplify a lot of code.

commit b82c0f6a9bcdb79088080a8df1a883f9365115c9
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 24 19:11:11 2021 +0100

    Fix global dependencies being unlocked when changing global source

commit 1e6a595184b552bd773b7fb82bb3bcf00e918cb2
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 24 18:45:09 2021 +0100

    Only update locked spec source in non frozen mode

    The "exception" for updating the source didn't make sense to me. It
    should be skipped when in frozen mode, since in that case only
    information from the lockfile must be used, including sources.

commit 0396e899db2955b3a86bda63fb191e82c4f4584f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 24 22:01:45 2021 +0100

    Fix missing locked specs when depended on other platform

commit 1598cb3a67ec47249cecd7e5a266d09701d6ffd5
Merge: 481c27198 bbf55de38
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 24 20:02:13 2021 +0100

    Merge pull request #4815 from rubygems/dont_replace_whole_env

    Avoid shared libraries not getting environment passed right after argv in memory when `bundle exec` is used

commit 3260173c59e1eaab33aae5a5b254177e5bc085e8
Author: Olle Jonsson <olle.jonsson@gmail.com>
Date:   Wed Nov 24 17:23:06 2021 +0100

    Update main.yml.tt

commit f5bead5634d57099f27972242209ea8591ca5f69
Author: Olle Jonsson <olle.jonsson@gmail.com>
Date:   Wed Nov 24 17:15:06 2021 +0100

    newgem tmpl: ruby as "2.7" in GH Actions matrix

commit 6221241ad49fe0e3c54f32d85ab4ccbfbb2b5518
Author: Olle Jonsson <olle.jonsson@gmail.com>
Date:   Wed Nov 24 17:05:33 2021 +0100

    newgem templ: Avoid Float 3.0 -> "3" in GH Action

    This change avoids a YAML Float-to-String conversion, which turns a 3.0 into a "3". That can make names of builds less clear.

    In order to use this new capability, I added a "name" descriptor to the matrix-created Job.

commit bbf55de38e2b1e1fbc492204673c9d70a4b0241a
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Aug 5 17:16:44 2021 +0200

    Fix bad instance variable name

    Recent changes made a warning while running specs show up for some
    reason, and it revealed this error.

commit 4807bd19a5663de2ac116e6f50a542997baeea54
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Aug 5 16:54:30 2021 +0200

    Check not having load system features also for successful runs

commit dc391f4d8764f067e223c84410d64dc9669d0daa
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Aug 5 16:53:51 2021 +0200

    These method should be returning a string

commit 48f8cdab9cc3b460f3f057569317fa5a995a8e8e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Aug 5 11:50:44 2021 +0200

    We should be checking raised exception, not status code here

commit 8dc86b7096cc66f3f3145c4b800e528a6984f14e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Oct 15 13:51:49 2021 +0200

    Don't replace ENV twice on non Windows platforms

commit 481c271983cb6d8fdee63e307b1b35bc3ef53696
Merge: 8b436e2c7 964f6a228
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 23 09:32:11 2021 +0100

    Merge pull request #5085 from rubygems/cherry_pick_changelogs

    Changelogs for rubygems 3.2.32 and bundler 2.2.32

commit 8b436e2c7cb637a7e7e8af40394b3dcbc903eb89
Merge: 6e55de67e 239d3dd5d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 23 09:31:32 2021 +0100

    Merge pull request #5087 from rubygems/fix_changelog_script_crash

    Fix changelog script crash

commit 964f6a2282f2126e87c32c2676a8d9d2ca978eff
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 22 22:31:23 2021 +0100

    Changelog for Rubygems version 3.2.32

commit 313f21041478929b7e146deeee1c9eb215f5261a
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 22 22:31:21 2021 +0100

    Changelog for Bundler version 2.2.32

commit 239d3dd5d06a1886d31fcae98abd2e3d51e5c8cf
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 22 22:29:14 2021 +0100

    Fix changelog script crash

    `String#gsub!` will return nil if no replacement was performed as
    opposed to `String#gsub` which returns the original string. That means
    we can't chain `String#gsub!` safely.

commit 6e55de67e251ebd689b705e403585b5a63e5aff4
Merge: 53b1ab262 7f22fe56b
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Mon Nov 22 09:29:04 2021 +0900

    Merge pull request #5083 from rubygems/tweak_bundle_viz_depreaction

    Clarify `bundle viz` deprecation

commit 7f22fe56b3897f1a9670cd0f4daea7d33fc6a25a
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Sat Nov 20 01:15:11 2021 +0100

    Clarify `bundle viz` deprecation

commit 53b1ab262fd136c036fbd6e8bf008013c5ff4633
Merge: b063510f7 3241b3405
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 19 02:11:59 2021 +0100

    Merge pull request #5078 from rubygems/manual_downgrade

    Fix downgrading dependencies by changing the `Gemfile` and running `bundle update`

commit 3241b34055a15b21c789e05affe78e810796d631
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 21:59:18 2021 +0100

    Previous logic can mostly go now

commit 6a19cca7e53b134be9eb696868a9a3bdc11c11cd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 12 00:56:19 2021 +0100

    Allow `bundle update` to downgrade gems by changing the Gemfile

commit e896e63ac32460f4dadb4565f854e1d78530a407
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 21:13:40 2021 +0100

    Extract a converge_specs method for later reusing it

commit afaf868b68d68aa4eb98d19a2bb520c0d69b5ed2
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 15:01:18 2021 +0100

    Avoid unnecessary loop

commit b063510f7bb44505769816bfdf871a001b987aa8
Merge: 7c0c681a1 c8cc053bd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 20:37:16 2021 +0100

    Merge pull request #5050 from rubygems/install_thread_safety

    Refactor installer thread safety protections

commit c8cc053bdef63a8e41a034b693b25cd3635d20b8
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 13:40:53 2021 +0100

    Protect specs access at a finer level

commit 5cb0b9d9b8f7c6bf6cb13dd672a6194cdd55c387
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 13:28:30 2021 +0100

    Stop using a constant for something not constant

commit 662de0c9902e2d4b96b435c754eb76daba32a66e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 13:23:35 2021 +0100

    Extract a helper method to reset specs

commit 19f117652bb1f312ec41c6b8fba342696e023479
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 18:01:25 2021 +0100

    Make clearing loaded spec cache really private

commit f8a01ddb9f3aa63b8e141e32d9d888629c8cd28b
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 17:59:30 2021 +0100

    `Gem::Specification.reset` already clears loaded spec cache

    Plus, that method is supposed to be private.

commit 231be44d38491eb85bcf28600ce69c7f97b0fce6
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 13:20:42 2021 +0100

    We can now use standard memoization

commit 54e923ffc271ab892e5f645af034957efb2c2bac
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 17:47:25 2021 +0100

    Easier preservation of activated specs

commit 64d27bba012571a7cf41033a98a29fb1899690d4
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 13:12:32 2021 +0100

    Set `@@all` variable at class definition time

    To spare the `defined?` check.

commit 7c0c681a1d707be7e546a3486007db4f6d0d3e7d
Merge: 9667f56f7 6d92ff5e5
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 09:07:04 2021 +0100

    Merge pull request #5044 from rubygems/allow_gem_activation_from_os_and_implementation_extensions

    Allow gem activation from `operating_system.rb`

commit 9667f56f73fe3c06a158b84c28bf824c4c69d9d3
Merge: b6319d4a8 c4e465a41
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 17 09:02:59 2021 +0100

    Merge pull request #5074 from rubygems/update-dev-deps

    Update development dependencies

commit b6319d4a8a293adf74fe3e0e844fd1b92b1188a9
Author: André Arko <andre@arko.net>
Date:   Tue Nov 16 14:04:17 2021 -0800

    Add GitHub Sponsor link

commit c4e465a4121b06070f341fa720e19a615bcefc03
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:52:35 2021 +0100

    Remove unused require

commit d564c1b502f6026d54b8639684b119f6a8d42ad7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:48:14 2021 +0100

    Update development dependencies (`rake update`)

commit 882d9c23f8c088aac05e5ce4c3bf400831fec8dd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 13:41:53 2021 +0100

    Lock standard on ruby 2.4

commit 6bf5571c12a8861a6e6a7782cd0f794d03f7c610
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 13:04:18 2021 +0100

    Lock rubocop on ruby 2.4

commit 29c20f9e4bd197e41c5038dac1aad2026e891263
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 12:54:15 2021 +0100

    Lock rubocop-ast on ruby 2.4

commit ac141c3745dc49cb0398b428ece3e572d891f745
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 10:48:17 2021 +0100

    Lock parallel on old rubies

commit 3e0004a1f16ac426ece2e419d652ac482d791234
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 10:46:55 2021 +0100

    Make `rake setup` sync lockfiles

    That way when changing a gemfile, `rake setup` will get the lockfile in
    sync.

commit 3be2a079f9ddc9cfead159a4e81990c7502b1303
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 10:31:06 2021 +0100

    We no longer need to lock faraday

    Since we don't use Ruby 2.3 for releasing.

commit 7055945c035648f2b114feb41576dda98cf78144
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:27:05 2021 +0100

    Move release dependencies to their own Gemfile

    Most people won't be releasing so its unnecessary for them to install
    everything.

    It will also allow us to use the latest faraday, since we don't use ruby
    2.3 for releasing.

commit 1515deb870908927d888c6c1f98a736984b877bb
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:24:39 2021 +0100

    Remove unnecessary `release:verify_docs` task

commit d54ff9c0270cadf91612d91b89b067bb300225a3
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:22:58 2021 +0100

    Make `rake update` sync lockfiles

commit 80582ed15f4b79742b392958d478ae7644d1449f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 10:43:30 2021 +0100

    Use local rubygems for all dev bundler commands

commit 4b498709a015a94e14a3852a1841a7a3e669133d
Merge: 72a774bbf cde1acc8b
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Tue Nov 16 10:59:23 2021 +0100

    Merge pull request #5073 from rubygems/extra_rubygems_changelog_entry

    Add entries about default bundler to rubygems changelog

commit cde1acc8b4072d13ad82edb473e4e6dda1f7b1eb
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 16 09:23:19 2021 +0100

    Add entries about default bundler to rubygems changelog

    Upgrading rubygems also upgrades the default bundler version installed
    in your system. This is an enhancement, so we should include it in the
    changelog.

commit 72a774bbf53ce88f09a1e99eeb2ac11b57a9bb59
Merge: fef58aefd 7a47c01a8
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 23:38:22 2021 +0100

    Merge pull request #5068 from rubygems/unlock_deps_that_no_longer_match_lockfile

    Unlock dependencies that no longer match lockfile

commit fef58aefd4d0345c073c7440390f0d5783ded029
Merge: 411adeae8 86b874ed2
Author: Josef Šimánek <josef.simanek@gmail.com>
Date:   Thu Nov 11 22:05:00 2021 +0100

    Merge pull request #5069 from rubygems/spec_simplifications

    Simplifications to bundler specs

commit 86b874ed248f32da6ae7a1b6285be5ae54cfe927
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 20:31:24 2021 +0100

    Remove duplicated spec

commit 79f3c00caaaaa1323dda8ed9d32db1f97fe8f63b
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 20:28:47 2021 +0100

    Remove `gemfile_should_be` helper as well

commit 7a47c01a86af152d09aaa14d8cad6253e80c1c41
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 19:30:15 2021 +0100

    Unlock dependencies that no longer match the lockfile

    Instead of throwing an error telling the user to unlock the dependency
    herself.

commit 4ca440730413e2d73435d150fdc36fdb8c1b6260
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Sep 28 12:49:03 2021 +0200

    Remove unnecessary code

    This sounds like some workaround for some frozen mode issue that seems
    fixed now. The code that introduced it added a regression spec and it's
    still passing. So I think we can remove it.

commit 635f3f260553e9e1635e0f668b30a1ecb975e657
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 20:26:21 2021 +0100

    Remove `have_lockfile` matcher too

commit ece3c864df5a32a6235e59eb3e59825e0ce0b496
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 11 20:24:02 2021 +0100

    Remove `lockfile_should_be` helper

    It doesn't add anything.

commit 490501201b1ea7be15b3290b78381490a726b0fd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Sep 24 14:50:43 2021 +0200

    Use consistent local variable name

    It's consistent with other loops over dependencies, and with the
    `locked_dep` naming.

commit 29c29b0b263221b2b980e644f7e2ddd4f3d4d83f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Sep 24 14:50:01 2021 +0200

    Remove confusing comment

    All dependencies are actually looped.

commit 7918f7ba26e0a4253d1c116c8b604b75d39a3a93
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Sep 28 00:41:05 2021 +0200

    Remove more ineffective code

    This code seems to be related to conservative updating of path sources,
    but no specs seem to break when removing it, including the ones added by
    the changes that introduced this block of code. So I'm removing it.

commit 16ce3f6e8ddfb3317b29538322f0a115c97f632d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Sep 24 14:27:58 2021 +0200

    Simplify more code

    The `locked_deps` variable was only used once and either would be `nil`,
    or the deps would be the same. So there's no need to overwrite it with
    `nil`, we can check deps inequality instead.

commit 7e593b05b261020179a622bba16ae19cfeca82d6
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Sep 24 14:05:50 2021 +0200

    Remove unnecessary code

    This might've been necessary when lockfile used merged sources, I don't
    think it makes sense anymore.

commit 411adeae83d30da08b14954116ab4d4ea2632184
Merge: 7b2f3e705 eba7d173d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 13:21:23 2021 +0100

    Merge pull request #4956 from junaruga/wip/parse-make-arguments

    Fix `assert_contains_make_command` on `make` defined by environment variable.

commit eba7d173d4a33a2ea6bc7194d762cff6df5d6467
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 11:52:44 2021 +0100

    Remove more unused stuff from make command parsing

commit d79ade274ba8b5087bf812697ef0d038cbff822d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 11:47:56 2021 +0100

    This method is never passed a block

commit 7730ef3fa039995d959fd9686b2a89367addd985
Author: Jun Aruga <jaruga@redhat.com>
Date:   Fri Oct 15 13:47:32 2021 +0200

    Fix assert_contains_make_command on make defined by environment variable.

    The `parse_make_command_line` in `assert_contains_make_command` fails to get
    the make targets correctly, when the make command is set with make options by
    environment variable such as `export make='make -j2'` at
    lib/rubygems/ext/builder.rb::make.

    So, we include the make options (eg, -XX) as a part of the command to fix the
    case. Note that this commit still doesn't fix the case of
    `export make='make -j 2'`.

commit 8c2725e9a6bca1bb4efa5d7ce85051e7a2459dbd
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 9 11:30:46 2021 +0100

    Improve error message when make command doesn't match

commit 7b2f3e7053620d0c2f15ead263a43a226cbc98d7
Merge: 54587b5dd 6649ee10b
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Tue Nov 9 10:56:11 2021 +0900

    Merge pull request #5062 from Maimer/use_shellsplit_for_git_push

    Use `shellsplit` instead of array of strings for git push

commit 6649ee10b0607c8ed8ee8f8a4dd746b2f59afb78
Author: Nicholas Lee <nicholas.lee@appfolio.com>
Date:   Mon Nov 8 15:52:49 2021 -0800

    Use `shellsplit` instead of array of strings

    Previously, the command string to be used for the shell command
    was first generated and then split using shellsplit. This change
    reverts the current behavior as it breaks if the value of remote
    contains a space.

commit 54587b5ddb0ebeddb4ae2bd251e3d579712a8abd
Merge: 1cd63a91d 37eb0ee1f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 8 15:52:51 2021 +0100

    Merge pull request #5058 from rubygems/cherry_pick_changelogs

    Changelogs for rubygems 3.2.31 and bundler 2.2.31

commit 37eb0ee1f00103af4d5d4e34ecfd890e33e4fc81
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 8 10:45:29 2021 +0100

    Changelog for Rubygems version 3.2.31

commit 2aabe61b65fc11e777af8cc3adb0533d5195a174
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 8 10:45:23 2021 +0100

    Changelog for Bundler version 2.2.31

commit 1cd63a91d593bd63c867abeecbe2e87e019fa493
Merge: 9caab60eb a54cca13d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Mon Nov 8 14:15:12 2021 +0100

    Merge pull request #5061 from rubygems/bundler-graph

    Use bundler-graph instead of bundler-viz

commit a54cca13db497fcffd8bc65f46ca3d05183e64c8
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Mon Nov 8 20:46:08 2021 +0900

    Use bundler-graph instead of bundler-viz

commit 9caab60eb8fa1b933a5d73ab70885994d1131062
Merge: 03b11fc09 7fd987d30
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Sat Nov 6 09:06:44 2021 +0900

    Merge pull request #5057 from rubygems/fixup-destdir-fix

    Set DESTDIR with GNU Make

commit 7fd987d30d093134c4c8596fa4939978860913cc
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Sat Nov 6 07:22:35 2021 +0900

    GNU Make needs DESTDIR on Windows environment like msys or mingw

commit 03b11fc093b0a0616e6e657cc975742f547973ba
Merge: b58ac02b0 6a5a80eff
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 17:39:17 2021 +0100

    Merge pull request #4964 from haruuzion/fix-url

    Fix broken link in `bundle viz` deprecation message

commit 6a5a80eff7ecfba730f8b096b3ddf7e502b364e0
Author: haruuzion <haruuzion@users.noreply.github.com>
Date:   Fri Oct 8 01:08:57 2021 +0900

    Fix url

commit b58ac02b0276e0d64d37622050f7d29c6dcdca83
Merge: 2bd3f0065 8d04092f6
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 15:20:40 2021 +0100

    Merge pull request #5051 from rubygems/setup_rb_prefix

    Fix `ruby setup.rb` when `--prefix` is passed

commit 8d04092f6eea5d075c37741e398b4c11268fe74a
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 19:27:17 2021 +0100

    Fix `ruby setup.rb` command when `--prefix` is passed

commit 55637bdc8a244dd05b59906f6eb6ee318ed45362
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 13:51:11 2021 +0100

    Bin dir should fall inside destdir

    Since that's what happens in real life when `--destdir` is passed.

commit d3f092ad1403c6acd682654b11a2a2676ac9fbc0
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 13:46:32 2021 +0100

    Remove unnecessary test setup

    The method being unit tested here doesn't use
    `RbConfig::CONFIG["bindir"]`.

commit bd4bd97916f599f8a43ff0f94a5986112c3ca25e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 13:29:29 2021 +0100

    Merge some logic

    It's the only usage of the method now, can be moved inline.

commit a1f62f09398c0ae2f8c0df376f61fb961f66e426
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 13:27:17 2021 +0100

    Remove unnecessarily changing GEM_HOME

    At this point gem paths are already loaded and memoize. Changing
    `GEM_HOME` has no effect.

commit 0571fd1ec65d6ff551b04bb0f89cf3ba35d5d7a8
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Fri Nov 5 12:20:05 2021 +0100

    Simplify `--destdir` test

commit 50a7e34586af7b3d9e1ad4628e58e2261230669f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 20:20:47 2021 +0100

    Refactor setup tests to not always pass `--prefix`

    Standard usage should be tested by default. I will add a test for
    `--prefix` once I fix that option since it's not working correctly at
    the moment.

commit 2839d15521256794550b0f2954946d8018408e47
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 20:31:06 2021 +0100

    Remove unnecessary loop

    Rubygems installs a single executable. Make that explicit.

commit 2bd3f00658cd1029189acf995e04489b7f8d8fc5
Merge: 8a1216f22 69dcc0255
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Fri Nov 5 07:35:20 2021 +0900

    Merge pull request #5049 from rubygems/skip-destdir

    Skip to set DESTDIR option when it's not provided for mswin platform

commit 8a1216f22f80a55baf27fc65642adc609f25406a
Merge: 707893d5d 9e857ffb5
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 23:23:29 2021 +0100

    Merge pull request #2768 from alyssais/destdir

    Don't apply `--destdir` twice when running `setup.rb`

commit 6d92ff5e5538d33da18bc20826da6888456ed8dc
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Tue Nov 2 21:51:20 2021 +0100

    Allow gem activation from `operating_system.rb`

    Sometimes OS and implementation specific customizations to rubygems
    might need to load default gems.

    We should make sure `Kernel.require` monkeypatches are in place before
    these files are loaded.

commit 9e857ffb52a8b1f75788d7b8ec868215793a44e9
Author: Alyssa Ross <hi@alyssa.is>
Date:   Sat May 18 15:10:18 2019 +0000

    Don't apply `--destdir` twice when running `setup.rb`

    Prior to this patch, if I ran:

        ruby setup.rb --destdir /foo

    Then Bundler files would be written into /foo/foo, because destdir was
    being prepended, even though `bundler_spec.bin_dir` already included
    destdir.

commit fbe42460d7a01f3a390f81a4f4ff25771c791ee5
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 21:01:29 2021 +0100

    Fix `--destdir` handling on Windows

    Driver letters were not accounted for in one place.

commit f42c2025ed1e6caa288ee906e4a8e47e31a83358
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 22:13:29 2021 +0100

    More refactoring of `--destdir` handling

commit 8aab3d11b09cc08db113445efd5a113e448e367c
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 22:04:26 2021 +0100

    Refactor `--destdir` handling

commit c556ae8abd239ff2447554015e97f384bf135a7f
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 3 11:23:25 2021 +0100

    Merge related checks into a single step

commit 5fd16719fc88957c1152164423144e3a8af3ff0e
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 20:44:43 2021 +0100

    Extract a helper to check for ruby-core setup

commit d997bdc2fe240533b682530f515c42ca86077e54
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 3 10:58:16 2021 +0100

    These tests are not supposed to be fixed. Prefer `omit`

commit 0727bb87fb44f8a5546266d5e188594c024a6ddc
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 3 10:57:55 2021 +0100

    This seems to be passing on JRuby now

commit 707893d5d406cb7c7d822d144e02448341d7771f
Merge: d7b2478e7 f328ef6f7
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Thu Nov 4 15:06:18 2021 +0100

    Merge pull request #5045 from nobu/typos

    Fix typos

commit f328ef6f7770ccded8af656d5d3ba5e1848a033a
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
Date:   Wed Nov 3 18:54:14 2021 +0900

    Fix typos

commit 69dcc02553f3969f9a960872670c0cbddab6e18a
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Thu Nov 4 14:10:59 2021 +0900

    Explicitly ignored empty value for DESTDIR

commit b93546c8d86a6065916499993ef7fdff80be904f
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Date:   Thu Nov 4 13:59:41 2021 +0900

    Skip to set DESTDIR option when it's not provided for mswin platform

commit d7b2478e764c965a32a4c1d9e043491cb9349561
Merge: f44f647a6 77c6e9f1d
Author: David Rodríguez <deivid.rodriguez@riseup.net>
Date:   Wed Nov 3 11:55:46 2021 +0100

    Merge pull request #4986 from voxik/openssl3-des2aes

    Switch from DES-CBC to AES-256-CBC.

commit 77c6e9f1d54ba99c72d1f6480b952c95dfbda582
Author: Vít Ondruch <vondruch@redhat.com>
Date:   Thu Oct 14 09:46:03 2021 +0200

    Switch from DES-CBC to AES-256-CBC.

    DES-CBS is considered legacy and disabled in OpenSSL 3.x+ [[1], [2]].
    This cause causes Ruby test failures:

    ~~~
    ruby -v: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
    /builddir/build/BUILD/ruby-3.0.2/lib/rubygems/test_case.rb:1542:in `initialize': Neither PUB key nor PRIV key (OpenSSL::PKey::RSAError)
    	from /builddir/build/BUILD/ruby-3.0.2/lib/rubygems/test_case.rb:1542:in `new'
    	from /builddir/build/BUILD/ruby-3.0.2/lib/rubygems/test_ca…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

bignum too big to convert into `long' (RangeError)
3 participants