| Age | Commit message (Collapse) | Author |
|
raised while trying to activate a gem
https://github.com/rubygems/rubygems/commit/4da54a8e8b
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
In ruby 2.7.0, there's a slight change in bundler's default gemspec file
where the executable folder of the bundler gem is `libexec` instead of
`exe`. I made that change in https://github.com/ruby/ruby/pull/2380 to
try to simplify the integration of the `bundler` gem with upstream,
minimizing the number of changes that need to be made to the gemspec to
adapt to the structure of ruby-core.
That worked ok, expected for this issue. The new name of the folder
including the executable files uncovered a bug in rubygems, which is the
following:
* In order to be able to use newer versions of default gems, `rubygems`
ships with a customized `require` that has knowledge about which files
belong to which default gem. If one of these files is required,
`rubygems` will detect that and activate its gem mechanism to choose the
newest version of the corresponding default gem present in the system
(unless a different version has already been activated). It's this part
of the custom require:
https://github.com/rubygems/rubygems/blob/ea3e6f194df500b028b52b3b64decbd3df1d5ab0/lib/rubygems/core_ext/kernel_require.rb#L77-L85
* In order to do that, `rubygems` registers a map of default gems and
their files when it is first required:
https://github.com/rubygems/rubygems/blob/ea3e6f194df500b028b52b3b64decbd3df1d5ab0/lib/rubygems.rb#L1247-L1276
As explained in the method's header, two types of default gem
specifications are supported. One of the formats is the style used by
some ruby-core gemspec files, where paths inside the `spec.files` array
don't include the `spec.require_paths` part. So in this "old style", if
a gem ships with a `lib/bundler.rb` file, it will be registered in this
array as `spec.files = ["bundler.rb"]`, not as `spec.files =
["lib/bundler.rb"]`. The `Gem.register_default_spec` method "detects"
this style by making sure that none of the files in the `spec.files`
array start with any of the `spec.require_paths`.
* Since in ruby 2.7 the default specification file of the `bundler` gem
includes a `libexec/bundle` file, this check would no longer work
correctly, because even though the specification file is still "old
style", it has one registered file which starts with "lib", one of the
"require paths" of the gem.
* This means that the gem is incorrectly detected as "new style", but
since none of the paths start with "lib/", no files are actually
registered, so the gem is not being considered a default gem, and thus
the default version is always used with no possibility of being
"upgraded".
The fix of the problem is simple: check that no files start with `lib/`
(or any other require paths), instead of with "lib" which doesn't
exclude other potential "non requirable folder" starting with lib, like
in the `bundler` case.
https://github.com/rubygems/rubygems/commit/94df740c2b
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/1cea3d4dce
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/28d6d77d81
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/665099fe53
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/f1a5815896
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/a43cffddad
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/b85db66e2d
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/a0880d78a8
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
`site_dir`, or `vendor_dir`, is the location where the default version
of bundler & rubygems gets installed. These folders are placed directly
in the LOAD_PATH, so they cannot hold any nested gem directory
structure. So a single copy of either rubygems or bundler can be placed
in these folders.
What the tests are actually testing is the TODO comment that I'm
removing: that installing the default copy of bundler doesn't affect any
already installed copies of bundler as regular gems.
https://github.com/rubygems/rubygems/commit/7ca8831d72
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/1d0981809a
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/commit/5f390478c7
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/commit/5f2b7474eb
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
Currently `gem uninstall --all` shows the following incorrect message
after completion:
```
INFO: Uninstalled all gems in
```
Now it shows something that actually makes sense like:
```
INFO: Uninstalled all gems in /home/deivid/Code/rubygems/tmp/test_rubygems_6986/gemhome
```
https://github.com/rubygems/rubygems/commit/8fa05e8f8c
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
These tests work on jruby, but the flags to the system command used to
detect whether `cmake` is present seem to be ignored on jruby and the
output is printed to screen instead of being sent to /dev/null. This
results in very verbose tests, like this:
```
$ rake TESTOPTS=--name=TestGemExtCmakeBuilder#test_self_build
(... warnings skipped ...)
Skipping `gem cert` tests on jruby.
Skipping Gem::Security tests on jruby.
Run options: --name=TestGemExtCmakeBuilder#test_self_build --seed 16839
# Running:
/home/deivid/Code/rubygems/test/rubygems/test_gem_ext_cmake_builder.rb:13: warning: system does not support options in JRuby yet: {:out=>"/dev/null", :err=>[:child, :out]}
Usage
cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
Specify a source directory to (re-)generate a build system for it in the
current working directory. Specify an existing build directory to
re-generate its build system.
Run 'cmake --help' for more information.
.
Finished in 0.387301s, 2.5820 runs/s, 20.6558 assertions/s.
1 runs, 8 assertions, 0 failures, 0 errors, 0 skips
Coverage report generated for Unit Tests to /home/deivid/Code/rubygems/coverage. 2258 / 8832 LOC (25.57%) covered.
```
By using `Open3`, we get the test output clean:
```
$ rake TESTOPTS=--name=TestGemExtCmakeBuilder#test_self_build
(... warnings skipped ...)
Skipping `gem cert` tests on jruby.
Skipping Gem::Security tests on jruby.
Run options: --name=TestGemExtCmakeBuilder#test_self_build --seed 22605
# Running:
.
Finished in 0.381959s, 2.6181 runs/s, 20.9446 assertions/s.
1 runs, 8 assertions, 0 failures, 0 errors, 0 skips
Coverage report generated for Unit Tests to /home/deivid/Code/rubygems/coverage. 2258 / 8832 LOC (25.57%) covered.
```
https://github.com/rubygems/rubygems/commit/531ce37ea3
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/43819b6973
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
project sources
https://github.com/rubygems/rubygems/commit/7506f7eb07
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/5f20647ec1
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/583316bf49
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/2f072e3dc7
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/ff223d8489
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/7fbef2f0e3
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/cca2fccd95
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/5cfb3252d9
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/75f672ff0e
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
https://github.com/rubygems/rubygems/commit/e9e25731d8
Notes:
Merged: https://github.com/ruby/ruby/pull/3092
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3091
|
|
We have `__dir__` which is the same thing.
https://github.com/rubygems/rubygems/commit/f89776427f
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
I don't know why it was living at the class level. At first I thought it
would be to reuse some server instances between tests, but they seem to
be cleaned up after every test anyways, so I don't think any of it is
needed.
https://github.com/rubygems/rubygems/commit/04bee71216
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/a0219b9f27
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
* Other Ruby implementations don't support $SAFE.
https://github.com/rubygems/rubygems/commit/9a4ba16efa
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
- Resolver asked Molinillo to resolve-then-activate, which led to using Gem::NameTuple before any require had been passed
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
https://github.com/rubygems/rubygems/commit/e11782b0c8
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/c07b9cf4f1
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
move rubyforge_project= to removed methods
https://github.com/rubygems/rubygems/commit/223f7fd470
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
time.
https://github.com/rubygems/rubygems/commit/c44eb21648
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/965eee1741
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/024267fa60
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/6afd914fda
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/984bb9b815
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/4fe5bb5bf3
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/24213b97d8
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
https://github.com/rubygems/rubygems/commit/2890622479
Notes:
Merged: https://github.com/ruby/ruby/pull/3087
|
|
|
|
Right now `SomeClass.method` is properly named, but `SomeModule.method`
is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes
profiling annoying.
Notes:
Merged: https://github.com/ruby/ruby/pull/3084
|
|
IRB::ReadlineInputMethod#initialize changes them via IRB.set_encoding.
|
|
It caches a path to .irbrc file, which has caused random failure:
```
1) Failure:
TestIRB::ExtendCommand#test_irb_info_multiline [/home/mame/work/ruby/test/irb/test_cmd.rb:49]:
Expected /
Ruby\sversion: .+\n
IRB\sversion:\sirb .+\n
InputMethod:\sReidlineInputMethod\swith\sReline .+ and .+\n
\.irbrc\spath: .+
/x to match "Ruby version: 2.8.0\n" +
"IRB version: irb 1.2.3 (2020-02-15)\n" +
"InputMethod: ReidlineInputMethod with Reline 0.1.4 and /tmp/test_reline_config_155659/.inputrc\n".
```
|
|
Because ruby-mode.el already removed at f03e68edb80dca962290d1fb3a6d49dabdbb911e
|
|
So that `TEST_EXCLUDES` option in common.mk works.
|
|
|