Skip to content

feat(scripts/ironbank): add release resolver for Stable and ESR releases#26080

Closed
coder-tasks[bot] wants to merge 1 commit into
mainfrom
ent-110/ironbank-esr-resolver
Closed

feat(scripts/ironbank): add release resolver for Stable and ESR releases#26080
coder-tasks[bot] wants to merge 1 commit into
mainfrom
ent-110/ironbank-esr-resolver

Conversation

@coder-tasks
Copy link
Copy Markdown
Contributor

@coder-tasks coder-tasks Bot commented Jun 4, 2026

Adds scripts/ironbank/resolve-latest-release.sh to parse the release calendar table in docs/install/releases/index.md and return the highest version among Stable and ESR releases.

Changes

  • New resolve-latest-release.sh script that fetches and parses the release calendar from index.md on the main branch
  • Identifies releases with status "Stable", "Extended Support Release", "Mainline (ESR)", or "Stable (ESR)"
  • Returns the largest semver version among matching releases
  • Supports --index-url (custom URL) and --index-file (local file) for flexibility in CI and testing
  • Comprehensive test suite (resolve-latest-release_test.sh) covering 8 scenarios

Why

The Iron Bank deployment pipeline currently resolves the Coder version using the GitHub "latest" tag, which only points to the Stable release. This misses ESR (Extended Support Release) versions, which may be newer than the current Stable release and are suitable for Iron Bank deployments.

By parsing the release calendar table (maintained by scripts/update-release-calendar.sh), the resolver correctly identifies both Stable and ESR releases and picks the largest version.

How it works

  1. Fetches docs/install/releases/index.md from GitHub (or reads a local file)
  2. Extracts the release calendar table between RELEASE_CALENDAR_START / RELEASE_CALENDAR_END markers
  3. Filters rows whose Status column contains "Stable" or "ESR"/"Extended Support"
  4. Extracts the version from the "Latest Release" column
  5. Returns the highest semver version

Testing

bash scripts/ironbank/resolve-latest-release_test.sh
# PASS: Stable only (no ESR)
# PASS: ESR larger than Stable
# PASS: Older ESR + Stable = Stable wins
# PASS: Real-world table: ESR 2.34 > Stable 2.33
# PASS: No Stable/ESR exits non-zero
# PASS: Multiple ESR + Stable = Stable wins (largest)
# PASS: ESR-only (no Stable)
# PASS: Stable (ESR) combined status
# Results: 8 passed, 0 failed

Live run: bash scripts/ironbank/resolve-latest-release.sh currently outputs v2.34.0.

Relates to: ENT-110

Generated with Coder Agents

@linear-code
Copy link
Copy Markdown

linear-code Bot commented Jun 4, 2026

ENT-110

@github-actions github-actions Bot added the community Pull Requests and issues created by the community. label Jun 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 4, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

Add resolve-latest-release.sh that parses the release calendar table in
docs/install/releases/index.md to identify the largest version number
among Stable and ESR releases. This replaces the previous approach of
using the GitHub "latest" tag, which only identified Stable releases.

The script supports both live fetching from GitHub and local file input,
enabling use in both CI pipelines and testing. ESR releases marked with
any ESR-related status ("Extended Support Release", "Mainline (ESR)",
"Stable (ESR)") are correctly identified.

Includes comprehensive tests covering all status combinations.
@Shelnutt2 Shelnutt2 force-pushed the ent-110/ironbank-esr-resolver branch from 41aab40 to b0f058e Compare June 4, 2026 20:36
@Shelnutt2 Shelnutt2 closed this Jun 4, 2026
@Shelnutt2 Shelnutt2 deleted the ent-110/ironbank-esr-resolver branch June 4, 2026 20:37
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community Pull Requests and issues created by the community.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant