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
- Prefer `changelog-state.php` to gather versions and ranges before inspecting files manually.
28
-
- Record documented versions and whether `## Unreleased - TBD` already exists.
28
+
- Record documented versions and whether the official `## [Unreleased]` heading already exists.
29
29
- List tags in ascending semantic order with `git tag --sort=version:refname`, and capture their commit dates when the repository may have retroactive or out-of-sequence tags.
30
30
- Treat commit messages as navigation hints only; never derive final changelog text from them.
- Mention the concrete command, class, option, workflow, or API when that improves comprehension.
56
56
- When a matching PR exists, append it to the line in the format `(#123)` after the diff already supports the entry.
57
57
- Avoid vague phrases such as `misc improvements`, `refactorings`, or `code cleanup`.
58
+
- Keep the file structure compliant with Keep a Changelog 1.0.0: bracketed version headings, the official intro paragraph, and footer references for `Unreleased` and each version.
59
+
- Omit empty sections instead of inserting placeholder entries such as `Nothing.`.
- Keep section order as `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
84
86
- Do not duplicate the same change across sections or versions.
85
87
- Ensure every documented version maps to a real tag or intentional unreleased state.
88
+
- Ensure footer references exist in the official style: `[unreleased]: ...`, `[1.2.0]: ...`.
86
89
- Run local helpers such as `composer dev-tools changelog:check` when the project provides them.
87
90
88
91
## PR Context
@@ -98,5 +101,6 @@ Do not use PR text to invent entries that are not supported by the code diff.
98
101
## Reference Files
99
102
100
103
- Read [references/keep-a-changelog-format.md](references/keep-a-changelog-format.md) for heading format, section order, and CLI mapping.
104
+
- Read [references/official-example-template.md](references/official-example-template.md) when you want a local template that mirrors the official Keep a Changelog example.
101
105
- Read [references/change-categories.md](references/change-categories.md) when the diff spans multiple change types.
102
106
- Read [references/description-patterns.md](references/description-patterns.md) when the first draft still sounds too internal or vague.
-`Unreleased` compares the latest documented tag to `HEAD`.
51
+
- Each released version compares the previous documented release tag to the current tag.
52
+
- The oldest documented release links to its release page when no older release exists in the changelog.
53
+
- When tags were published out of semantic order, keep the changelog ordered by actual release chronology and generate comparison links between adjacent displayed releases.
54
+
38
55
## Section order
39
56
40
-
Always keep sections in this order:
57
+
Keep change types grouped in this order:
41
58
42
59
1.`Added`
43
60
2.`Changed`
@@ -46,15 +63,16 @@ Always keep sections in this order:
46
63
5.`Fixed`
47
64
6.`Security`
48
65
49
-
Preserve the repository's existing convention for empty sections. In Fast Forward repositories, `Unreleased` may keep placeholders while released versions usually keep only populated sections.
50
-
51
-
## Version rules
66
+
## Compliance rules from the official guidance
52
67
53
-
- Keep `Unreleased` first.
54
-
- Keep released versions in reverse chronological order.
55
-
- When version numbers were tagged out of sequence, prefer actual tag chronology over semantic version sorting for final section order.
56
-
- Use ISO 8601 dates: `YYYY-MM-DD`.
57
-
- Match version headings to real tags whenever possible.
68
+
- Changelogs are for humans, not machines.
69
+
- There SHOULD be an entry for every single version.
70
+
- The same types of changes SHOULD be grouped.
71
+
- Versions and sections SHOULD be linkable.
72
+
- The latest version SHOULD come first.
73
+
- The release date of each version SHOULD be displayed in ISO 8601 format: `YYYY-MM-DD`.
74
+
- Mention whether the project follows Semantic Versioning.
75
+
- Omit empty sections instead of filling them with placeholders such as `Nothing.`.
@@ -23,25 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
23
21
- Changed changelog bootstrap and validation workflows to run Composer-based dev-tools commands on PHP 8.3 instead of legacy script shims (#40)
24
22
- Changed changelog guidance to derive entries from code diffs and append related pull request references in the format `(#123)` when a matching PR exists (#40)
0 commit comments