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
This project uses [towncrier](https://towncrier.readthedocs.io/) for changelog management and [setuptools-scm](https://setuptools-scm.readthedocs.io/) for automatic versioning based on git tags.
129
+
130
+
### Release Process
131
+
132
+
1.**Ensure all changes are documented**: Add change fragments to the `changes/` directory:
133
+
```console
134
+
# For a bug fix
135
+
$ echo "Fix description of the bug fix ([#123](https://github.com/lablup/callosum/issues/123))" > changes/123.fix.md
136
+
137
+
# For a new feature
138
+
$ echo "Description of the new feature ([#124](https://github.com/lablup/callosum/issues/124))" > changes/124.feature.md
139
+
```
140
+
141
+
2.**Generate the changelog**: Create a draft changelog to review:
142
+
```console
143
+
$ uv run towncrier build --draft --version 1.0.4
144
+
```
145
+
146
+
3.**Build and finalize the changelog**: When ready to release:
147
+
```console
148
+
$ uv run towncrier build --version 1.0.4
149
+
```
150
+
This updates `CHANGES.md` and removes the change fragments.
151
+
152
+
4.**Commit the changelog**:
153
+
```console
154
+
$ git add CHANGES.md changes/
155
+
$ git commit -m "release: 1.0.4"
156
+
```
157
+
158
+
5.**Create and push a annotated, signed git tag**:
159
+
```console
160
+
$ git tag -a -s 1.0.4
161
+
$ git push origin main --tags
162
+
```
163
+
164
+
6.**Automated release**: The GitHub Actions workflow will automatically:
165
+
- Run all tests and checks
166
+
- Build source and wheel distributions using `uv build`
167
+
- Extract release notes from the changelog
168
+
- Create a GitHub release with the built artifacts
169
+
- Publish to PyPI using trusted publishing
170
+
171
+
### Release Workflow
172
+
173
+
The release is triggered automatically when a git tag is pushed. The workflow:
174
+
175
+
1.**Triggers on**: Git tag push (e.g., `git push origin --tags`)
176
+
2.**Builds**: Uses `uv build` to create distributions
177
+
3.**Publishes**:
178
+
- GitHub release with changelog and artifacts
179
+
- PyPI release using trusted publishing (no manual tokens needed)
0 commit comments