File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ ```
You can’t perform that action at this time.
0 commit comments