Skip to content

Add lockstep release workflow and migration docs - #454

Draft
umair-ably wants to merge 2 commits into
pubsub-split/restructurefrom
pubsub-split/release-tooling
Draft

Add lockstep release workflow and migration docs#454
umair-ably wants to merge 2 commits into
pubsub-split/restructurefrom
pubsub-split/release-tooling

Conversation

@umair-ably

@umair-ably umair-ably commented Sep 1, 2026

Copy link
Copy Markdown

Stacked on #453 (review that first — this diff shows only the release-tooling changes).

Implements the release-tooling part of the PubSub package split (PDR-091b):

  • release.yml: one workflow_dispatch releases ably-pubsub-core and ably-pubsub-server at the same version via RubyGems trusted publishing (OIDC — no long-lived API keys).
    • A pre-flight fails before anything is pushed if the version input, either gem's version constant, or the server gem's exact = x.y.z core pin disagree — a partial or skewed release is impossible.
    • Reversible on failure: if the server push fails after the core push succeeded, re-running with the same version skips the already-published gem.
    • The server gem is only pushed once the core version is visible on RubyGems, so the exact pin always resolves.
  • CONTRIBUTING.md: documents the two-gem layout and replaces the manual rake release process (and the ably-ruby-rest release step — both legacy gems are maintenance-only under PDR-091b).
  • UPDATING.md: 1.x → 2.0 migration guide with the old-name → new-name mapping table, marked draft pending PDR-091d.

Not in this PR (deferred admin, tracked in the rollout plan): configuring the Trusted Publishers on rubygems.org for both gems — the workflow will fail until that's done, and the bindings must target the post-rename repo name.

🤖 Generated with Claude Code

umair-ably and others added 2 commits September 2, 2026 11:22
- release.yml publishes ably-pubsub-core and ably-pubsub-server at the
  same version via RubyGems trusted publishing (OIDC, no long-lived
  keys). A pre-flight fails before anything is pushed if the version
  input, either gem's version constant, or the server gem's exact core
  pin disagree. Partial releases fail reversibly: re-running with the
  same version skips already-published gems.
- CONTRIBUTING.md documents the two-gem layout and the new release
  process; the manual rake release and the ably-ruby-rest step are
  gone (both legacy gems are maintenance-only per PDR-091b).
- UPDATING.md gains the 1.x -> 2.0 migration section with the
  old-name -> new-name mapping table, marked draft pending PDR-091d.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Runs the same version-consistency assertions as release.yml's
pre-flight and builds both gems on every PR, so a version-file or
gemspec regression surfaces immediately instead of at release time.
Publishes nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant