From e8fcbcf5233befc21b4f6d3f165f0437e3805027 Mon Sep 17 00:00:00 2001 From: sherwinski Date: Wed, 20 May 2026 15:48:29 -0700 Subject: [PATCH] ci(create-release): tag stable releases as both `stable` and `current` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `sdk-releases` static app (`scripts/fetch-releases.js`) walks GitHub releases newest-first and assigns each release to channel slots on a first-come-wins basis. Today this workflow emits `Channels: Current` for every stable release, so the `stable` slot in the static app is permanently empty across consuming SDK repos. Switch the stable-release path to emit `Channels: stable, current`. Both slots now track the latest stable release without any per-repo configuration. Pre-release paths keep their dedicated channels (`alpha` / `beta`), but lowercased so all three emissions match the documented convention in `sdk-releases/README.md`. The parser is case-insensitive (`/gi` flag plus `.toLowerCase()` in `fetch-releases.js:37,41`), so the casing change is purely cosmetic — no behavior change for existing releases. `releaseType` renamed to `channels` since the value can now hold a comma-separated list of channel tags, not a single release type. --- .github/workflows/create-release.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 826713d..0aca1f4 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -241,12 +241,18 @@ jobs: } }; - // Determine release type from version + // Determine which channels this release populates in the + // `sdk-releases` static app (`scripts/fetch-releases.js`). + // Stable releases fill both `stable` and `current` slots — + // the app walks releases newest-first and first-come-wins + // per slot, so this keeps both slots tracking the latest + // stable release without any per-repo branching logic. + // Pre-release suffixes still route to their own channel. const version = '${{ steps.release_version.outputs.version_to }}'; - const releaseType = version.includes('-alpha') ? 'Alpha' : - version.includes('-beta') ? 'Beta' : 'Current'; + const channels = version.includes('-alpha') ? 'alpha' : + version.includes('-beta') ? 'beta' : 'stable, current'; - let releaseNotes = `Channels: ${releaseType}\n\n`; + let releaseNotes = `Channels: ${channels}\n\n`; releaseNotes += buildSection('⚠️ Breaking Changes', breaking); releaseNotes += buildSection('🚀 New Features', features); releaseNotes += buildSection('🐛 Bug Fixes', fixes);