Skip to content

feat: Add app release flow (Changesets) and API versioning policy - #180

Open
thekidnamedkd wants to merge 2 commits into
mainfrom
app-release-and-api-versioning-docs
Open

feat: Add app release flow (Changesets) and API versioning policy#180
thekidnamedkd wants to merge 2 commits into
mainfrom
app-release-and-api-versioning-docs

Conversation

@thekidnamedkd

@thekidnamedkd thekidnamedkd commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Two independent versioning concerns, deliberately decoupled from the MCP npm flow (#179): a working app release flow and the API contract versioning policy.

App release flow (implemented)

Lightweight subset of the Aragon standard (Changesets + a signed Release PR), trimmed to opsec + low friction — no Slack/Linear/staging/e2e.

  • .github/workflows/release.yml (manual dispatch, prepare) — consumes pending changesets → bumps version + CHANGELOG.md, commits GPG-signed, opens release/vX.Y.Z → main.
  • .github/workflows/release-finalize.yml (on the release PR merging) — tags vX.Y.Z + cuts a GitHub Release from the CHANGELOG section. Needs no secrets.
  • Changesets wired up (.changeset/, config, seeded package.json version 0.1.0).
  • Opsec pulled from the Aragon pattern: secrets via 1Password (only OP_SERVICE_ACCOUNT_TOKEN stored in GitHub), GPG-signed release commit, SHA-pinned actions, read-only built-in token + scoped bot PAT for writes (so the Release PR fires CI).
  • Tag namespace v*, disjoint from mcp-v* — the two release flows never cross-trigger.

Content stays separate: this versions app code only. Content ships on otf-cms's own publish clock and is read at runtime — a content edit needs no app release, and an app release never reships content.

API versioning policy (docs)

  • docs/api-versioning.md/api/v1 is a manual, contract-major version: additive changes ship under v1, breaking changes cut /api/v2 alongside. Not programmatic; recommends a CI contract-diff guard (detect, don't auto-bump). Four-clocks table so contract / data-provenance / app-release / MCP-package never couple.
  • docs/app-releases.md — the flow above + DevOps handoff.

DevOps handoff

OP_SERVICE_ACCOUNT_TOKEN (GitHub secret) + a 1Password vault with ARABOT_PAT (contents+PR write) and the bot GPG key/passphrase. Details in docs/app-releases.md; confirm/repoint the op://kv_otf_infra/... paths in release.yml.

Not built (intentional)

The app release.yml staging/e2e ceremony, release-pr-cancel, rollback/hotfix, and the API contract-diff CI test — described as scope, deferred to follow-ups.

@vercel

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ownership-token-framework Ready Ready Preview, Comment Jul 3, 2026 10:46am

Request Review

@thekidnamedkd thekidnamedkd changed the title Add API versioning policy and app release scope docs chore: Add API versioning policy and app release scope docs Jul 3, 2026
@thekidnamedkd thekidnamedkd changed the title chore: Add API versioning policy and app release scope docs Add app release flow (Changesets) and API versioning policy Jul 3, 2026
@thekidnamedkd thekidnamedkd changed the title Add app release flow (Changesets) and API versioning policy feat: Add app release flow (Changesets) and API versioning policy Jul 3, 2026
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