Skip to content

[Chore] Add Changesets-based develop to main release workflow - #38

Merged
mrubens merged 7 commits into
developfrom
chore/release-workflow-changesets
Jul 10, 2026
Merged

[Chore] Add Changesets-based develop to main release workflow#38
mrubens merged 7 commits into
developfrom
chore/release-workflow-changesets

Conversation

@roomote-roomote-v1

@roomote-roomote-v1 roomote-roomote-v1 Bot commented Jul 9, 2026

Copy link
Copy Markdown

Rebased and fixed up for current develop (merge conflict resolution + 0.0.2 lineage). Follow up by mentioning @openmote, in the web UI, or in Slack.

What changed

Adds a single-product Changesets release workflow for promoting developmain and cutting semantic product tags:

  • Seeds lockstep 0.0.1 versions across the monorepo (first Version PR patch → 0.0.2) and installs @changesets/cli with a fixed: ["@roomote/*"…] package list by name.
  • On develop pushes, release.yml opens/refreshes a Release Roomote Version PR via changesets/action, then a Promote vX.Y.Z PR to main when the product version is untagged and no changesets remain.
  • On main pushes, tag-release.yml creates annotated vX.Y.Z tags (requires RELEASE_BOT_TOKEN) so publish-ghcr.yml can publish production images + latest.
  • publish-ghcr.yml creates the GitHub Release only after both roomote-app and roomote-worker multi-arch images exist for the tag (keeps releases/latest honest). Keeps current develop notify-ops hook; does not revive removed preview/Railway deploy jobs.
  • Release script unit tests in CI; knip ignores the Changesets CLI binary dependency.
  • Docs: product release overview in CONTRIBUTING.md + .changeset/README.md (main = merge-only, develop = squash-only). Dropped links to deleted .agent-guidance/.

Why this change was made

Roomote needed a repeatable product version and promote path onto refreshed develop, with version lineage aiming at 0.0.2 after existing v0.0.1.

Impact

Operators get Version → Promote → tag → image → GitHub Release automation. Self-host releases/latest stays tied to product tags whose images are ready. No end-user product UI change.

Merge notes

  • Squash-merge this PR into develop (develop branch rules).
  • Ensure repo secret RELEASE_BOT_TOKEN is set before first promote to main.
  • Confirm GitHub rulesets: main merge-only, develop squash-only.

@roomote-roomote-v1

roomote-roomote-v1 Bot commented Jul 9, 2026

Copy link
Copy Markdown
Author

No code issues found. See task

  • .changeset/config.json:5 no longer uses the literal @roomote/* fixed group; it now enumerates all 27 @roomote/* workspace packages, and the fixed list matches the current workspace package set.
  • .github/workflows/tag-release.yml:20-62 now fails closed when RELEASE_BOT_TOKEN is absent and uses RELEASE_BOT_TOKEN for checkout/tag push, so product v* tags are no longer pushed with GITHUB_TOKEN and the GHCR/release workflow is not wedged by a token-less tag.

@roomote-roomote-v1
roomote-roomote-v1 Bot force-pushed the chore/release-workflow-changesets branch from ee5ec44 to 1db402c Compare July 9, 2026 16:10
mrubens added 3 commits July 9, 2026 16:27
Wire optional Changesets, Version/Promote PR automation, v* GitHub Releases on main, and worker prerelease guards into the existing GHCR publish path.
List every workspace package in the changesets fixed group (globs are not
expanded) so versions stay lockstep, and create the product GitHub Release
only after publish-ghcr has verified roomote-app and roomote-worker images.
Fail closed in tag-release.yml when the bot token is missing instead of
pushing v* with GITHUB_TOKEN, which never retriggers publish-ghcr or the
post-image GitHub Release job and can leave a version stuck.
@roomote-roomote-v1
roomote-roomote-v1 Bot force-pushed the chore/release-workflow-changesets branch from 1db402c to 67caf95 Compare July 9, 2026 16:27
roomote added 3 commits July 10, 2026 22:03
Merge origin/develop into the Changesets release branch, keep create-github-release
alongside notify-ops (drop removed deploy-preview bits), accept agent-guidance
deletion, document main merge-only / develop squash-only, and seed product
versions at 0.0.1 so the first Version PR becomes 0.0.2.
@roomote-roomote

roomote-roomote Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

No new code issues found. Both previously flagged issues are resolved in c757f97, and release-script unit tests pass locally (including the new insertChangelogSection coverage). See task

  • .github/workflows/publish-ghcr.yml:359,365,368 — the create-github-release job now pins actions/checkout, docker/setup-buildx-action, and docker/login-action to the same commit SHAs used elsewhere in the file.
  • scripts/release/aggregate-changelog.mjs — the dead-code intro loop was removed and replaced with a tested insertChangelogSection helper in lib.mjs that keeps the intro prose above release headings.

@roomote-roomote

Copy link
Copy Markdown
Contributor

Resolved merge conflicts against current develop and pushed:

  • merge: origin/develop into chore/release-workflow-changesets
  • publish-ghcr.yml: keep create-github-release + develop’s notify-ops (drop stale deploy-preview stub)
  • agent-guidance: accept develop’s full deletion; move release notes into CONTRIBUTING.md / .changeset/README.md
  • seed: product versions 0.0.1 so first Version PR → 0.0.2
  • knip: ignore @changesets/cli / changeset binary so pre-push passes

pnpm test:release-scripts, lint:fast, check-types:fast, and knip green locally after the fixups.

…ases

Pin checkout, changesets/action, setup-buildx, and login-action to commit
SHAs already used in CI. Fix aggregate-changelog so title intro prose stays
above newly inserted release sections.
@mrubens
mrubens marked this pull request as ready for review July 10, 2026 22:21
@mrubens
mrubens merged commit 0cb1bb8 into develop Jul 10, 2026
@mrubens
mrubens deleted the chore/release-workflow-changesets branch July 10, 2026 22:21
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.

2 participants