Skip to content

feat(ruby): release runbook - #45

Merged
TheVaultdweller13 merged 4 commits into
mainfrom
feat/ruby-release-runbook
Aug 14, 2026
Merged

feat(ruby): release runbook#45
TheVaultdweller13 merged 4 commits into
mainfrom
feat/ruby-release-runbook

Conversation

@TheVaultdweller13

Copy link
Copy Markdown
Contributor

🚪 Why?

This wires the Ruby SDK into the same release machinery TypeScript and Python
already use — one quarterly runbook, one endpoint reference, one automated
versioning-and-publishing pipeline for the three SDKs — ahead of the next
dated API version in October.

🔑 What?

  • Runbook (.agents/skills/release-sdk/SKILL.md) — adds the "Regenerate
    Ruby" step to the quarterly regeneration guide. Regenerating reuses the
    version already in version.rb, so the step needs no version revert.
  • Skill referencesdk-methods.md gains a Ruby column for all 550
    endpoints. A new ruby/scripts/skill_methods.rb extracts each call by
    reflecting on the loaded gem (naming stays owned by normalize_oas.rb), so
    the tables always match what the gem actually exposes; if the Ruby toolchain
    is unavailable, generation fails loudly rather than emitting a partial
    table. The Ruby pipeline now refreshes the skill on every regeneration, the
    same anti-drift loop the TS/Python release scripts run.
  • release-please + publishing — registers the ruby package (config +
    manifest), hands version ownership to release-please (generate_sdk.rb now
    reads version.rb instead of computing bumps; --set-version remains for
    the beta workflow), and wires publish.yaml to a new publish-to-rubygems
    composite action (idempotent: skips if the version is already on the
    registry).
  • DocsCLAUDE.md, RELEASING.md, ruby/DEVELOPMENT.md and the
    consumer skill now cover the three SDKs.

Merging this publishes nothing: release-please opens a Ruby Release PR once
features land, and only merging that publishes — which also requires the
RUBYGEMS_API_KEY secret (requested separately). Out of scope: the Ruby job
in beta-publish.yaml (small follow-up touching beta-detect.mjs).

@TheVaultdweller13 TheVaultdweller13 changed the title Feat/ruby release runbook feat(ruby): release runbook Aug 12, 2026

@jorgeteixe jorgeteixe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overall looks fine. Some nitpicks, up to you:

  • I think the Gemfile.lock will be drifting in every release... maybe its worth to untrack it or make a commit back? I am not sure of the solution but you get the idea.
  • We should make sure the first release is 2.x.x!
  • sdk-methods.md's Ruby cells show no arguments

@TheVaultdweller13

Copy link
Copy Markdown
Contributor Author

@jorgeteixe

  1. Same as uv.lock: gem build reads the version from the gemspec, not the
    lockfile, so a stale line there can't affect what gets published (checked it. Bumping version.rb with a stale lockfile still builds the right version).
    Extended the RELEASING.md note to mention it.
    Left it tracked because it pins RuboCop: with NewCops: enable, an unpinned version would break CI whenever RuboCop ships new cops.

  2. Guaranteed: the manifest is seeded at 2.0.0, so any computed release is 2.x or higher. Note the first published version will be the next bump (2.1.0). Documented in RELEASING.md.

  3. Good catch. Ruby cells now carry the real required arguments, read by reflection from the gem.

@jacobobq jacobobq 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.

Looking good!

@TheVaultdweller13
TheVaultdweller13 merged commit 4ff1d57 into main Aug 14, 2026
1 check passed
@TheVaultdweller13
TheVaultdweller13 deleted the feat/ruby-release-runbook branch August 14, 2026 11:24
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.

3 participants