ci: replace changelog gate with release-please and conventional commits#286
Merged
Conversation
4e9102e to
0f38fe2
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes the repo’s CI and release automation by replacing the manual “changelog/version gate” with a Conventional Commits PR-title check and automated releases driven by release-please on develop.
Changes:
- Consolidates PR checks into a single CI workflow (PR title lint, native unit tests, and matrix builds across 5 boards).
- Introduces release-please configuration + workflow to generate release PRs/tags/releases automatically.
- Removes the legacy changelog/version-check workflow and related Python tooling; adds
RELEASE.mddocumentation.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
version_check.py |
Removed legacy version/changelog validation script. |
requirements_version_check.txt |
Removed dependencies for the deleted version check. |
RELEASE.md |
Added developer documentation for the new release process. |
release-please-config.json |
Added release-please configuration (tag prefix, Version.h extra-file update). |
.release-please-manifest.json |
Added release-please manifest with current version. |
.github/workflows/release-please.yml |
Added workflow to run release-please on pushes to develop. |
.github/workflows/ci.yml |
Added consolidated PR CI workflow (title lint, unit tests, matrix builds). |
.github/workflows/code_format.yml |
Updated actions/checkout version (v2 → v4). |
.github/workflows/platformio.yml |
Removed old PlatformIO matrix build workflow. |
.github/workflows/platformio_unit_tests.yml |
Removed old unit test workflow (merged into CI). |
.github/workflows/changelog.yml |
Removed old changelog/version gate workflow. |
.github/actions/setup-pio/action.yml |
Added composite action to share Python/PlatformIO setup across jobs. |
Comments suppressed due to low confidence (1)
.github/actions/setup-pio/action.yml:27
- The “Install unit test dependencies” step runs unconditionally, so every consumer of this action (including firmware build jobs) installs
gcovr. If the intent is to keep build jobs minimal, add aninstall-unit-test-depsinput and guard this step with it (and updateci.ymlaccordingly).
- name: Install matrix build dependencies
if: inputs.install-matrix-deps == 'true'
shell: bash
run: pip install -r requirements_matrix_build.txt
- name: Install unit test dependencies
shell: bash
run: pip install gcovr
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
RELEASE.md:67
- This table says “Bug fix, performance improvement, documentation” triggers a Patch bump, but earlier the Conventional Commits table states
docstriggers no version bump. Please reconcile these semantics so contributors understand whether docs changes bump versions or not.
Versions follow [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`):
| Change | Bump |
|--------|------|
| Breaking change in Meade protocol or configuration | **Major** |
| New feature, new board support, new Meade command | **Minor** |
| Bug fix, performance improvement, documentation | **Patch** |
| Chore, CI, refactor, test | **None** |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
ClutchplateDude
approved these changes
May 15, 2026
Member
ClutchplateDude
left a comment
There was a problem hiding this comment.
Nice! I like the auto release and version handling
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.
Summary
Overhauls the CI and release process to eliminate the per-PR changelog/version overhead and introduce automated, tag-based releases.
See RELEASE.md for the full developer guide.
What changed
Added
.github/workflows/ci.yml— consolidated PR checks: PR title lint (Conventional Commits), unit tests, and matrix build across all 5 boards; all checks are required.github/workflows/release-please.yml— runs on push todevelop; manages the Release PR, version bump, changelog generation, git tag, and GitHub Release automatically.github/actions/setup-pio/action.yml— composite action that installs Python + PlatformIO, shared across build and test jobsrelease-please-config.json+.release-please-manifest.json— release-please configuration (simple release type,Vtag prefix, updatesVersion.hautomatically)RELEASE.md— developer documentation for the new release processRemoved
.github/workflows/changelog.yml— replaced by release-please.github/workflows/platformio.yml— replaced byci.yml.github/workflows/platformio_unit_tests.yml— merged intoci.ymlversion_check.py+requirements_version_check.txt— no longer neededUpdated
.github/workflows/code_format.yml— bumpedactions/checkoutfromv2tov6; logic unchangedHow releases work now
feat:,fix:,chore:, etc.)Required follow-up (repo settings)
Branch protection for
developneeds updating:Check changelog and version are matchingPR Title (Conventional Commits),Unit Tests,Build (mksgenlv21),Build (mksgenlv2),Build (mksgenlv1),Build (esp32),Build (ramps)