Skip to content

Commit 7daa479

Browse files
authored
Merge branch 'main' into perf/tier2-cpu
2 parents 6e6cd05 + 9973aa6 commit 7daa479

5 files changed

Lines changed: 32 additions & 6 deletions

File tree

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
## Checklist
88

9-
- [ ] Ran `clang-format -i` on touched files (CI enforces formatting)
10-
- [ ] `scripts/build.sh` (or `.ps1`) builds clean
9+
<!-- Formatting, build, and CHANGELOG are checked automatically by CI. -->
10+
1111
- [ ] New tunable values live in `src/config/params.h`
12-
- [ ] Added a line under `## [Unreleased]` in `CHANGELOG.md`
1312
- [ ] If a control changed, updated `docs/MIDI_PROTOCOL.md` and the `params::midi` map
1413
- [ ] Tested on hardware (Daisy Seed + Hothouse) — describe below, or note if untested

.github/workflows/firmware.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,27 @@ permissions:
1414
contents: write # needed to create Releases on tag builds
1515

1616
jobs:
17+
changelog:
18+
# Require a CHANGELOG.md entry on PRs. Skipped for PRs labelled
19+
# 'skip-changelog' or 'dependencies' (e.g. the submodule-update bot).
20+
if: >-
21+
github.event_name == 'pull_request' &&
22+
!contains(github.event.pull_request.labels.*.name, 'skip-changelog') &&
23+
!contains(github.event.pull_request.labels.*.name, 'dependencies')
24+
runs-on: ubuntu-latest
25+
steps:
26+
- uses: actions/checkout@v4
27+
with:
28+
fetch-depth: 0
29+
- name: Require a CHANGELOG entry
30+
run: |
31+
base='${{ github.event.pull_request.base.sha }}'
32+
if git diff --quiet "$base" HEAD -- CHANGELOG.md; then
33+
echo "::error::This PR doesn't update CHANGELOG.md. Add a note under '## [Unreleased]', or label the PR 'skip-changelog'."
34+
exit 1
35+
fi
36+
echo "CHANGELOG.md updated."
37+
1738
format:
1839
runs-on: ubuntu-latest
1940
steps:

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ uses [Semantic Versioning](https://semver.org/) (`vMAJOR.MINOR.PATCH`).
1212
and the final hard clamp is folded into the master limiter (one less buffer pass).
1313
- **Link-time optimization** (`-flto`) trims ~1.5 KB of internal flash (98.2% → 97.1%);
1414
`usb_identity.c` is kept out of LTO so its USB-descriptor override stays deterministic.
15+
- **CI checks a CHANGELOG entry** on every PR (skippable via a `skip-changelog` /
16+
`dependencies` label), and the PR template now lists only the manual items CI can't
17+
verify (formatting, build, and changelog are enforced automatically).
1518
- **Contributor tooling.** Added `CONTRIBUTING.md`, GitHub issue/PR templates, a
1619
`.clang-format` (Google C++, 4-space, 100-col) + `.editorconfig`, and a CI job that
1720
enforces formatting. New `scripts/setup.{sh,ps1}` one-shot bootstrap (submodules + libs).

CONTRIBUTING.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,11 @@ wrappers over the `Makefile` — keep the actual logic in the Makefile where pos
8585
## Submitting a change
8686

8787
1. Branch off `main`.
88-
2. Make your change; run `clang-format -i` and confirm `scripts/build.sh` succeeds.
88+
2. Make your change. Running `clang-format -i` and `scripts/build.sh` locally is the fast
89+
way to catch problems, but CI enforces both either way.
8990
3. Add a line under `## [Unreleased]` in [`CHANGELOG.md`](CHANGELOG.md).
90-
4. Open a PR against `main`. CI builds the firmware and checks formatting on every PR.
91+
4. Open a PR against `main`. On every PR, CI builds the firmware, checks formatting, and
92+
requires a `CHANGELOG.md` entry (label the PR `skip-changelog` for changes that don't
93+
warrant one, e.g. CI-only tweaks).
9194

9295
Releases are cut from version tags — see the *Releases & versioning* section of the README.

0 commit comments

Comments
 (0)