Skip to content

chore(ruby): upgrade Ruby SDK generator to IR v67#17025

Merged
cadesark merged 2 commits into
mainfrom
devin/1783724254-ruby-ir67-upgrade
Jul 13, 2026
Merged

chore(ruby): upgrade Ruby SDK generator to IR v67#17025
cadesark merged 2 commits into
mainfrom
devin/1783724254-ruby-ir67-upgrade

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Description

Upgrades the modern Ruby generator (generators/ruby-v2) to consume IR v67. This is the generic IR-version bump only — no behavioral/feature changes. The only structural difference between IR v66 and v67 is that the AvailabilityStatus enum gained values (a strict superset); ruby-v2 does not branch on availability status, so the full seed regen produces no output changes.

The IR-driven idempotency feature builds on top of this and lives in a separate PR (#17008), which is based on this branch and depends on it.

Changes Made

  • Bump every @fern-fern/ir-sdk dependency under generators/ruby-v2/**/package.json from 66.x67.11.0 (base, model, sdk); reconciled pnpm-lock.yaml.
  • seed/ruby-sdk-v2/seed.yml: irVersion: v66v67.
  • migrateFromV67ToV66.ts: register RUBY_SDK in firstGeneratorVersionToConsumeNewIR as "1.16.0-rc.0" (next generator release, matching the TYPESCRIPT_SDK/PYTHON_SDK pattern) so the CLI feeds v67 IR instead of down-migrating to v66.
  • Compile fix for the v67 type surface: ObjectProperty now requires defaultValue, so WrappedRequestGenerator.ts passes defaultValue: undefined at its two construction sites (preserves prior behavior).
  • chore changelog entry under generators/ruby-v2/sdk/changes/unreleased/.
  • Full seed regen for ruby-sdk-v2: 137/137 fixtures pass, zero generated-output diffs (confirming v67 is byte-identical to v66 for ruby-v2).
  • Updated README.md generator (if applicable) — n/a

Testing

  • Unit tests added/updated — @fern-api/ir-migrations (89) and @fern-api/api-workspace-commons suites pass; tsc compiles ruby-v2.
  • Manual testing completed — pnpm seed test --generator ruby-sdk-v2 --local --skip-scripts → 137/137 pass with no output changes.

Link to Devin session: https://app.devin.ai/sessions/dcab1efb11c3438884ebf517443d6b5b
Requested by: @cadesark

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@nitpickybot nitpickybot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mechanical IR v66→v67 bump for the Ruby v2 generator. Dependency versions, lockfile, seed config, and migration registration are consistent, and the compile fix for the new required defaultValue property preserves prior behavior. No issues found.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.

Tip: disable this comment in your organization's Code Review settings.

@github-actions

Copy link
Copy Markdown
Contributor

Docs Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-07-10T05:18:08Z).

Fixture main PR Delta
docs 241.5s (n=5) 235.0s (35 versions) -6.5s (-2.7%)

Docs generation runs fern generate --docs --preview end-to-end against the benchmark fixture with 35 API versions (each version: markdown processing + OpenAPI-to-IR + FDR upload).
Delta is computed against the nightly baseline on main.
Baseline from nightly run(s) on main (latest: 2026-07-10T05:18:08Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-07-10 23:27 UTC

@github-actions

Copy link
Copy Markdown
Contributor

SDK Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-07-10T05:18:08Z).

Full benchmark table (click to expand)
Generator Spec main (generator) main (E2E) PR (generator) Delta
csharp-sdk square 72s (n=5) 113s (n=5) 64s -8s (-11.1%)
go-sdk square 135s (n=5) 285s (n=5) 135s +0s (+0.0%)
php-sdk square 62s (n=5) 84s (n=5) 47s -15s (-24.2%)
python-sdk square 146s (n=5) 237s (n=5) 129s -17s (-11.6%)
ruby-sdk-v2 square 92s (n=5) 124s (n=5) 82s -10s (-10.9%)
rust-sdk square 175s (n=5) 165s (n=5) 165s -10s (-5.7%)
swift-sdk square 61s (n=5) 437s (n=5) 52s -9s (-14.8%)
ts-sdk square 127s (n=5) 128s (n=5) 115s -12s (-9.4%)

main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via fern generate). main (E2E): full customer-observable time including build/test scripts (nightly baseline, informational). Delta is computed against generator-only baseline.
⚠️ = generation exited with a non-zero exit code (timing may not reflect a successful run).
Baseline from nightly runs on main (latest: 2026-07-10T05:18:08Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-07-10 23:28 UTC

@cadesark cadesark merged commit 84670a3 into main Jul 13, 2026
218 of 219 checks passed
@cadesark cadesark deleted the devin/1783724254-ruby-ir67-upgrade branch July 13, 2026 16:03
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.

2 participants