Batch testing changes and document explicit release workflow
This commit is contained in:
@@ -42,9 +42,15 @@ When you run into a repeatable problem during testing (e.g. port assignment coll
|
|||||||
|
|
||||||
The app shows its version number and a player-facing changelog in the ☰ menu → About. Both come from `frontend/src/lib/changelog.js` (rendered by `frontend/src/components/AboutModal.svelte`).
|
The app shows its version number and a player-facing changelog in the ☰ menu → About. Both come from `frontend/src/lib/changelog.js` (rendered by `frontend/src/components/AboutModal.svelte`).
|
||||||
|
|
||||||
- Bump `VERSION` by one on **every** commit.
|
- Ordinary commits do **not** bump `VERSION` or the Nix package versions.
|
||||||
- When a commit changes something players can see, add an entry to the **top** of `CHANGELOG` (`{ version, date, changes: [...] }`) describing it in player-facing terms. Group everything shipping under one version into a single entry.
|
- Accumulate player-visible changes in one entry at the **top** of `CHANGELOG` with `version: null` and `changes: [...]`. The About dialog labels it **In testing**. Append to or consolidate this batch across commits; do not create a separate entry per commit or assign a release date yet.
|
||||||
- The changelog is for players: skip refactors, tests, tooling, and other internal-only changes. A commit with no user-facing change bumps `VERSION` but adds no entry.
|
- The changelog is for players: skip refactors, tests, tooling, and other internal-only changes. Internal-only commits need no changelog entry.
|
||||||
|
- Release labeling is a separate process, performed only when explicitly requested. At release time:
|
||||||
|
1. Consolidate the In testing batch into meaningful player-facing groups using `groups: [{ title, changes: [...] }]`, replacing its flat `changes` list. Remove duplicates and describe the final behavior.
|
||||||
|
2. Bump `VERSION` by one and give the batch that numeric `version` plus the release `date` (`YYYY-MM-DD`).
|
||||||
|
3. Bump **both** package `version` values in `flake.nix` (`pirats-frontend` and `pirats`) to the same new Nix release version. Preserve the Nix version scheme; do not equate its semantic version with the app's integer V number.
|
||||||
|
4. Commit the release metadata together. The next player-visible development change starts a fresh In testing entry.
|
||||||
|
- Preserve already numbered history unless the user explicitly requests reorganizing past releases.
|
||||||
|
|
||||||
## Work order
|
## Work order
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
## Polish
|
## Polish
|
||||||
|
|
||||||
|
- [x] Accumulate In testing changelog batches and reserve app/Nix version bumps for grouped releases.
|
||||||
|
|
||||||
- [x] Apply the refreshed light and dark themes to the full rulebook and TL;DR rules.
|
- [x] Apply the refreshed light and dark themes to the full rulebook and TL;DR rules.
|
||||||
|
|
||||||
- [x] Refresh both themes with legible texture and nautical flair, and give the Event Log / My Notes the regular panel surface.
|
- [x] Refresh both themes with legible texture and nautical flair, and give the Event Log / My Notes the regular panel surface.
|
||||||
|
|||||||
@@ -20,14 +20,17 @@
|
|||||||
{#each CHANGELOG as entry (entry.version)}
|
{#each CHANGELOG as entry (entry.version)}
|
||||||
<li class="changelog-entry">
|
<li class="changelog-entry">
|
||||||
<div class="changelog-head">
|
<div class="changelog-head">
|
||||||
<span class="changelog-ver">v{entry.version}</span>
|
<span class="changelog-ver">{entry.version === null ? 'In testing' : `v${entry.version}`}</span>
|
||||||
<span class="changelog-date text-muted">{entry.date}</span>
|
{#if entry.date}<span class="changelog-date text-muted">{entry.date}</span>{/if}
|
||||||
</div>
|
</div>
|
||||||
<ul class="changelog-changes">
|
{#each entry.groups ?? [{ title: null, changes: entry.changes }] as group}
|
||||||
{#each entry.changes as change}
|
{#if group.title}<h5 class="changelog-group">{group.title}</h5>{/if}
|
||||||
<li>{change}</li>
|
<ul class="changelog-changes">
|
||||||
{/each}
|
{#each group.changes as change}
|
||||||
</ul>
|
<li>{change}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/each}
|
||||||
</li>
|
</li>
|
||||||
{/each}
|
{/each}
|
||||||
</ul>
|
</ul>
|
||||||
@@ -72,6 +75,11 @@
|
|||||||
.changelog-date {
|
.changelog-date {
|
||||||
font-size: 0.85rem;
|
font-size: 0.85rem;
|
||||||
}
|
}
|
||||||
|
.changelog-group {
|
||||||
|
margin: 0.75rem 0 0.3rem;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: var(--text);
|
||||||
|
}
|
||||||
.changelog-changes {
|
.changelog-changes {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-left: 1.2rem;
|
padding-left: 1.2rem;
|
||||||
|
|||||||
@@ -2,14 +2,17 @@
|
|||||||
// (rendered by AboutModal.svelte).
|
// (rendered by AboutModal.svelte).
|
||||||
//
|
//
|
||||||
// Maintenance (see AGENTS.md "Versioning & changelog"):
|
// Maintenance (see AGENTS.md "Versioning & changelog"):
|
||||||
// - Bump VERSION by one on every commit.
|
// - Accumulate player-facing development changes in one version: null entry.
|
||||||
// - Add a CHANGELOG entry only when a commit changes something players can
|
// - Only an explicitly requested release bumps VERSION and both flake.nix versions.
|
||||||
// see. Skip refactors, tests, and tooling. Keep wording player-facing.
|
// - At release, consolidate the batch into titled groups and add its version/date.
|
||||||
|
|
||||||
export const VERSION = 50;
|
export const VERSION = 50;
|
||||||
|
|
||||||
// Newest first. Each entry: { version, date: 'YYYY-MM-DD', changes: [string, ...] }.
|
// Newest first. In testing: { version: null, changes: [string, ...] }.
|
||||||
|
// Release: { version, date: 'YYYY-MM-DD', groups: [{ title, changes: [...] }] }.
|
||||||
|
// Historical flat changes arrays are also supported.
|
||||||
export const CHANGELOG = [
|
export const CHANGELOG = [
|
||||||
|
{ version: null, changes: ['Upcoming changes now appear together under In testing in About, ahead of numbered releases.'] },
|
||||||
{ version: 50, date: '2026-09-04', changes: ['The full rulebook and TL;DR rules now match the refreshed light and dark themes, with chart backgrounds and textured solid panels.'] },
|
{ version: 50, date: '2026-09-04', changes: ['The full rulebook and TL;DR rules now match the refreshed light and dark themes, with chart backgrounds and textured solid panels.'] },
|
||||||
{ version: 49, date: '2026-09-04', changes: ['Freshened both themes with nautical chart lines, woven panel textures, and richer sea-and-brass colors while keeping text clear.', 'The Event Log and My Notes now use the regular solid panel surface.'] },
|
{ version: 49, date: '2026-09-04', changes: ['Freshened both themes with nautical chart lines, woven panel textures, and richer sea-and-brass colors while keeping text clear.', 'The Event Log and My Notes now use the regular solid panel surface.'] },
|
||||||
{ version: 48, date: '2026-09-04', changes: ['Keep your own notes alongside the Event Log. Notes save automatically between sessions, including when you close the panel, and stay intact when the game rewinds or you create a new Pi-Rat.'] },
|
{ version: 48, date: '2026-09-04', changes: ['Keep your own notes alongside the Event Log. Notes save automatically between sessions, including when you close the panel, and stay intact when the game rewinds or you create a new Pi-Rat.'] },
|
||||||
|
|||||||
Reference in New Issue
Block a user