Skip to content

Commit 3cb7407

Browse files
author
Rex
committed
docs: add versioning policy and changelog baseline
1 parent 99d8369 commit 3cb7407

4 files changed

Lines changed: 88 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Changelog
2+
3+
All notable user-visible changes are documented in this file.
4+
5+
## [Unreleased]
6+
7+
### Added
8+
9+
- Versioning policy documented in `docs/versioning-and-release.md`.
10+
11+
## [0.1.0] - Planned
12+
13+
### Added
14+
15+
- First public release baseline:
16+
- `rexos` CLI install/run path
17+
- Multi-provider model routing foundation
18+
- Long-running harness workflow
19+
- GitHub Release binary publishing pipeline

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ To run the optional NVIDIA NIM smoke test: `NVIDIA_API_KEY=<key> cargo test -p r
5959
## Releasing (maintainers)
6060

6161
Pushing a `v*` tag triggers the Release workflow which attaches prebuilt archives to a GitHub Release.
62+
Before every release, follow the versioning/changelog policy in `docs/versioning-and-release.md`.
63+
If an iteration is marked as "needs version bump", the same change set must include both version number updates and changelog updates (`CHANGELOG.md`).
6264

6365
```bash
6466
git tag v0.1.0

README.zh-CN.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ rexos agent run --workspace /tmp/rexos-work --prompt "Create hello.txt with the
5959
## 发版(维护者)
6060

6161
推送一个 `v*` tag 会触发 Release 工作流,构建并把预编译压缩包上传到 GitHub Release。
62+
每次发版前请遵循 `docs/versioning-and-release.md` 的版本与更新说明规则。
63+
如果本次迭代被标记为“需要升级版本号”,则同一批改动必须同时包含版本号更新和 `CHANGELOG.md` 更新。
6264

6365
```bash
6466
git tag v0.1.0

docs/versioning-and-release.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Versioning and Release Policy
2+
3+
## Goals
4+
5+
- Define the first release (`v0.1.0`) with a clear scope.
6+
- Keep future version bumps planned and predictable.
7+
- Enforce one rule: if this iteration must bump version, the same commit/PR must include both version number changes and changelog updates.
8+
9+
## Versioning Model
10+
11+
This repo uses SemVer with a `v` tag prefix (`vMAJOR.MINOR.PATCH`):
12+
13+
- `MAJOR`: incompatible public behavior changes.
14+
- `MINOR`: planned feature iteration (preferred during `0.x` stage).
15+
- `PATCH`: bugfixes, documentation, or small safe improvements.
16+
17+
Current workspace version is `0.1.0` (from root `Cargo.toml` `[workspace.package].version`).
18+
19+
## First Release Plan (`v0.1.0`)
20+
21+
Release target:
22+
- Core CLI path is runnable (`rexos init`, `rexos agent run`).
23+
- Existing multi-provider routing and harness flow are stable enough for first external users.
24+
- GitHub Release binary workflow is available (tag-triggered).
25+
26+
Release checklist:
27+
1. Run full test suite: `cargo test`.
28+
2. Confirm release packaging script works locally:
29+
`python3 scripts/package_release.py --version v0.1.0 --target local --bin target/release/rexos --out-dir dist`
30+
3. Ensure `CHANGELOG.md` contains a `0.1.0` section.
31+
4. Create and push tag:
32+
`git tag v0.1.0 && git push origin v0.1.0`
33+
34+
## Mandatory Rule for Version-Bump Iterations
35+
36+
When the maintainer explicitly says this iteration needs a version bump, the delivery must include all of the following in the same change set:
37+
38+
1. Version number update:
39+
- Root `Cargo.toml` `[workspace.package].version`
40+
- Any docs/examples that include hardcoded version text
41+
2. Changelog update:
42+
- Add or update the target version section in `CHANGELOG.md`
43+
- Include concise notes for user-visible changes
44+
45+
If either item is missing, iteration is not considered releasable.
46+
47+
## Planned Iteration Workflow
48+
49+
1. Confirm iteration scope and choose target version (`MINOR` or `PATCH`).
50+
2. Implement changes normally.
51+
3. If iteration is marked "needs version bump", update version + changelog together.
52+
4. Run verification (`cargo test`, plus release packaging smoke check when release-bound).
53+
5. Merge, then cut tag (`vX.Y.Z`).
54+
55+
## Changelog Format
56+
57+
`CHANGELOG.md` follows this structure:
58+
59+
- `## [Unreleased]`
60+
- `## [X.Y.Z] - YYYY-MM-DD`
61+
- `### Added`
62+
- `### Changed`
63+
- `### Fixed`
64+
65+
Only user-visible changes should be recorded.

0 commit comments

Comments
 (0)