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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+49-22Lines changed: 49 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,22 @@ This project uses football/soccer terminology for release names:
44
44
45
45
### Added
46
46
47
+
### Changed
48
+
49
+
### Deprecated
50
+
51
+
### Removed
52
+
53
+
### Fixed
54
+
55
+
### Security
56
+
57
+
---
58
+
59
+
## [2.0.0 - corner] - 2026-03-29
60
+
61
+
### Added
62
+
47
63
-`.envrc` for [direnv](https://direnv.net/) to automatically switch to the required Node.js version via `.nvmrc` on directory entry
48
64
-`rest/players.rest` HTTP file with health check, POST, GET (all, by ID, by squad number), PUT, and DELETE requests for VS Code REST Client (`humao.rest-client`)
49
65
-`humao.rest-client` added to `.vscode/extensions.json` recommended extensions
@@ -57,16 +73,10 @@ This project uses football/soccer terminology for release names:
57
73
-`IPlayer.id` type changed from `number` to `string` to reflect UUID
58
74
-`updateAsync` and `deleteAsync` in service and database layers refactored to operate on `squadNumber`
59
75
60
-
### Deprecated
61
-
62
76
### Removed
63
77
64
78
-`postman-collections/` directory and Postman JSON collection replaced by `rest/players.rest`
65
79
66
-
### Fixed
67
-
68
-
### Security
69
-
70
80
---
71
81
72
82
## [1.0.1 - bicyclekick] - 2026-03-08
@@ -100,40 +110,57 @@ Initial release. See [README.md](README.md) for complete feature list and docume
100
110
101
111
### Pre-Release Checklist
102
112
103
-
Before creating any release:
104
-
105
-
1. ✅ **Update CHANGELOG.md first**: Move all items from `[Unreleased]` to a new versioned section with today's date
106
-
2. ✅ **Verify tests pass**: Run `npm run coverage` - all tests must pass
107
-
3. ✅ **Build successfully**: Run `npm run build` - TypeScript must compile without errors
108
-
4. ✅ **Lint passes**: Run `npm run lint` - ESLint must pass with no warnings
109
-
5. ✅ **Update Swagger docs**: Run `npm run swagger:docs` if API endpoints changed
110
-
6. ✅ **Commit CHANGELOG**: Push the CHANGELOG update before tagging
113
+
-[ ] Release branch created from `master`
114
+
-[ ]`CHANGELOG.md` updated with release notes
115
+
-[ ] Changes committed and pushed on the release branch
116
+
-[ ] Release PR merged into `master`
117
+
-[ ] Tag created with correct format: `vX.Y.Z-term`
118
+
-[ ] Term is valid (A-Z from the football terminology list above)
119
+
-[ ] Tag pushed to trigger CD workflow
111
120
112
121
### Creating a Release
113
122
114
-
1.**Update CHANGELOG.md**
123
+
1.**Create a release branch**
124
+
125
+
```bash
126
+
git checkout master && git pull
127
+
git checkout -b release/vX.Y.Z-term
128
+
```
129
+
130
+
2.**Update CHANGELOG.md**
115
131
116
132
Move items from `[Unreleased]` to a new version section:
117
133
118
134
```markdown
119
-
## [1.1.0 - bicyclekick] - YYYY-MM-DD
135
+
## [X.Y.Z - term] - YYYY-MM-DD
120
136
```
121
137
122
-
Commit and push this change.
138
+
Commit and push:
139
+
140
+
```bash
141
+
git add CHANGELOG.md
142
+
git commit -m "chore(release): vX.Y.Z-term"
143
+
git push origin release/vX.Y.Z-term
144
+
```
145
+
146
+
3.**Merge the release PR**
147
+
148
+
Open a pull request from `release/vX.Y.Z-term` into `master` and merge it. The tag must be created **after** the merge so it points to the correct commit on `master`.
123
149
124
-
2.**Create and push tag**
150
+
4.**Create and push tag**
125
151
126
152
```bash
127
-
git tag -a v1.1.0-bicyclekick -m "Release 1.1.0 - Bicycle-kick"
128
-
git push origin v1.1.0-bicyclekick
153
+
git checkout master && git pull
154
+
git tag -a vX.Y.Z-term -m "Release X.Y.Z - Term"
155
+
git push origin vX.Y.Z-term
129
156
```
130
157
131
-
3.**CD pipeline runs automatically**
158
+
5.**CD pipeline runs automatically**
132
159
133
160
GitHub Actions will:
134
161
- Run full test suite with coverage
135
162
- Build Docker image
136
-
- Publish to GHCR with tags: `:1.1.0`, `:bicyclekick`, `:latest`
163
+
- Publish to GHCR with tags: `:X.Y.Z`, `:term`, `:latest`
-**Semantic Version**: Standard versioning (MAJOR.MINOR.PATCH)
321
321
-**Term Name**: Alphabetically ordered codename from the [football terminology list](CHANGELOG.md#football-terminology-names-️)
322
322
323
-
### Creating a Release
323
+
### Create a Release
324
324
325
-
💡 **Important**: Update [CHANGELOG.md](CHANGELOG.md) continuously as you work, not just before releases!
325
+
To create a new release, follow this workflow:
326
326
327
-
1.**Update CHANGELOG.md**: Move items from `[Unreleased]` to new version section
328
-
2.**Create and push tag**:
327
+
#### 1. Create a Release Branch
329
328
330
-
```bash
331
-
git tag -a v1.1.0-bicyclekick -m "Release 1.1.0 - Bicycle-kick"
332
-
git push origin v1.1.0-bicyclekick
333
-
```
329
+
Branch protection prevents direct pushes to `master`, so all release prep goes through a PR:
334
330
335
-
3.**CD pipeline runs automatically** to build and publish
331
+
```bash
332
+
git checkout master && git pull
333
+
git checkout -b release/vX.Y.Z-term
334
+
```
335
+
336
+
#### 2. Update CHANGELOG.md
337
+
338
+
Move items from `[Unreleased]` to a new release section in [CHANGELOG.md](CHANGELOG.md), then commit and push the branch:
339
+
340
+
```bash
341
+
# Move items from [Unreleased] to new release section
342
+
# Example: [2.0.0 - corner] - 2026-03-29
343
+
git add CHANGELOG.md
344
+
git commit -m "chore(release): vX.Y.Z-term"
345
+
git push origin release/vX.Y.Z-term
346
+
```
347
+
348
+
#### 3. Merge the Release PR
349
+
350
+
Open a pull request from `release/vX.Y.Z-term` into `master` and merge it. The tag must be created **after** the merge so it points to the correct commit on `master`.
351
+
352
+
#### 4. Create and Push Tag
353
+
354
+
After the PR is merged, pull `master` and create the annotated tag:
355
+
356
+
```bash
357
+
git checkout master && git pull
358
+
git tag -a vX.Y.Z-term -m "Release X.Y.Z - Term"
359
+
git push origin vX.Y.Z-term
360
+
```
361
+
362
+
Example:
363
+
364
+
```bash
365
+
git tag -a v2.0.0-corner -m "Release 2.0.0 - Corner"
366
+
git push origin v2.0.0-corner
367
+
```
368
+
369
+
#### 5. Automated CD Workflow
370
+
371
+
Pushing the tag triggers the CD pipeline which automatically:
372
+
373
+
1. Builds and tests the project
374
+
2. Publishes Docker images to GitHub Container Registry
375
+
3. Creates a GitHub Release with auto-generated changelog from commits
376
+
377
+
#### Pre-Release Checklist
336
378
337
-
See [CHANGELOG.md](CHANGELOG.md#how-to-release) for complete release workflow.
379
+
-[ ] Release branch created from `master`
380
+
-[ ]`CHANGELOG.md` updated with release notes
381
+
-[ ] Changes committed and pushed on the release branch
382
+
-[ ] Release PR merged into `master`
383
+
-[ ] Tag created with correct format: `vX.Y.Z-term`
384
+
-[ ] Term is valid (A-Z from the [football terminology list](CHANGELOG.md#football-terminology-names-️))
0 commit comments