Skip to content

Commit 270bb91

Browse files
docs: add changelog standards and structure guidelines
1 parent 560e7e3 commit 270bb91

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

.cursor/rules/changelog.mdc

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
description: Standards for writing and updating ArchiPy changelog files
3+
globs: docs/community/changelog/**
4+
alwaysApply: false
5+
---
6+
7+
# Changelog Standards
8+
9+
## File & Directory Structure
10+
11+
- Major version folder: `docs/community/changelog/<MAJOR>/`
12+
- Per-release file: `docs/community/changelog/<MAJOR>/<version>.md`
13+
- Each major folder must have an `index.md` with a summary table
14+
- Root index: `docs/community/changelog/index.md` lists all series
15+
16+
## Page Format (per-version file)
17+
18+
### Frontmatter
19+
20+
```yaml
21+
---
22+
title: "Changelog <version>"
23+
description: "Release notes for ArchiPy <version>"
24+
---
25+
```
26+
27+
### H1 & Navigation
28+
29+
```markdown
30+
# <version> — <YYYY-MM-DD>
31+
32+
[← <newer>](<newer>.md) | [<older> →](<older>.md) | [↑ <MAJOR>.x series](index.md)
33+
```
34+
35+
Navigation link rules:
36+
- Newest release in series: `[← <prev>](<prev>.md) | [↑ <MAJOR>.x series](index.md)`
37+
- Oldest release in series: `[<next> →](<next>.md) | [↑ <MAJOR>.x series](index.md)`
38+
- Middle releases: include both prev and next links
39+
40+
## Sections
41+
42+
Use only sections that apply. Always in this order:
43+
44+
1. `## Added`
45+
2. `## Changed`
46+
3. `## Fixed`
47+
4. `## Removed`
48+
5. `## Tests`
49+
6. `## Chore`
50+
7. `## Dependencies`
51+
52+
H3 sub-sections follow the pattern `### <Layer> - <Component>`:
53+
54+
```markdown
55+
## Fixed
56+
57+
### Adapters - Kafka
58+
59+
- **SSL Config Typing** - Improved type safety and optional-field handling for SSL configuration.
60+
- Replaced dict merge (`|=`) with explicit per-key assignment
61+
- Optional SSL fields now fall back to `""` when `None`
62+
```
63+
64+
Valid layer names: `Models`, `Adapters`, `Helpers`, `Configs`, `Tests`, `Chore`, `Dependencies`.
65+
66+
## Writing Style
67+
68+
- Entry format: `- **Bold Title** - Prose description.`
69+
- Sub-bullets use 4-space indent for implementation details
70+
- No trailing period on the bold title; use a sentence-ending period on the prose
71+
- No emoji; no bare `print()` calls; always double quotes
72+
73+
```markdown
74+
# ✅ GOOD
75+
- **Organization Management** - Implemented comprehensive organization management functionality.
76+
- Added `OrganizationAdapter` with CRUD operations
77+
- Exposed `GET /organizations/{id}` endpoint
78+
79+
# ❌ BAD
80+
- Organization Management: implemented org management (missing bold, no period, lowercase verb)
81+
```
82+
83+
## Index Updates
84+
85+
After creating a new version file, update **three** files and edit **one existing version file**:
86+
87+
### Previously newest version file
88+
89+
The release that was the latest before your new one had no "newer" link. Add the back-link to it:
90+
91+
```markdown
92+
# ❌ BEFORE (4.3.5 was the newest)
93+
[← 4.3.4](4.3.4.md) | [↑ 4.x series](index.md)
94+
95+
# ✅ AFTER (4.3.6 is now newest; 4.3.5 becomes middle)
96+
[← 4.3.6](4.3.6.md) | [4.3.4 →](4.3.4.md) | [↑ 4.x series](index.md)
97+
```
98+
99+
### `docs/community/changelog/<MAJOR>/index.md` (and root index)
100+
101+
Prepend a row (newest first) to the table:
102+
103+
```markdown
104+
| [<ver>](<ver>.md) | YYYY-MM-DD | <One-line summary of most notable change> |
105+
```
106+
107+
### `docs/community/changelog/index.md`
108+
109+
Update the release count and version range for the affected series:
110+
111+
```markdown
112+
## [4.x Series](4/index.md)
113+
114+
13 releases — from 4.0.0 to 4.3.6
115+
```

0 commit comments

Comments
 (0)