Skip to content

fix(release): build the gem from inside ruby/ - #453

Merged
paudley merged 1 commit into
mainfrom
fix/rubygems-build-directory
Sep 4, 2026
Merged

fix(release): build the gem from inside ruby/#453
paudley merged 1 commit into
mainfrom
fix/rubygems-build-directory

Conversation

@paudley

@paudley paudley commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

The RubyGems lane could never have worked.

gem build resolves spec.files against the current directory, but the gemspec computes them with Dir.chdir(root) so they are relative to ruby/. Running it from the repository root made RubyGems look for ./lib/gmeow/gts.rb:

ERROR:  While executing gem ... (Gem::InvalidSpecificationException)
    ["lib/gmeow/gts.rb"] are not files

This is the first gem this repository has ever published — there are no ruby-v tags before this release — so nothing had exercised the path.

The telling part: scripts/package_dry_run_wrappers.sh:530 does cd "${GTS_WORKSPACE}/ruby" before building. The dry run and the release lane disagreed about the working directory, and only the dry run was ever run — so the dry run passed continuously while the thing it was supposed to be rehearsing was broken.

Surfaced while pushing ruby-v1.0.0.rc.1. The build failed before any registry upload, so nothing reached RubyGems and the tag can be re-cut.

The RubyGems lane could never have worked. gem build resolves spec.files
against the CURRENT directory, but the gemspec computes them with
Dir.chdir(root) so they are relative to ruby/. Running it from the repository
root made RubyGems look for ./lib/gmeow/gts.rb and fail validation:

  ERROR:  While executing gem ... (Gem::InvalidSpecificationException)
      ["lib/gmeow/gts.rb"] are not files

This is the first gem this repository has ever published -- there are no ruby-v
tags before this release -- so nothing had exercised the path. The wrapper
package dry run does 'cd ${GTS_WORKSPACE}/ruby' before building, which is
exactly why it passed while the release lane could not build at all: the two
disagreed about the working directory, and only the dry run was ever run.

Surfaced while pushing ruby-v1.0.0.rc.1. The build failed before any registry
upload, so nothing reached RubyGems and the tag can be re-cut.
@paudley
paudley requested a review from ErinAudley as a code owner September 4, 2026 18:44
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 26 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 97 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: d8065116-e5f1-494a-aee9-42294683d90e

📥 Commits

Reviewing files that changed from the base of the PR and between b869bf2 and 6cffda9.

📒 Files selected for processing (1)
  • .github/workflows/release-rubygems.yaml

Comment @coderabbitai help to get the list of available commands.

@paudley
paudley merged commit 5d798b0 into main Sep 4, 2026
31 checks passed
@paudley
paudley deleted the fix/rubygems-build-directory branch September 4, 2026 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant