feat: Replace changesets with lightweight .changes system and automate release#436
Open
feat: Replace changesets with lightweight .changes system and automate release#436
Conversation
Remove @changesets/cli dependency and .changeset directory. Add a simple .changes/ directory with markdown files using YAML frontmatter for semver bump type, technical changelog entry (title + body), optional user-facing summary, and optional structured notices (info/warning/error) for the website UI. Add scripts/release.py to automate: - status: show pending changes and computed next version - rc: create or bump a release candidate tag - stable: consume changes into CHANGELOG.md, export release.json, tag Clean up CHANGELOG.md to remove all RC entries, keeping only stable release notes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add release.yml workflow: - Beta push: auto-creates RC tag (1.6.0-rc.N) - Master push: consumes .changes/, updates CHANGELOG.md, creates stable tag - Requires RELEASE_TOKEN PAT secret for cross-workflow triggering Update ci-build.yml: - Remove master/beta from push triggers (handled by tags from release.yml) - Keep develop push deploys and tag-triggered builds Update get-vars.js: - Only validate stable tags against CHANGELOG.md (skip RC/beta/dev) - RC tags no longer require changelog entries Update release.py: - Output release JSON to stdout for CI to send to repository API - No longer writes release.json to disk Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Require PRs into develop to include a .changes/*.md file. PRs labeled "no-changelog" are exempt (for dependency bumps, CI-only changes, etc.). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new automated release workflow for the project, centered around a file-based changelog system and a Python release helper script. It migrates changelog entries to individual markdown files in a
.changesdirectory, adds a comprehensive release management script (scripts/release.py), and updates CI/CD workflows to use these new mechanisms. The changes streamline release candidate and stable release creation, changelog enforcement, and frontend/release note presentation.Key changes include:
Release Management System:
.changes/README.mddescribing the new changelog file format and release workflow, including YAML frontmatter, changelog/summary/notice sections, and usage instructions.scripts/release.py, a Python script to collect, parse, and process.changes/*.mdfiles, determine the correct version bump, generate and prepend changelog entries, export arelease.jsonfor the website, and manage git tags for RC and stable releases.CI/CD Workflow Updates:
.github/workflows/release.ymlto automate release candidate and stable tag creation based on thebetaandmasterbranches, using the new release script and a personal access token for downstream workflow triggers..github/scripts/get-vars.jsto enforce changelog requirements only for stable tags, allow RC/beta/dev tags without changelog entries, and ensure changelog entries are at the top for stable releases. Also, only stable tags are now required to be present in the changelog. [1] [2] [3] [4].github/workflows/ci-build.ymlto only trigger on thedevelopbranch and version tags, removing direct CI runs onmasterandbeta(these are now handled by the new release workflow).Changelog Migration:
.changes/*.mdformat, including bug fixes, major features (setup wizard, REST API migration, frontend rewrite, LED driver overhaul), and device support. [1] [2] [3] [4] [5].changeset/*.mdfiles that are now obsolete under the new system. [1] [2] [3]These changes modernize and automate the project's release process, making it easier to track, review, and publish releases with structured changelog data and improved CI/CD integration.