| Age | Commit message (Collapse) | Author |
|
https://github.com/rubygems/rubygems/commit/a93ec63df3
|
|
Since tests are about testing our development copy of rubygems, not
whatever is installed in the system.
https://github.com/rubygems/rubygems/commit/f5e0b68cdd
|
|
rubygems
https://github.com/rubygems/rubygems/commit/1b862537a5
|
|
Test was just returning a string instead of actually exercising the
require.
https://github.com/rubygems/rubygems/commit/62c827d7e1
|
|
respectively
https://github.com/rubygems/rubygems/commit/49b491970b
|
|
https://github.com/rubygems/rubygems/commit/b0bbb27115
|
|
https://github.com/rubygems/rubygems/commit/9815a04e31
|
|
https://github.com/rubygems/rubygems/commit/141ef4cb9a
|
|
bundler
https://github.com/rubygems/rubygems/commit/a62d00c5e8
|
|
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
https://github.com/rubygems/rubygems/commit/09ca0c2dae
Co-authored-by: Kazuki Yamaguchi <k@rhe.jp>
|
|
|
|
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.
https://github.com/rubygems/rubygems/commit/a672e7555c
|
|
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.
https://github.com/rubygems/rubygems/commit/2dd267f0e4
|
|
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.
https://github.com/rubygems/rubygems/commit/843f1a0abc
|
|
Plus, that method is supposed to be private.
https://github.com/rubygems/rubygems/commit/f8a01ddb9f
|
|
Picked from https://github.com/rubygems/rubygems/commit/4b498709a015a94e14a3852a1841a7a3e669133d
|
|
https://github.com/rubygems/rubygems/commit/eba7d173d4
|
|
https://github.com/rubygems/rubygems/commit/d79ade274b
|
|
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'`.
https://github.com/rubygems/rubygems/commit/7730ef3fa0
|
|
https://github.com/rubygems/rubygems/commit/8c2725e9a6
|
|
https://github.com/rubygems/rubygems/commit/8d04092f6e
|
|
Since that's what happens in real life when `--destdir` is passed.
https://github.com/rubygems/rubygems/commit/55637bdc8a
|
|
The method being unit tested here doesn't use
`RbConfig::CONFIG["bindir"]`.
https://github.com/rubygems/rubygems/commit/d3f092ad14
|
|
https://github.com/rubygems/rubygems/commit/0571fd1ec6
|
|
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.
https://github.com/rubygems/rubygems/commit/50a7e34586
|
|
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.
https://github.com/rubygems/rubygems/commit/9e857ffb52
|
|
https://github.com/rubygems/rubygems/commit/f328ef6f77
|
|
https://github.com/rubygems/rubygems/commit/b3e985799e
|
|
This fixes the following test error testing against OpenSSL 3.x:
~~~
2) Failure:
TestGemRequest#test_verify_certificate_extra_message [/builddir/build/BUILD/ruby-3.0.2/test/rubygems/test_gem_request.rb:358]:
<"ERROR: SSL verification error at depth 0: invalid CA certificate (24)\n" +
"ERROR: Certificate is an invalid CA certificate\n"> expected but was
<"ERROR: SSL verification error at depth 0: invalid CA certificate (79)\n" +
"ERROR: Certificate is an invalid CA certificate\n">.
~~~
Where the root cause is this OpenSSL commit:
https://github.com/openssl/openssl/commit/1e41dadfa7b9f792ed0f4714a3d3d36f070cf30e
It seems that OpenSSL upstream considers the constant value just an
implementation detail and therefore this changes the test case to
follow the suite.
https://github.com/rubygems/rubygems/commit/8acf8e95dc
|
|
|
|
|
|
|
|
key algorithms
https://github.com/rubygems/rubygems/commit/967876f15d
Co-Authored-By: Frederik Dudzik <frederik.dudzik@shopify.com>
|
|
OpenSSL includes what we need.
https://github.com/rubygems/rubygems/commit/955f3b72ca
|
|
https://github.com/rubygems/rubygems/commit/f5e408f83d
|
|
Now `$LOADED_FEATURES` list is being maintained by `setup` and
`teardown` and, only libaries under the temporary directory will
be removed. As `save_loaded_features` removes the rest libraries
other than this test directory, ordinary libraries loaded from
files under rubygems also removed, and often causes constant
redefinition warnings.
https://github.com/rubygems/rubygems/commit/9e1f92aafd
|
|
If we explicitly disallow the creation of symlinks that point to files
outside of the destination directory, we can avoid any other safety
checks while creating directories, because we can be sure they will
always fall under the destination directory as well.
https://github.com/rubygems/rubygems/commit/555692b8de
|
|
https://github.com/rubygems/rubygems/commit/1e363dbbcb
|
|
https://github.com/rubygems/rubygems/commit/9180b390aa
|
|
https://github.com/rubygems/rubygems/commit/90c1919f94
|
|
description
7890c98 matched the start of each line, whereas this matches the start
of the entire string.
https://github.com/rubygems/rubygems/commit/432de7b819
|
|
helper
https://github.com/rubygems/rubygems/commit/798a93a98c
|
|
Do not change the password of the input parameter source during
anonymization, by using the proper helper instead of changing the
original uri directly.
https://github.com/rubygems/rubygems/commit/eaa2dd8a97
|
|
Implement deep cloning for `Gem::Uri` class to fix a bug where redacting
credentials modifies the URI string in place instead of returning a
modified copy.
https://github.com/rubygems/rubygems/commit/eafb5a279b
|
|
Gem::Request class
https://github.com/rubygems/rubygems/commit/e8e7c2078f
|
|
It doesn't make much sense to just forbid certain words in descriptions.
https://github.com/rubygems/rubygems/commit/7890c98415
|
|
This allows easy differentiation between ABI incompatible platforms like MSWIN64 and MSVCRT-based MINGW32.
This also implicates a distinct rubygem platform which is also "x64-mingw-ucrt".
Although the term "mingw32" is the OS-part for 64 bit systems as well, the "32" is misleading and confusing for many users.
Therefore the new platform string drops the "32" from the OS part to just "mingw".
This conforms to the common practice of windows platform testing per RUBY_PLATFORM=~/mswin|mingw/ .
Notes:
Merged: https://github.com/ruby/ruby/pull/4599
|
|
`Gem::Uri` class
The new class is a wrapper on top of an URI. And then, when you want
credentials redacted, you call `#redacted` that returns a copy of itself,
but with credentials redacted.
https://github.com/rubygems/rubygems/commit/9581c2740a
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
We will be passing string to this class so there is no need to be defensive about it.
https://github.com/rubygems/rubygems/commit/30bd52a977
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|
|
https://github.com/rubygems/rubygems/commit/c3bb52eb5c
Notes:
Merged: https://github.com/ruby/ruby/pull/4789
|