1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# VecminDB Release Guide
This document outlines the steps to release VecminDB to **crates.io** and **PyPI**.
## Prerequisites
- [Rust Toolchain](https://rustup.rs/) (stable)
- [Python 3.8+](https://www.python.org/)
- `cargo-release` (optional but recommended): `cargo install cargo-release`
- `maturin`: `pip install maturin`
---
## 1. Release to Crates.io (Core Library)
1. **Run Tests**: Ensure all tests pass.
```bash
cargo test --all-features
```
2. **Dry Run**: Verify packaging.
```bash
cargo publish --dry-run
```
3. **Publish**:
```bash
cargo publish
```
*Note: You need a valid API token from crates.io configured via `cargo login`.*
---
## 2. Release to PyPI (Python Bindings)
1. **Navigate to Bindings Directory**:
```bash
cd bindings/python
```
2. **Build Wheels**: Build release wheels for distribution.
```bash
maturin build --release
```
*This will generate wheel files in `target/wheels/` relative to the project root.*
3. **Publish to PyPI**:
```bash
maturin publish
```
*Note: You need a valid PyPI API token.*
---
## 3. Docker Release
1. **Authenticate**:
```bash
docker login
```
2. **Build and Push**:
```bash
docker build -t vecmindb/server:latest -t vecmindb/server:0.1.0 .
docker push vecmindb/server:latest
docker push vecmindb/server:0.1.0
```