Skip to content

Commit ae303b4

Browse files
docs: Add RELEASING.md
1 parent ad9eeef commit ae303b4

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

RELEASING.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Releasing HNSWLib
2+
3+
## Prerequisites
4+
5+
- Hex.pm account with publish access to `hnswlib`
6+
- All tests passing on main
7+
8+
## Steps
9+
10+
### 1. Update version for release
11+
12+
Edit `mix.exs` and change `@version "X.Y.Z-dev"` to `"X.Y.Z"`.
13+
14+
### 2. Commit and push
15+
16+
```bash
17+
git add mix.exs
18+
git commit -m "Bump version to X.Y.Z"
19+
git push origin main
20+
```
21+
22+
### 3. Wait for CI
23+
24+
- Tests must pass
25+
- Precompile builds all binaries (triggered after tests pass)
26+
- Monitor at: https://github.com/elixir-nx/hnswlib/actions
27+
28+
### 4. Create and push tag
29+
30+
```bash
31+
git tag -a vX.Y.Z -m "Release vX.Y.Z"
32+
git push origin vX.Y.Z
33+
```
34+
35+
### 5. Wait for release CI
36+
37+
- Precompile workflow builds all platform binaries
38+
- Creates GitHub release with all `.tar.gz` and `.sha256` files
39+
- Monitor at: https://github.com/elixir-nx/hnswlib/actions
40+
41+
### 6. Generate checksum.exs
42+
43+
```bash
44+
mix elixir_make.checksum --all --ignore-unavailable
45+
```
46+
47+
### 7. Commit checksum
48+
49+
```bash
50+
git add checksum.exs
51+
git commit -m "Add checksum.exs for vX.Y.Z"
52+
git push origin main
53+
```
54+
55+
### 8. Publish to Hex
56+
57+
```bash
58+
git checkout vX.Y.Z
59+
mix deps.get
60+
mix hex.publish
61+
```
62+
63+
### 9. Bump to next dev version
64+
65+
```bash
66+
git checkout main
67+
# Edit mix.exs: change @version "X.Y.Z" to "X.Y.(Z+1)-dev"
68+
git add mix.exs
69+
git commit -m "Bump version to X.Y.(Z+1)-dev"
70+
git push origin main
71+
```
72+
73+
## Summary
74+
75+
```
76+
main (X.Y.Z-dev) → bump to X.Y.Z → push → CI passes → tag vX.Y.Z →
77+
CI builds release → checksum.exs → hex.publish → bump to X.Y.(Z+1)-dev
78+
```

0 commit comments

Comments
 (0)