You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A **changeset** here is a release note: a `.changeset/*.md` file that becomes `CHANGELOG.md` and drives
4
+
the version bump. (Not a Liquibase `<changeSet>` — a schema change needs both.)
5
+
6
+
Every PR that changes shipped code (anything under `server/`, `webapp/`, or `docker/` except tests and in-tree docs) ships one; CI (`verify-changesets`) enforces it.
7
+
8
+
```bash
9
+
pnpm changeset # write one (pick the bump, describe the change)
10
+
pnpm changeset --empty # no user-facing effect — then write why in the file body (non-interactive)
11
+
```
12
+
13
+
The summary lands in the changelog **verbatim**, in the operator/user's voice — lead with what they can now
14
+
do, or the symptom a fix removes. No class/hook/file names. No agent-attribution trailers. One changeset per
15
+
user-visible change; unsure whether it's visible? Add one — a reviewer can delete it, a missing note can't.
16
+
17
+
No TTY (agents, CI)? `pnpm changeset` is interactive — instead write `.changeset/<slug>.md` by hand in the
18
+
format shown below. That is the one sanctioned hand-write; never touch `CHANGELOG.md` directly.
|`minor`| no action | new capability; note any new *optional* env var / flag in the summary |
26
+
|`major`| must act first | required new env var, removed/renamed config, destructive/manual migration, dropped API — state the action + update `MIGRATION.md`|
27
+
28
+
**Pre-1.0 (now): never pick `major`** — it would cut 1.0.0; CI rejects it. Breaking changes ride in `minor`
29
+
instead, so a pre-1.0 `minor` is *not* guaranteed zero-action: if the operator must act, say so
30
+
(`**Operators:** …`) and update `MIGRATION.md` exactly as a `major` would.
31
+
32
+
Example (a migration-bearing fix):
33
+
34
+
```md
35
+
---
36
+
"hephaestus": minor
37
+
---
38
+
39
+
Fixes duplicate leaderboard entries after a team rename.
40
+
```
41
+
42
+
Full flow and rules: [release management guide](https://ls1intum.github.io/Hephaestus/contributor/release-management).
✓ Good (No Release): fix(ci): update workflow configuration
13
+
✓ Good: fix(ci): update workflow configuration
14
14
✗ Bad: Added weekly ranking filter to leaderboard
15
15
16
16
BEFORE PUSHING:
@@ -34,6 +34,13 @@ Fixes # <!-- Link issue if applicable, or delete this line -->
34
34
35
35
<!-- Manual steps to verify, OR "CI covers this" for config/docs changes. -->
36
36
37
+
## Checklist
38
+
39
+
<!-- Only what CI can't check for you. Changeset presence is enforced by `verify-changesets`. -->
40
+
41
+
-[ ] My changeset summary reads as an operator/user-facing note (it becomes the changelog entry) — see `.changeset/README.md`
42
+
-[ ] If the operator must act on this change (new required env var, manual migration step), the changeset summary says how (`**Operators:** …`) and `MIGRATION.md` is updated
43
+
37
44
## Screenshots
38
45
39
46
<!-- For UI changes. Delete section if not applicable. -->
0 commit comments