Skip to content

Commit 89f235c

Browse files
committed
docs(development): refresh versioning section for release workflow + catch-up command
1 parent 5c22307 commit 89f235c

1 file changed

Lines changed: 36 additions & 10 deletions

File tree

docs/DEVELOPMENT.md

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,15 @@ The notification framework is modular and event-driven. For detailed instruction
158158

159159
## Project Versioning
160160

161-
We utilize a centralized semantic versioning manager script located in `scripts/version_manager.py` to synchronize versions across backend configs, APIs, frontend packages, and installation docs. It also automates staging, committing, tagging, and pushing to trigger CI/CD pipelines (such as Gitea Package / Docker Image builds).
161+
We utilize a centralized semantic versioning manager script located in
162+
`scripts/version_manager.py` to synchronize versions across backend configs,
163+
APIs, frontend packages, and installation docs. It also automates staging,
164+
committing, tagging, and pushing to trigger CI/CD pipelines (Docker image
165+
builds + GitHub Release automation).
166+
167+
For the full release workflow (commit-time changelog rule, RC/final flow,
168+
catch-up procedure, GitHub Release automation), see
169+
[RELEASE_PROCESS.md](RELEASE_PROCESS.md).
162170

163171
### Versioning Commands:
164172
- **Show Current Version**:
@@ -167,29 +175,47 @@ We utilize a centralized semantic versioning manager script located in `scripts/
167175
```
168176
- **Set Explicit Version**:
169177
```bash
170-
python3 scripts/version_manager.py set 1.1.0-rc.1
178+
python3 scripts/version_manager.py set 0.3.0-rc.2
171179
```
172180
- **Automatically Bump Version**:
173181
```bash
174182
python3 scripts/version_manager.py bump [major | minor | patch | rc]
175183
```
176-
* `major`: Promotes to next major release (e.g. `1.0.0` -> `2.0.0`)
177-
* `minor`: Promotes to next minor release (e.g. `1.0.0` -> `1.1.0`)
178-
* `patch`: Promotes to next patch release or removes release candidate suffix (e.g. `1.0.0` -> `1.0.1`, `1.0.1-rc.2` -> `1.0.1`)
179-
* `rc`: Sets or increments release candidate number on the upcoming release (e.g. `1.0.0` -> `1.0.1-rc.1`, `1.0.1-rc.1` -> `1.0.1-rc.2`)
184+
* `major`: Promotes to next major release (e.g. `0.3.0` -> `1.0.0`)
185+
* `minor`: Promotes to next minor release (e.g. `0.3.0` -> `0.4.0`)
186+
* `patch`: Promotes to next patch release or removes release candidate suffix (e.g. `0.3.0` -> `0.3.1`, `0.3.0-rc.2` -> `0.3.0`)
187+
* `rc`: Sets or increments release candidate number on the upcoming release (e.g. `0.3.0` -> `0.3.1-rc.1`, `0.3.0-rc.1` -> `0.3.0-rc.2`)
188+
- **Catch-up (commit + tag + push the version already in `config.py`)**:
189+
```bash
190+
python3 scripts/version_manager.py release --git --push
191+
```
192+
Use this when you ran `set`/`bump` without `--git --push`, or edited
193+
`CHANGELOG.md` after the version bump.
180194

181195
### Git & CI/CD Integration:
182196
When setting or bumping a version, you can automate staging, committing, and tagging using:
183-
- `--git` or `-g`: Automatically stages updated files, commits them with `chore(release): bump version to X.Y.Z`, and creates an annotated git tag `vX.Y.Z`.
184-
- `--push` or `-p`: Pushes both the new commit and the release tag to the remote repository (`origin`), which triggers Gitea Package/Container builds.
197+
- `--git` or `-g`: Automatically stages updated files (version files +
198+
`CHANGELOG.md` + `docs/RELEASE_PROCESS.md`), commits them with
199+
`chore(release): bump version to X.Y.Z`, and creates an annotated git tag
200+
`vX.Y.Z`.
201+
- `--push` or `-p`: Pushes both the new commit and the release tag to
202+
**every** configured remote (not just `origin`), which triggers:
203+
- **Docker image builds** (`.github/workflows/docker-publish.yml`) —
204+
publishes backend + frontend images to `ghcr.io`.
205+
- **GitHub Release** (`.github/workflows/release.yml`) — creates a
206+
GitHub Release with notes extracted from `CHANGELOG.md`, automatically
207+
marked as a **prerelease** for RC/beta/alpha versions.
185208

186209
**Examples:**
187210
```bash
188211
# Bump patch version, commit, and tag locally
189212
python3 scripts/version_manager.py bump patch --git
190213
191-
# Bump minor version, commit, tag, and push to remote (origin)
192-
python3 scripts/version_manager.py bump minor --git --push
214+
# Bump RC version, commit, tag, and push to all remotes (triggers CI)
215+
python3 scripts/version_manager.py bump rc --git --push
216+
217+
# Catch-up: you forgot --git --push earlier, or edited CHANGELOG after bump
218+
python3 scripts/version_manager.py release --git --push
193219
```
194220

195221
## Key Files

0 commit comments

Comments
 (0)