@@ -27,131 +27,10 @@ vMAJOR.MINOR.PATCH
2727
2828### Purpose
2929
30- 1 . ** Mark releases** — Clearly identify release commits
31- 2 . ** Historical reference** — Easy rollback and comparison
32- 3 . ** CI/CD integration** — Build pipelines can trigger on tags
33- 4 . ** User reference** — Users can checkout specific versions
34-
35- ### Tag Format
36-
37- | Type | Format | Example |
38- | ------| -------| ---------|
39- | Release | ` v*.*.* ` | ` v0.2.28 ` |
40- | Beta | ` v*.*.*-beta* ` | ` v0.3.0-beta1 ` |
41- | Release Candidate | ` v*.*.*-rc* ` | ` v0.3.0-rc1 ` |
42-
43- ### Creating Tags
44-
45- ``` bash
46- # Annotated tag (recommended for releases)
47- git tag -a v0.2.28 -m " Release v0.2.28 - Description"
48-
49- # Lightweight tag
50- git tag v0.2.28
51- ```
52-
53- ### Managing Tags
54-
55- ``` bash
56- # List all tags
57- git tag -l
58-
59- # List tags with messages
60- git tag -l -n
61-
62- # Push tag to remote
63- git push origin v0.2.28
64-
65- # Push all tags
66- git push --tags
67-
68- # Delete local tag
69- git tag -d v0.2.28
70-
71- # Delete remote tag
72- git push origin :refs/tags/v0.2.28
73- ```
74-
75- ---
76-
77- ## Release Process
78-
79- ### Before Releasing
80-
81- 1 . ** Update VERSION file** with new version number
82- 2 . ** Update README.md** with new version in header
83- 3 . ** Update documentation** if needed
84- 4 . ** Run tests** and verify build
85-
86- ### Creating a Release
87-
88- ``` bash
89- # 1. Ensure on main branch and up to date
90- git checkout main
91- git pull
92-
93- # 2. Create the release tag
94- git tag -a v0.2.28 -m " Release v0.2.28 - Description of changes"
95-
96- # 3. Push tag to remote
97- git push origin v0.2.28
98- ```
99-
100- ### After Release
101-
102- 1 . Update VERSION to next development version (e.g., v0.2.29-dev)
103- 2 . Push the version change
104-
105- ---
106-
107- ## Version File
108-
109- The ` VERSION ` file contains only the version string:
110-
111- ```
112- 0.2.28
113- ```
114-
115- This file is used by:
116- - Build scripts to embed version in executable
117- - Documentation for version reference
118- - CI/CD for release detection
119-
120- ### Sync Version Script
121-
122- Use the provided scripts to sync version:
123-
124- ``` bash
125- # PowerShell (Windows)
126- .\s cripts\s ync-version.ps1 0.2.29
127-
128- # Bash (Linux/macOS/BSD)
129- ./scripts/sync-version.sh 0.2.29
130- ```
131-
132- ---
133-
134- ## Release Checklist
135-
136- - [ ] All tests pass
137- - [ ] Build succeeds on all platforms
138- - [ ] VERSION file updated
139- - [ ] README.md header updated
140- - [ ] Changelog entry added (if applicable)
141- - [ ] Documentation updated
142- - [ ] Git tag created with version
143- - [ ] Tag pushed to remote
144-
145- ---
146-
147- ## Rationale
148-
149- ### Why Use Tags?
150-
151- 1 . ** Clarity** — Tags make it obvious which commit is a release
152- 2 . ** Navigation** — Easy to find any release version
153- 3 . ** CI/CD** — Can trigger builds/deployments on tags
154- 4 . ** Collaboration** — Team members can reference exact versions
30+ 1 . ** Mark releases** - Clearly identify release commits
31+ 2 . ** Historical reference** - Easy rollback and comparison
32+ 3 . ** CI/CD integration** - Build pipelines can trigger on tags
33+ 4 . ** User reference** - Users can checkout specific versions
15534
15635### Why Annotated Tags?
15736
0 commit comments