Skip to content

(MOT-4299) feat: make release channel selectable - #694

Merged
ytallo merged 1 commit into
mainfrom
feat/optional-release-channel
Aug 4, 2026
Merged

(MOT-4299) feat: make release channel selectable#694
ytallo merged 1 commit into
mainfrom
feat/optional-release-channel

Conversation

@ytallo

@ytallo ytallo commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add an explicit Registry channel to Create Tag, defaulting to next
  • allow workers that do not need staged validation to publish directly to latest
  • grant the staged Harness quickstart caller the actions: write permission required by its nested dispatcher
  • document both release paths

Behavior

  • next: publish the candidate, run candidate validation, and promote manually to latest
  • latest: publish directly to the Registry latest channel without candidate promotion

Validation

  • workflow YAML parsing and focused workflow assertions
  • bash -n harness/tests/quickstart/run-ci.sh
  • Python bytecode compilation for release scripts
  • git diff --check

Pytest was not available in the local environment.

Refs MOT-4299

Summary by CodeRabbit

  • New Features

    • Release workflows now support selecting either the next or latest registry channel.
    • The latest channel can publish directly without candidate validation or manual promotion.
  • Documentation

    • Updated release procedures, workflow guidance, experimental-release behavior, and rollback instructions to reflect the new channel options.

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview Aug 4, 2026 5:53pm
workers-tech-spec Ready Ready Preview Aug 4, 2026 5:53pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The release workflow now accepts next or latest registry channels. Tag creation records the selected channel, and the release SOP documents staged or direct publication paths. The Harness quickstart job receives explicit permissions.

Changes

Registry channel release flow

Layer / File(s) Summary
Registry channel selection
.github/workflows/create-tag.yml
Create Tag accepts next or latest and passes the selected value through REGISTRY_TAG.
Release procedure paths
docs/sops/release.md
The SOP documents direct latest releases, staged next releases, candidate validation, promotion, experimental releases, and rollback options.

Harness workflow permissions

Layer / File(s) Summary
Harness quickstart permissions
.github/workflows/release.yml
The Harness quickstart job declares actions: write and contents: read permissions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CreateTag
  participant ReleasePipeline
  participant CandidateValidation
  participant PromoteWorker
  participant Registry
  CreateTag->>ReleasePipeline: select next or latest
  alt next
    ReleasePipeline->>CandidateValidation: validate candidate
    CandidateValidation->>PromoteWorker: approve promotion
    PromoteWorker->>Registry: publish stable release
  else latest
    ReleasePipeline->>Registry: publish directly as stable release
  end
Loading

Possibly related PRs

  • iii-hq/workers#615: Modifies the same tag workflow and release SOP for selectable registry channels.
  • iii-hq/workers#692: Extends staged-release changes in the same workflow and SOP areas.

Suggested reviewers: guibeira, rohitg00, sergiofilhowz

Poem

A rabbit selects next or latest with care,
The tag carries the channel through the air.
Candidates hop through validation’s gate,
Stable releases no longer wait.
Harness permissions now stand bright—
Release paths are clear and right.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: making the release channel selectable.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/optional-release-channel

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 54 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@ytallo
ytallo marked this pull request as ready for review August 4, 2026 17:59

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/sops/release.md`:
- Around line 61-65: Update the release diagram around setupJob and channel to
route both latest and next through the shared binary-build, container-build,
bundle-build, and publish stages. Preserve candidate smoke, evidence, and
promotion steps exclusively on the next branch, while keeping latest’s path
leading to the normal GitHub Release.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 65e6ad72-a2f3-4952-a64a-b033a5a64ba4

📥 Commits

Reviewing files that changed from the base of the PR and between 0871519 and 8531e05.

📒 Files selected for processing (3)
  • .github/workflows/create-tag.yml
  • .github/workflows/release.yml
  • docs/sops/release.md

Comment thread docs/sops/release.md
Comment on lines 61 to +65
createTag[Create Tag] -->|"tag worker/vX.Y.Z"| setupJob[setup]
setupJob --> ghRelease[create public GitHub prerelease]
setupJob --> channel{registry-tag}
channel -->|latest| directPublish[publish directly to latest]
directPublish --> normalRelease[normal GitHub Release]
channel -->|next| ghRelease[create public GitHub prerelease]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Show the shared build path for latest.

The diagram routes latest from setup directly to publish. In .github/workflows/release.yml, publish requires binary-build, container-build, and bundle-build, so both channels require the build stages before publication. Update the diagram to show the shared build and publish path. Keep candidate smoke, evidence, and promotion on the next branch only.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/sops/release.md` around lines 61 - 65, Update the release diagram around
setupJob and channel to route both latest and next through the shared
binary-build, container-build, bundle-build, and publish stages. Preserve
candidate smoke, evidence, and promotion steps exclusively on the next branch,
while keeping latest’s path leading to the normal GitHub Release.

@ytallo
ytallo merged commit 36512ab into main Aug 4, 2026
18 checks passed
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