| Age | Commit message (Collapse) | Author |
|
nothing
https://github.com/rubygems/rubygems/commit/0629e27dda
|
|
16 beta
|
|
[Bug #20593]
It's fairly common to use `format` to interpolate a number of values
into a user provided strings.
The arguments not matching are a problem when they are positional,
but when they are named, it's absolutely fine and we shouldn't
emit a warning.
|
|
frozen mode
If there's a lockfile, but it's out of sync with the Gemfile because a
dependency has been deleted, and frozen mode is set, Bundler will print
the following strange error:
```
$ bundle add rake
, but the lockfile can't be updated because frozen mode is set
You have deleted from the Gemfile:
* rake (~> 13.2)
Run `bundle install` elsewhere and add the updated Gemfile to version control.
```
This commit changes the error to:
```
Some dependencies were deleted from your gemfile, but the lockfile can't be updated because frozen mode is set
You have deleted from the Gemfile:
* rake (~> 13.2)
Run `bundle install` elsewhere and add the updated Gemfile to version control.
```
https://github.com/rubygems/rubygems/commit/452da4048d
|
|
mode set
If Gemfile is empty and there's no lockfile (situation after `bundle init`), and
`frozen` is configured, running `bundle add` will result in an strange
error, like this:
```
$ bundle add rake
, but the lockfile can't be updated because frozen mode is set
You have deleted from the Gemfile:
* rake (~> 13.2)
Run `bundle install` elsewhere and add the updated Gemfile to version control.
```
This commit fixes the problem to instead print
https://github.com/rubygems/rubygems/commit/152331a9dc
|
|
when locked for a specific platform
If they are already in the lockfile as the most specific variant for a
platform, we shouldn't change that unless explicitly unlocking.
https://github.com/rubygems/rubygems/commit/a901660498
|
|
Instead of having to do a complete pass after resolve.
To do this, we add to the ruby group all the platform specs with the
same dependencies as the ruby specs.
https://github.com/rubygems/rubygems/commit/e50415f2a6
|
|
https://github.com/rubygems/rubygems/commit/e2c1bc1b6c
|
|
It results in more consistent error messages.
https://github.com/rubygems/rubygems/commit/a4b34361cc
|
|
https://github.com/rubygems/rubygems/commit/fc8c853345
|
|
While working on something else I noticed:
* Usage of uppercased "RUBY" and "JAVA" as platforms, when those don't
really exist.
* Usage of some test gems with "1.0" as gemspec version and "1.0.0" as
actual version.
This commit fixes both inconsistencies to make things more expectable.
https://github.com/rubygems/rubygems/commit/e3ec32e247
|
|
https://github.com/rubygems/rubygems/commit/6d6646b8bc
|
|
[Feature #19236]
When building a large hash, pre-allocating it with enough
capacity can save many re-hashes and significantly improve
performance.
```
/opt/rubies/3.3.0/bin/ruby --disable=gems -rrubygems -I./benchmark/lib ./benchmark/benchmark-driver/exe/benchmark-driver \
--executables="compare-ruby::../miniruby-master -I.ext/common --disable-gem" \
--executables="built-ruby::./miniruby --disable-gem" \
--output=markdown --output-compare -v $(find ./benchmark -maxdepth 1 -name 'hash_new' -o -name '*hash_new*.yml' -o -name '*hash_new*.rb' | sort)
compare-ruby: ruby 3.4.0dev (2024-03-25T11:48:11Z master f53209f023) +YJIT dev [arm64-darwin23]
last_commit=[ruby/irb] Cache RDoc::RI::Driver.new (https://github.com/ruby/irb/pull/911)
built-ruby: ruby 3.4.0dev (2024-03-25T15:29:40Z hash-new-rb 77652b08a2) +YJIT dev [arm64-darwin23]
warming up...
| |compare-ruby|built-ruby|
|:-------------------|-----------:|---------:|
|new | 7.614M| 5.976M|
| | 1.27x| -|
|new_with_capa_1k | 13.931k| 15.698k|
| | -| 1.13x|
|new_with_capa_100k | 124.746| 148.283|
| | -| 1.19x|
```
|
|
Previously, a TypeError was not raised if there were no thread
variables, because the conversion to symbol was done after that
check. Convert to symbol before checking for whether thread
variables are set to make the behavior consistent.
Fixes [Bug #20606]
|
|
add_runtime_dependency
https://github.com/rubygems/rubygems/commit/9a08043858
|
|
options
https://github.com/rubygems/rubygems/commit/d4360c9032
|
|
resolution
If it has been explicitly added by `bundle lock --add-platform`, we
don't want to remove it.
https://github.com/rubygems/rubygems/commit/09cf921dd6
|
|
https://github.com/rubygems/rubygems/commit/18b38ca6b4
|
|
|
|
|
|
Instead, build it during setup when in CI.
This should avoid some Windows specific test failures when Bundler
copies the same files from multiple processes and runs into EACESS
errors.
https://github.com/rubygems/rubygems/commit/c194a1d753
|
|
permission bit
https://github.com/rubygems/rubygems/commit/979cd898f9
|
|
https://github.com/rubygems/rubygems/commit/2954ab79a9
|
|
https://github.com/rubygems/rubygems/commit/f58660ffcc
|
|
This commit switches out the full gemspec validation for a partial one
which only performs resolution related checks. This will allow gem
authors to run `bundle` commands immediately after creating a new gem
with Bundler, rather than having to fix metadata validation issues in
the default gemspec.
https://github.com/rubygems/rubygems/commit/d5aa9cae9d
|
|
|
|
This was an optimization for versions prior to 1.9 that traverse the
AST at runtime.
|
|
If $HOME isn't a valid directory, these specs fail, but I think it
is better to skip in this case, as it does not indicate a bug.
This fixes specs when run in the OpenBSD port, which sets $HOME
to an invalid directory to ensure that software's build system
is not accidentally relying on it.
|
|
a full unlock
https://github.com/rubygems/rubygems/commit/a8670e43f8
|
|
When locked only to RUBY, and some locked spec does not meet locked
dependencies, Bundler would remove the only locked platform and end up
creating a lockfile with empty sections.
We can't rely on our criteria to remove invalid platforms if locked
specs are not valid in the first place.
https://github.com/rubygems/rubygems/commit/1dba05cf53
|
|
https://github.com/rubygems/rubygems/commit/9f08241d01
|
|
Calling `remote!` or `cached!` on the source was expiring local specs
for now reason. It's unnecessary to override these methods for path
sources since they only deal with local specifications.
https://github.com/rubygems/rubygems/commit/aa93b196a2
|
|
local platform is locked
https://github.com/rubygems/rubygems/commit/36a02c6128
|
|
If RUBY is the only platform in the lockfile, we were skipping adding
the local platform to the list of resolution platforms. This generally
works anyways, because we had some code to still add it if the RUBY
platform is not valid for the set of locked gems.
However, sometimes it can happen that "RUBY" is valid for the current
set of locked gems, but when adding a new dependency, it becomes
invalid. For example, when adding sorbet to a Gemfile, that will
introduce `sorbet-static` as an indirect dependency which does not have
a generic "RUBY" variant. This will cause resolution to take a long time
continuously backtracking trying to find solutions that don't introduce
`sorbet-static` as a dependency and will eventually fail.
Instead, we can always add the local platform to the set of resolution
platforms before resolving, and remove it as necessary after resolution
so that we lock the correct set of platforms.
https://github.com/rubygems/rubygems/commit/6ed1fe6050
|
|
* The string search parser was more memory efficient but
in some cases, much slower. Reverting until a better
solution is found.
* Handle the situation where the line might be blank (Artifactory bug)
https://github.com/rubygems/rubygems/commit/222d38737d
|
|
https://github.com/rubygems/rubygems/commit/5c2ad44c18
|
|
`current_dependencies` doesn't return gems in optional groups, while `specs` would
Closes https://github.com/rubygems/rubygems/pull/7757
https://github.com/rubygems/rubygems/commit/c797e95636
|
|
* https://github.com/ruby/net-ftp/pull/34
* https://github.com/ruby/net-ftp/issues/36
|
|
Namely, when a gem has not previously been installed, and Bundler is
using the compact index API, fund metadata was not getting printed
because the proper delegation was not implemented in the specification
class used by the compact index.
https://github.com/rubygems/rubygems/commit/9ef5139f60
|
|
https://github.com/rubygems/rubygems/commit/f4ce3aae71
|
|
`MultiFormatter#print_exception` should respect `--error-output stderr`.
|
|
https://github.com/rubygems/rubygems/commit/4bcdb854a2
|
|
[Bug #20573]
Followup: https://github.com/ruby/ruby/pull/10960
I believe `Kernel#warn` should behave in the same way than internal
`rb_warning_* APIs
|
|
https://github.com/rubygems/rubygems/commit/19a0e3730c
|
|
|
|
`SPEC_TEMP_DIR` is not present until `tmp()` method is called
on parallel run. In this case `tmp()` is called with `File.umask = 0`.
This patch makes `SPEC_TEMP_DIR` before `File.umask = 0`.
To solve the issue essentially, I think `SPEC_TEMP_DIR` should be
prepared at the beginning of parallel process.
|
|
So that those lockfiles still work with older Bundler versions.
https://github.com/rubygems/rubygems/commit/880275bb66
|
|
|
|
binstubs
https://github.com/rubygems/rubygems/commit/076aba8b1c
|
|
```
1)
Dir.mktmpdir when passed a block yields the path to the passed block ERROR
ArgumentError: parent directory is world writable but not sticky: /tmp/rubytest.wlu5cs_11
/tmp/ruby/src/trunk/lib/tmpdir.rb:113:in 'Dir.mktmpdir'
/tmp/ruby/src/trunk/spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb:39:in 'block (2 levels) in <top (required)>'
```
This weird error comes from world-writable (and not sticky) directory
of `SPEC_TEMP_DIR`.
This patch checks `SPEC_TEMP_DIR` is not world-writable if exists
and `File.umask` contains o+w mask.
|