Skip to content

[pull] master from ruby:master - #1346

Merged
pull[bot] merged 10 commits into
turkdevops:masterfrom
ruby:master
Aug 25, 2026
Merged

[pull] master from ruby:master#1346
pull[bot] merged 10 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Aug 25, 2026

Copy link
Copy Markdown

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 : )

meganemura and others added 10 commits August 25, 2026 02:34
… header format

release_date_for in spec/support/build_metadata.rb matched the
changelog's old `## VERSION (DATE)` header, but .changelog.yml has
generated `## VERSION / DATE` headers since Bundler 4.0.9. The regex
silently failed to match, so built_at was baked as nil into every
release since, and Bundler::BuildMetadata.timestamp fell back to
Time.now.utc on every invocation — `bundle version` always showed
today's date instead of the real release date.

spec/support/build_metadata.rb is release tooling for the
bundler:build_metadata rake task, not part of the RSpec bundler suite;
spec_helper.rb never requires it. The sibling release script
tool/changelog.rb already has its test in test/test_changelog_generator.rb,
so the regression test for this lives in test/test_build_metadata_generator.rb
to match.

ruby/rubygems@b69384e96b

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The fixture changelog still used the old `## VERSION (DATE)` header, so
the fixed `release_date_for` no longer matched it and the released case
of the version spec failed.

ruby/rubygems@36ee802a7e

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes the Style/RegexpLiteral offense from CI.

ruby/rubygems@c4069df44d

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…undaries

The basename was cut with byteslice, which can split a multibyte
character in half. Filesystems enforcing UTF-8 validity such as APFS then
reject the temporary name with EILSEQ.

ruby/rubygems@a7dc5647b0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e destination

The temporary file was renamed into place before being closed, so
buffered data had not reached the filesystem yet and a concurrent reader
could observe an empty destination. A flush failure such as ENOSPC would
surface only after the destination had already been replaced. Cleanup
also moved to an ensure block, so an interrupt no longer leaks the
temporary file.

ruby/rubygems@774bd08837

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Arrays sharing one buffer have the same data pointer, so rb_ary_splice()
took `a` in `b = a.dup; b.pop; b.concat(a)` for `b` itself and rebased
the source onto `b`'s shorter storage, copying uninitialized memory.
Have the callers tell whether the replacement really is `ary`.

[Bug #22259]

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Most callers have the replacement as an array object; let them pass it
directly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Aug 25, 2026
@pull pull Bot added the ⤵️ pull label Aug 25, 2026
@pull
pull Bot merged commit 45088e2 into turkdevops:master Aug 25, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants