[pull] master from ruby:master#942
Merged
pull[bot] merged 12 commits intoturkdevops:masterfrom Apr 17, 2026
Merged
Conversation
When update-NEWS-gemlist.rb drops a bundled/default gem entry from NEWS.md (because it no longer differs from the previous-release snapshot), the matching `[gem-vX.Y.Z]: ...` link definitions were left behind by update-NEWS-github-release.rb. Detect refs that are no longer cited from the body and drop them alongside the ones we re-emit, while preserving defs still referenced by gems whose release range could not be refreshed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
GitHub API failures (rate limit, transient 5xx, repo missing) used to abort the whole script mid-run, leaving NEWS.md in a partially regenerated state. Wrap the per-gem Octokit call so a single failure only skips that gem with a stderr warning. Centralise stdgems.json and remote NEWS.md fetches behind http_get so the script aborts with a readable error when the upstream data source is unreachable, instead of dumping a Net::HTTP backtrace. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Remove the bundler branch in resolve_repo: collect_gem_updates skips bundler before resolve_repo is ever consulted, so the mapping was unreachable. * Inline the gem_name_normalized ternary, which had the same value in both arms. * Remove the unused tag field from footnote_links and switch to map. * Drop require "set" since Set is autoloaded on supported Ruby versions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The "to" side of the diff used to come from parsing NEWS.md, which made
this script depend on update-NEWS-gemlist.rb having already written the
right versions there. Read the authoritative sources directly: scan
{ext,lib}/**/*.gemspec for default gems (mirroring the logic in
default_gems_list.yml), pick up the RubyGems version from
lib/rubygems.rb, and load gems/bundled_gems for the bundled set.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The " * 1.2.3 to [v1.2.4][gem-v1.2.4], ..." sub-bullet was assembled in two places with the same expression. Pull it into a single helper so the formatting and the bundler-prefix stripping live in one spot. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Drop the bundler- tag-prefix handling from fetch_release_range, collect_gem_updates, and format_release_diff. collect_gem_updates skips the bundler gem before any of these run, so the special-case prefix stripping never had a chance to fire. * Rename fetch_versions_to_from_news to fetch_versions_from_news now that the "to" side comes from load_current_versions; the function only feeds the "from" baseline. * Use Enumerable#to_h to build result_by_name, and remove a couple of comments that just restate the immediately following code. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
stdgems.org's "X.Y" key tracks the latest 4.0.x patch level, so once a gem gets bumped in a Ruby patch release the diff baseline shifts forward and history that should appear in NEWS.md for the next minor disappears. Prefer the explicit "X.Y.0" key when present so the baseline always points at the original X.Y.0 release; fall back to "X.Y" or the highest matching patch otherwise. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
RubyGems and bundler were skipped outright in collect_gem_updates, so NEWS.md never picked up the rubygems/rubygems releases shipped between the X.Y.0 baseline and the in-development X.(Y+1).0.dev. Wire them through resolve_repo (RubyGems → rubygems/rubygems, bundler same repo with a "bundler-" tag prefix) and teach fetch_release_range to filter and look up tags by that prefix. Display tags strip the prefix so the rendered diff reads "4.0.3 to v4.0.4, ..." for both gems while the footnote URLs still point at the actual tag names. When the "to" version ends in .dev/.beta/.rc/etc., the lookup falls back to the highest released tag so unreleased dev versions still produce a range. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ve dependencies I am seeing the following error during bundle install: ``` Gem::MissingSpecError: Could not find 'ffi' (>= 1.15.5) among 48 total gem(s) (Gem::MissingSpecError) ``` This is reproducible with: ```ruby source 'https://rubygems.org' gem 'llhttp-ffi' ``` It seems only direct dependencies are checked when determining whether a Gem with native extensions is ready to install. I believe this can lead to a failure if a transitive dependency is not yet installed. In the example above, llhttp-ffi depends on ffi-compiler, which depends on ffi. Since ffi-compiler has no extensions, it is installed immediately without waiting for ffi. When llhttp-ffi then checks its direct dependencies, ffi-compiler is already installed, so llhttp-ffi starts building its native extension. The build requires ffi, which may not have been installed yet. ruby/rubygems@a1f5751177
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )