Skip to content

Commit 1a08d08

Browse files
revert: one CHANGELOG per console, no per-version files
The releases/v<ver>.md detour was over-engineered for what's just "the release page body needs to be the same scannable content the changelog entry already wants to be." Going back to: one CHANGELOG.md per console, each release a section in it, the section extracted verbatim as the GitHub Release body. That's the shape the workflow originally had before the detail-file split. - gcn/CHANGELOG.md, gba/CHANGELOG.md, pce/CHANGELOG.md absorb the trimmed content from releases/v1.0.0.md (1-paragraph summary + 3-6 Highlights bullets + Artifacts list + link to README). - releases/ dirs deleted in all three consoles. - release.yml dropped the releases/ lookup; back to a single CHANGELOG awk-extract step. - CLAUDE.md "Files every console subdir must have" loses the releases/v<ver>.md row; the CHANGELOG.md row now describes the scannable-section shape directly. Release flow doc back to 5 steps with no per-version-file write.
1 parent 36af817 commit 1a08d08

8 files changed

Lines changed: 80 additions & 106 deletions

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,18 +154,12 @@ jobs:
154154
cp build/joypad-tester.pce "_release/joypad_tester_v${VERSION}.pce"
155155
ls -la _release/
156156
157-
- name: Resolve release body
157+
- name: Extract release body from CHANGELOG
158158
id: notes
159159
working-directory: ${{ needs.parse.outputs.console }}
160160
run: |
161161
VERSION="${{ needs.parse.outputs.version }}"
162-
NOTES="releases/v${VERSION}.md"
163-
# Per-version detail file is the canonical release body. If
164-
# it's missing, fall back to extracting the matching section
165-
# from CHANGELOG.md so the workflow still produces *something*.
166-
if [ -f "$NOTES" ]; then
167-
cp "$NOTES" _notes.md
168-
elif [ -f CHANGELOG.md ]; then
162+
if [ -f CHANGELOG.md ]; then
169163
awk -v ver="v$VERSION" '
170164
/^## / {
171165
if (capture) exit

CLAUDE.md

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,10 @@ subdirs" list.
6666
| File | Purpose |
6767
|---------------|---------------------------------------------------------------|
6868
| `VERSION` | Bare semver string. Must match the release tag (see below). |
69-
| `CHANGELOG.md`| Brief per-version diff index. Header `## v<semver> — <date>`, 2-5 bullet lines per version, link to the matching `releases/v<ver>.md`. |
69+
| `CHANGELOG.md`| Per-version release notes. One section per release, header `## v<semver> — <date>`, body = 1-paragraph summary + 3-6 Highlights bullets + an Artifacts list + a link to README for full detail. The matching section is extracted verbatim and used as the GitHub Release body. |
7070
| `LICENSE.md` | Whatever the upstream code's licence is (zlib, MIT, …). |
71-
| `README.md` | Audience-facing overview: what the app is, how to build, how to embed. |
71+
| `README.md` | Audience-facing overview: what the app is, how to build, how to embed. The long-form feature breakdown lives here, not in the changelog. |
7272
| `Makefile` | Build entrypoint. Use a Docker-based toolchain if it eases CI. |
73-
| `releases/v<ver>.md` | Short release notes for that version (used verbatim as the GitHub Release body — keep it scannable: 1-paragraph summary, 3-6 highlight bullets, an Artifacts list, and a link to the per-console README for full detail). |
7473

7574
### README structure (every console subdir)
7675

@@ -172,24 +171,20 @@ the pretty name in the `parse` job.
172171
To cut, e.g., `gba-v1.1.0`:
173172

174173
1. Bump `<console>/VERSION` to `1.1.0`.
175-
2. Write the short release notes to `<console>/releases/v1.1.0.md`
176-
(this is what end-users see as the GitHub Release body — scannable
177-
summary + 3-6 highlight bullets + Artifacts list + a link to the
178-
per-console README for full detail). Long-form feature breakdowns
179-
belong in README.md, not here.
180-
3. Prepend a short section to `<console>/CHANGELOG.md`:
181-
`## v1.1.0 — YYYY-MM-DD`, 2-5 bullets summarising the diff,
182-
and a link to `releases/v1.1.0.md` for the release-page form.
183-
4. Commit + push to `main`.
184-
5. Tag `<console>-v1.1.0` and push the tag.
185-
6. CI parses the tag, verifies VERSION, builds, and publishes the
186-
GitHub Release with artifacts + `releases/v1.1.0.md` as the body
187-
(falls back to the CHANGELOG section if the release-notes file
188-
doesn't exist).
174+
2. Prepend a section to `<console>/CHANGELOG.md`:
175+
`## v1.1.0 — YYYY-MM-DD`, 1-paragraph summary, 3-6 Highlights
176+
bullets, an Artifacts list, and a link to the per-console README
177+
for the full feature breakdown. This section is what end-users
178+
see as the GitHub Release body — keep it scannable. Long-form
179+
feature detail belongs in README.md, not in the changelog.
180+
3. Commit + push to `main`.
181+
4. Tag `<console>-v1.1.0` and push the tag.
182+
5. CI parses the tag, verifies VERSION, builds, and publishes the
183+
GitHub Release with artifacts + the matching CHANGELOG section
184+
as the body.
189185

190186
If `VERSION` doesn't match the tag, the release fails (intentional —
191-
forces the changelog/release-notes/version-bump commits to land
192-
before the tag).
187+
forces the changelog/version-bump commits to land before the tag).
193188

194189
## Top-level README
195190

gba/CHANGELOG.md

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
# Joypad Tester — GBA — Changelog
22

3-
Brief per-version diffs. Full release-notes detail lives under
4-
[`releases/`](releases/).
5-
63
## v1.0.0 — 2026-05-11
74

8-
Initial release. Full feature breakdown:
9-
[`releases/v1.0.0.md`](releases/v1.0.0.md).
5+
First release.
6+
7+
### Highlights
8+
9+
- Standalone joypad tester for the GBA: live 2-column button readout,
10+
joybus passthrough so the host sees button state as it changes.
11+
- Idle screensaver: Mode-4 page-flipped joypad logo, 7-color
12+
wall-bounce cycle.
13+
- Flash-cart standalone fallback if no joybus handshake within
14+
~3 seconds — works on a flash cart with no GameCube host.
15+
- Joybus loop taken verbatim from Doridian's Joybus-PIO; reset-edge
16+
detection inside the VBlank busy-wait so host `cmd 0xFF` triggers
17+
a clean SVC `0x26` re-multiboot within microseconds.
18+
19+
### Artifacts
20+
21+
- `joypad_tester_v1.0.0.gba` — drop onto any GBA flash cart, or let
22+
the joypad-tester GameCube host multiboot it over the Link Cable.
23+
24+
Full feature breakdown (including the unreleased eyes-variant payload
25+
that ships only via the committed `build/` tree for joypad-os to
26+
consume) in
27+
[`gba/README.md`](https://github.com/joypad-ai/joypad-tester/blob/main/gba/README.md).

gba/releases/v1.0.0.md

Lines changed: 0 additions & 23 deletions
This file was deleted.

gcn/CHANGELOG.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
11
# Joypad Tester — GameCube — Changelog
22

3-
Brief per-version diffs. Full release-notes detail lives under
4-
[`releases/`](releases/).
5-
63
## v1.0.0 — 2026-05-11
74

8-
Initial release. Full feature breakdown:
9-
[`releases/v1.0.0.md`](releases/v1.0.0.md).
5+
First release.
6+
7+
### Highlights
8+
9+
- Live multi-port readout for all four SI ports simultaneously.
10+
- GameCube controllers (wired + WaveBird), N64 controllers / mice /
11+
mics via passive adapter, and the GameCube ASCII keyboard.
12+
- N64 accessory pak detection — Memory / Rumble / Transfer / Bio
13+
Sensor (with live BPM) / Snap Station.
14+
- GBA-over-Link-Cable multiboot upload + per-button passthrough.
15+
- Idle screensaver: bouncing logo bitmap, 7-color wall-bounce cycle.
16+
17+
### Artifacts
18+
19+
- `joypad_tester_v1.0.0_gamecube.dol` — Swiss / GC Loader / FlippyDrive
20+
- `joypad_tester_v1.0.0_wii.dol` — Wii Homebrew Channel
21+
- `opening.bnr` — Swiss boot banner
22+
23+
Full feature breakdown + build / flashing instructions in
24+
[`gcn/README.md`](https://github.com/joypad-ai/joypad-tester/blob/main/gcn/README.md).

gcn/releases/v1.0.0.md

Lines changed: 0 additions & 20 deletions
This file was deleted.

pce/CHANGELOG.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
# Joypad Tester — PC Engine — Changelog
22

3-
Brief per-version diffs. Full release-notes detail lives under
4-
[`releases/`](releases/).
5-
63
## v1.0.0 — 2026-05-11
74

8-
Initial release. Full feature breakdown:
9-
[`releases/v1.0.0.md`](releases/v1.0.0.md).
5+
First release. Builds on dshadoff's `PCE_Mouse_Test` baseline,
6+
extended with a labelled main screen and a screensaver matching the
7+
GameCube and GBA testers.
8+
9+
### Highlights
10+
11+
- Live P1..P5 readout — single pad or up to five via multitap.
12+
- PC Engine mouse: `mouse_exists()` flag, per-frame deltas, and a
13+
running absolute X / Y accumulator. **I** button / right-click
14+
toggles mouse-decoded mode (same toggle as upstream).
15+
- Idle screensaver: 64x64 joypad logo sprite bouncing in 7-color
16+
wall-bounce cycle, matching the GameCube and GBA testers.
17+
18+
### Artifacts
19+
20+
- `joypad_tester_v1.0.0.pce` — drop onto an EverDrive PCE / Turbo
21+
EverDrive / Krikzz SSDS3 / etc. (vanilla HuCard image, no copier
22+
header).
23+
24+
Full feature breakdown + HuC toolchain notes in
25+
[`pce/README.md`](https://github.com/joypad-ai/joypad-tester/blob/main/pce/README.md).

pce/releases/v1.0.0.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)