| Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/rubygems/commit/087625017a
|
|
https://github.com/ruby/rubygems/commit/5bdf29f86c
|
|
It may be set to "false" if usable compiler is not found.
|
|
Apple clang aborts if cpp output is closed in middle, and leaves the
preprocessed source and reproduction shell script.
|
|
|
|
|
|
Change "and lock the mutex" to "and to lock the mutex" for correct
parallel infinitive structure.
https://github.com/ruby/rubygems/commit/94f9267b72
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
template
be checks object identity which will fail for newly-allocated strings.
eq checks value equality and is the correct matcher here.
https://github.com/ruby/rubygems/commit/828440937b
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
The Rust function hello("world") returns "Hello world, from Rust!" but
the Ruby test templates expected "Hello earth, from Rust!", causing
generated tests to fail immediately after bundle gem --ext=rust.
https://github.com/ruby/rubygems/commit/8de4c041ba
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
https://github.com/ruby/rubygems/commit/72bdf54b6d
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
I had a bit of trouble following what is going on.
Lexing produces tokens, this renames to reflect that.
https://github.com/ruby/syntax_suggest/commit/d3386ab6f4
|
|
Also add tests for the other types which currently don't have one
https://github.com/ruby/syntax_suggest/commit/db2dca2def
|
|
https://github.com/ruby/syntax_suggest/commit/c6bd4b53e6
|
|
Maybe ripper fixed it since then. But prism also doesn't have this problem.
https://github.com/ruby/syntax_suggest/commit/8bc383b2a4
|
|
Allows to remove some compatibility code with ripper
https://github.com/ruby/syntax_suggest/commit/3f2e9a7657
|
|
I want to start porting this to prism without the translation layer.
https://github.com/ruby/syntax_suggest/commit/540d4840ab
|
|
Mostly the same as for `on_kw`.
Stop comparing order for a handful of events. They are emitted by ripper in a order that is
not easy for prism to replicate. For example in`foo, bar, baz = 123`, `op` for `=` is emitted
before the last mass assign identifier (so `foo`, `bar`, `=`, `baz`.
I don't want to replicate that if I don't have to. Same for `::` in `A::B = 123` etc.
https://github.com/ruby/prism/commit/4d88aed5e9
|
|
Extract the first element instead of `join.to_i` (`String#unpack1` is
available since ruby 2.4.0, but this gem still supports 2.3).
https://github.com/ruby/resolv/commit/f518da95ae
|
|
Limit the range from -100 km to the upper limit of the 32-bit
representation.
https://github.com/ruby/resolv/commit/e6dfbe7cb0
|
|
`Size` smaller than 1m was represented as rational.
```ruby
Resolv::LOC::Size.create("0.01m").to_s #=> "1/100m"
```
Fix to represent in the proper form for `create`.
https://github.com/ruby/resolv/commit/2ff9e0585d
|
|
Limit the size to between 0cm and less than 100,000km.
https://github.com/ruby/resolv/commit/9d9e0c3044
|
|
- Leading zeros in fractional part are significant, must not be
suppressed.
- Use `Integer#divmod` to calculate division and module at once.
- Use simple comparison for exact match than regexp.
https://github.com/ruby/resolv/commit/0e3109ca3b
|
|
Limit the east-west direction to 180 degrees or less and the
north-south direction to 90 degrees or less, respectively.
https://github.com/ruby/resolv/commit/8075a1fe76
|
|
Fix `Resolv::LOC::Coord.create` hemisphere handling for LOC
coordinates. `hemi` was always `1` because `m[4]` matched `([NESW])`.
https://github.com/ruby/resolv/commit/043b5bf624
|
|
This method is available since ruby 1.9.0.
https://github.com/ruby/resolv/commit/1e05d06fbd
|
|
https://github.com/ruby/resolv/commit/451d3f367c
|
|
No need to list them all out anymore, it's just a single possibility now
https://github.com/ruby/prism/commit/893f2734cb
|
|
--only-missing-extensions
When no gems have missing extensions (e.g. on JRuby where
missing_extensions? always returns false), display an informational
message instead of raising Gem::Exception.
https://github.com/ruby/rubygems/commit/738d2dbdf6
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
JRuby does not require extension rebuilds when switching JRuby or Java
versions because Java extensions are shipped pre-compiled and JRuby does
not expose a version-specific C API. This means missing_extensions?
returning true on JRuby is almost always a false positive and the
suggested `gem pristine` is not actionable.
Return false early from missing_extensions? on JRuby so that all
downstream warnings and ignored-spec filtering are suppressed at the
source rather than patching each warning site individually.
https://github.com/ruby/rubygems/commit/ba5c7cc0ce
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
Replace gzio.read with IO.copy_stream(gzio, IO::NULL) to avoid
allocating a potentially large string when discarding unconsumed
compressed data.
https://github.com/ruby/rubygems/commit/e4d0196887
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
warning
When a GzipReader is closed before all compressed data is consumed,
zlib emits "attempt to close unfinished zstream; reset forced" warning.
This happens in open_tar_gz because the TarReader stops reading at the
end-of-archive marker, leaving unconsumed compressed data in the stream.
https://github.com/ruby/rubygems/commit/2b047e11fc
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
`yard` uses it
Start checking against the ordering of the events and also their location.
I didn't fix any of the preexisting failures and just ignored them. Some are easy to fix, others look like particularities of ripper
that I don't think anyone would rely on.
https://github.com/ruby/prism/commit/4cba29d282
|
|
pinning version
Hardcoding sigstore-cli:0.2.2 meant rubygems would need a new release
whenever sigstore-cli ships a new version. Using --conservative lets
gem exec prefer an already-installed version and falls back to the
latest when sigstore-cli is not yet installed.
https://github.com/ruby/rubygems/commit/6ac00f34de
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
The method compared against a hardcoded string, so a trailing slash
(e.g. "https://rubygems.org/") would cause auto-attestation to be
silently skipped. Now we chomp the trailing slash and compare against
Gem::DEFAULT_HOST to be consistent with the rest of the codebase.
https://github.com/ruby/rubygems/commit/a4fa24c8cf
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
When auto-attestation fails, the warning previously included
e.full_message with a full backtrace that could be noisy and expose
local paths. Now only e.message is shown by default, and the full
backtrace is included only when Gem.configuration.really_verbose is set.
https://github.com/ruby/rubygems/commit/4a4d9b8911
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
and host
The send_push_request method previously skipped all attestation handling
on JRuby, non-rubygems.org hosts, or outside GitHub Actions. This meant
that even when a user explicitly passed --attestation with a local
sigstore bundle, the attestation was silently ignored. Now we check
options[:attestations] first and always use them when provided, only
gating the auto-attestation path behind the platform/host/CI checks.
https://github.com/ruby/rubygems/commit/0178a0dc56
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
https://github.com/ruby/rubygems/commit/ea1f43c4ae
|
|
https://github.com/ruby/rubygems/commit/498401c010
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
|
|
https://github.com/ruby/rubygems/commit/74924da660
|
|
https://github.com/ruby/rubygems/commit/64f085f5ee
|
|
Fixes https://github.com/ruby/rubygems/pull/9413
https://github.com/ruby/rubygems/commit/02d2179047
|
|
on disk:
- ### Problem
This change is purely to fix a problem when developing Bundler.
When we tried to release Bundler 4.0.9, we bumped the VERSION
from `4.1.0.dev` to `4.0.9`, this condition now evaluates to false
https://github.com/ruby/rubygems/blob/34d19fa8a3f84c50e2ba65e0f39c80045e7cbfb8/bundler/lib/bundler/lockfile_generator.rb#L106.
We then ended up with a CI crash.
```
Errno::ENOENT: No such file or directory @ rb_sysopen - /Users/runner/work/rubygems/rubygems/cache/bundler-4.0.9.gem
```
### Context
Computing a checksum for the `bundler` gem is only possible
when the `bundler.gem` binary exists on disk. When a regular
user interacts with `bundler`, the spec is loaded from disk and
an associated cached `bundler.gem` should exists.
However, when developing Bundler, the spec doesn't come from disk
but from a fake spec https://github.com/ruby/rubygems/blob/34d19fa8a3f84c50e2ba65e0f39c80045e7cbfb8/bundler/lib/bundler/source/metadata.rb#L22-L28
that with no associated `bundler.gem`.
### Solution
To prevent CI from breaking whenever we make a release, we have
to skip computing a checksum if no `bundler.gem` exists.
https://github.com/ruby/rubygems/commit/01e0e61612
|
|
|
|
https://github.com/ruby/rubygems/commit/7cd3b9a08a
|
|
It appears in documentation on https://docs.ruby-lang.org/ under `Object::Ripper`
https://github.com/ruby/prism/commit/6c1000661c
|
|
In `ripper`, both go through the same converion logic.
Needed for rspec, no other failures in their own tests
https://github.com/ruby/prism/commit/510258aa2b
|
|
`tstring_beg` in particular is needed by `yard`.
Before:
> 1980 examples, 606 failures, 15 pending
After:
> 1980 examples, 582 failures, 15 pending
Thought it would be more, but oh well. It needs `on_sp` which I guess is why there are not many new passes
https://github.com/ruby/prism/commit/e1b18cb582
|
|
- In #9414 I introduced a fast path to compare gem version.
The implementation has a couple of caveats such as not computing
a sort key for gems having more than 4 segments
(major, minor, patch, security), as well as skipping gems that uses
a "timestamped" version (such as 0.0.1.https://github.com/ruby/rubygems/commit/202230081030).
The implementation also had to iterate over the segments couple of
times.
There were some concerns from some users that some gems such as
sorbet (currentlt at version 0.6.13055) would at somepoint reach
the thresold where we don't compute a sort key
(any segment > 65_000).
We can instead use a Mixed-radix solution which is more elegant and
solve some of those issues (we still don't compute a sort key for
timestamped version gems as the integer value may be larger than
what we compute for a gem that has a higher version, such as 0.1.0).
https://github.com/ruby/rubygems/commit/f8e37e6e2d
Co-authored-by: Ufuk Kayserilioglu <ufuk@paralaus.com>
|
|
https://github.com/ruby/rubygems/commit/b29d554643
|
|
Default gem gemspecs list native extension files (e.g. date_core.bundle)
without the require path prefix (lib/). In new_format mode,
register_default_spec skipped these files because they didn't match the
prefix pattern, causing find_default_spec to return nil for them.
This led to activation conflicts when a regular gem version of the same
gem was also installed: the require fallback path
(find_in_unresolved_tree) would find the native extension in the regular
gem and try to activate it, conflicting with the already-activated
default gem.
Fix by also registering non-prefixed files that have a native extension
suffix (e.g. .bundle, .so), while still skipping non-requirable files
(README, ext/ sources, etc.).
https://github.com/ruby/rubygems/commit/023fcae74f
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|