git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
420 lines
14 KiB
Markdown
420 lines
14 KiB
Markdown
# RuVector Publishing Checklist
|
|
|
|
**Generated**: 2026-01-18
|
|
**Version**: 0.1.32
|
|
**Status**: Pre-publication Review
|
|
|
|
This document tracks the readiness of all ruvector crates for publication to crates.io.
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
| Category | Status | Notes |
|
|
|----------|--------|-------|
|
|
| Cargo.toml Metadata | NEEDS WORK | Missing keywords/categories on core crates |
|
|
| Documentation | GOOD | All core crates have READMEs |
|
|
| License | PASS | MIT license present and verified |
|
|
| CI/CD | PASS | 19 GitHub Actions workflows |
|
|
| Tests | PASS | Tests compile successfully |
|
|
| Pre-publish Dry Run | NEEDS WORK | Compilation error in SIMD code |
|
|
|
|
---
|
|
|
|
## 1. Cargo.toml Metadata Updates
|
|
|
|
### Workspace Configuration (/Cargo.toml)
|
|
- [x] Version: `0.1.32`
|
|
- [x] Edition: `2021`
|
|
- [x] Rust-version: `1.77`
|
|
- [x] License: `MIT`
|
|
- [x] Authors: `["Ruvector Team"]`
|
|
- [x] Repository: `https://github.com/ruvnet/ruvector`
|
|
|
|
### Core Crates - Metadata Status
|
|
|
|
#### ruvector-core
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-core` |
|
|
| version | PASS | workspace |
|
|
| description | PASS | "High-performance Rust vector database core with HNSW indexing" |
|
|
| readme | PASS | `README.md` |
|
|
| license | PASS | workspace (MIT) |
|
|
| repository | PASS | workspace |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
| documentation | MISSING | Need to add |
|
|
| homepage | MISSING | Need to add |
|
|
|
|
**Recommended additions**:
|
|
```toml
|
|
keywords = ["vector-database", "hnsw", "similarity-search", "embeddings", "simd"]
|
|
categories = ["database", "algorithms", "science"]
|
|
documentation = "https://docs.rs/ruvector-core"
|
|
homepage = "https://github.com/ruvnet/ruvector"
|
|
```
|
|
|
|
#### ruvector-graph
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-graph` |
|
|
| version | PASS | workspace |
|
|
| description | PASS | "Distributed Neo4j-compatible hypergraph database with SIMD optimization" |
|
|
| readme | PASS | `README.md` |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
| documentation | MISSING | Need to add |
|
|
|
|
**Recommended additions**:
|
|
```toml
|
|
keywords = ["graph-database", "cypher", "hypergraph", "neo4j", "distributed"]
|
|
categories = ["database", "data-structures", "algorithms"]
|
|
documentation = "https://docs.rs/ruvector-graph"
|
|
homepage = "https://github.com/ruvnet/ruvector"
|
|
```
|
|
|
|
#### ruvector-gnn
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-gnn` |
|
|
| version | PASS | workspace |
|
|
| description | PASS | "Graph Neural Network layer for Ruvector on HNSW topology" |
|
|
| readme | PASS | `README.md` |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
|
|
**Recommended additions**:
|
|
```toml
|
|
keywords = ["gnn", "graph-neural-network", "machine-learning", "hnsw", "embeddings"]
|
|
categories = ["science", "algorithms", "machine-learning"]
|
|
documentation = "https://docs.rs/ruvector-gnn"
|
|
homepage = "https://github.com/ruvnet/ruvector"
|
|
```
|
|
|
|
#### ruvector-mincut (GOOD)
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-mincut` |
|
|
| description | PASS | "World's first subpolynomial dynamic min-cut..." |
|
|
| keywords | PASS | `["graph", "minimum-cut", "network-analysis", "self-healing", "dynamic-graph"]` |
|
|
| categories | PASS | `["algorithms", "data-structures", "science", "mathematics", "simulation"]` |
|
|
| documentation | PASS | `https://docs.rs/ruvector-mincut` |
|
|
| homepage | PASS | `https://ruv.io` |
|
|
|
|
#### ruvector-attention (GOOD)
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-attention` |
|
|
| version | NOTE | `0.1.31` (not using workspace) |
|
|
| description | PASS | "Attention mechanisms for ruvector..." |
|
|
| keywords | PASS | `["attention", "machine-learning", "vector-search", "graph-attention"]` |
|
|
| categories | PASS | `["algorithms", "science"]` |
|
|
|
|
#### ruvector-sona (GOOD)
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-sona` |
|
|
| version | NOTE | `0.1.4` (not using workspace) |
|
|
| description | PASS | "Self-Optimizing Neural Architecture..." |
|
|
| keywords | PASS | `["neural", "learning", "lora", "llm", "adaptive"]` |
|
|
| categories | PASS | `["science", "algorithms", "wasm"]` |
|
|
| documentation | PASS | `https://docs.rs/sona` |
|
|
| homepage | PASS | `https://github.com/ruvnet/ruvector/tree/main/crates/sona` |
|
|
| license | PASS | `MIT OR Apache-2.0` |
|
|
|
|
#### ruvector-postgres (GOOD)
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-postgres` |
|
|
| version | NOTE | `2.0.0` (not using workspace) |
|
|
| description | PASS | "High-performance PostgreSQL vector database extension v2..." |
|
|
| keywords | PASS | `["postgresql", "vector-database", "embeddings", "pgvector", "hnsw"]` |
|
|
| categories | PASS | `["database", "science", "algorithms"]` |
|
|
| documentation | PASS | `https://docs.rs/ruvector-postgres` |
|
|
| homepage | PASS | `https://github.com/ruvnet/ruvector` |
|
|
|
|
#### ruvector-cli
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-cli` |
|
|
| description | PASS | "CLI and MCP server for Ruvector" |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
|
|
**Recommended additions**:
|
|
```toml
|
|
keywords = ["cli", "vector-database", "mcp", "ruvector", "command-line"]
|
|
categories = ["command-line-utilities", "database"]
|
|
documentation = "https://docs.rs/ruvector-cli"
|
|
homepage = "https://github.com/ruvnet/ruvector"
|
|
```
|
|
|
|
#### ruvector-filter
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-filter` |
|
|
| description | PASS | "Advanced metadata filtering for Ruvector vector search" |
|
|
| rust-version | MISSING | Need to add workspace |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
|
|
#### ruvector-collections
|
|
| Field | Status | Current Value |
|
|
|-------|--------|---------------|
|
|
| name | PASS | `ruvector-collections` |
|
|
| description | PASS | "High-performance collection management for Ruvector vector databases" |
|
|
| rust-version | MISSING | Need to add workspace |
|
|
| keywords | MISSING | Need to add |
|
|
| categories | MISSING | Need to add |
|
|
|
|
---
|
|
|
|
## 2. Documentation Status
|
|
|
|
### Crate READMEs
|
|
| Crate | README | Lines | Status |
|
|
|-------|--------|-------|--------|
|
|
| ruvector-core | Yes | 511 | GOOD |
|
|
| ruvector-graph | Yes | - | GOOD |
|
|
| ruvector-gnn | Yes | - | GOOD |
|
|
| ruvector-mincut | Yes | - | GOOD |
|
|
| ruvector-attention | Yes | - | GOOD |
|
|
| sona | Yes | - | GOOD |
|
|
| ruvector-postgres | Yes | - | GOOD |
|
|
| ruvector-cli | Yes | - | GOOD |
|
|
|
|
### Doc Comments
|
|
| Status | Notes |
|
|
|--------|-------|
|
|
| NEEDS WORK | 112 missing documentation warnings in ruvector-core |
|
|
| PRIORITY | Focus on public API documentation |
|
|
|
|
**Key areas needing docs**:
|
|
- `arena.rs` - Thread-local arena documentation
|
|
- `advanced/neural_hash.rs` - Struct field documentation
|
|
- Various public structs and functions
|
|
|
|
### ADR Documentation
|
|
| ADR | Title | Status |
|
|
|-----|-------|--------|
|
|
| ADR-001 | Ruvector Core Architecture | Proposed |
|
|
| ADR-002 | RuvLLM Integration | Proposed |
|
|
| ADR-003 | SIMD Optimization Strategy | Proposed |
|
|
| ADR-004 | KV Cache Management | Proposed |
|
|
| ADR-005 | WASM Runtime Integration | Proposed |
|
|
| ADR-006 | Memory Management | Proposed |
|
|
|
|
---
|
|
|
|
## 3. Pre-publish Checks
|
|
|
|
### Cargo Publish Dry Run Results
|
|
|
|
#### ruvector-core
|
|
```
|
|
Status: FAILED
|
|
Error: cannot find function `euclidean_distance_neon_unrolled_impl`
|
|
Location: src/simd_intrinsics.rs:40
|
|
```
|
|
|
|
**Analysis**: The error occurs during verification of the packaged tarball on non-ARM64 systems. The code compiles correctly on ARM64 (Apple Silicon). This is a cross-compilation issue.
|
|
|
|
**Action Required**:
|
|
1. Ensure the simd_intrinsics.rs file has proper `#[cfg(...)]` guards for all platform-specific functions
|
|
2. The uncommitted changes in simd_intrinsics.rs need to be reviewed and committed
|
|
3. Test on multiple architectures before publish
|
|
|
|
### Compilation Status
|
|
| Crate | Status | Warnings |
|
|
|-------|--------|----------|
|
|
| ruvector-core | COMPILES | 112 warnings |
|
|
| Test compilation | PASS | Tests compile |
|
|
|
|
---
|
|
|
|
## 4. License Verification
|
|
|
|
### LICENSE File
|
|
| Field | Value | Status |
|
|
|-------|-------|--------|
|
|
| Location | `/LICENSE` | PASS |
|
|
| Type | MIT | PASS |
|
|
| Copyright | 2025 rUv | PASS |
|
|
| Format | Standard MIT | PASS |
|
|
|
|
### Dependency License Compatibility
|
|
| License | Compatible with MIT | Status |
|
|
|---------|---------------------|--------|
|
|
| MIT | Yes | PASS |
|
|
| Apache-2.0 | Yes | PASS |
|
|
| BSD-* | Yes | PASS |
|
|
| ISC | Yes | PASS |
|
|
|
|
**Note**: All workspace dependencies are compatible with MIT license.
|
|
|
|
---
|
|
|
|
## 5. CI/CD Workflows
|
|
|
|
### GitHub Actions (19 workflows)
|
|
| Workflow | Purpose | Status |
|
|
|----------|---------|--------|
|
|
| agentic-synth-ci.yml | Agentic synthesis CI | ACTIVE |
|
|
| benchmarks.yml | Performance benchmarks | ACTIVE |
|
|
| build-attention.yml | Attention crate builds | ACTIVE |
|
|
| build-gnn.yml | GNN crate builds | ACTIVE |
|
|
| build-graph-node.yml | Graph node builds | ACTIVE |
|
|
| build-native.yml | Native builds (all platforms) | ACTIVE |
|
|
| build-router.yml | Router builds | ACTIVE |
|
|
| build-tiny-dancer.yml | Tiny Dancer builds | ACTIVE |
|
|
| docker-publish.yml | Docker image publishing | ACTIVE |
|
|
| edge-net-models.yml | Edge network models | ACTIVE |
|
|
| hooks-ci.yml | Hooks CI testing | ACTIVE |
|
|
| postgres-extension-ci.yml | PostgreSQL extension CI | ACTIVE |
|
|
| publish-all.yml | Multi-crate publishing | ACTIVE |
|
|
| release.yml | Release automation | ACTIVE |
|
|
| ruvector-postgres-ci.yml | PostgreSQL crate CI | ACTIVE |
|
|
| ruvllm-build.yml | RuvLLM builds | ACTIVE |
|
|
| ruvllm-native.yml | RuvLLM native builds | ACTIVE |
|
|
| sona-napi.yml | SONA NAPI builds | ACTIVE |
|
|
| validate-lockfile.yml | Lockfile validation | ACTIVE |
|
|
|
|
---
|
|
|
|
## 6. CHANGELOG Status
|
|
|
|
### Current CHANGELOG.md
|
|
- Format: Keep a Changelog compliant
|
|
- Last documented version: `0.1.0` (2025-11-19)
|
|
- Unreleased section: Contains documentation updates
|
|
|
|
### Required Updates
|
|
- [ ] Add v0.1.32 release notes
|
|
- [ ] Document ADR-based architecture decisions
|
|
- [ ] Add AVX-512 SIMD optimization features (ADR-003)
|
|
- [ ] Document WASM runtime integration (ADR-005)
|
|
- [ ] Document memory management improvements (ADR-006)
|
|
- [ ] Add KV cache management features (ADR-004)
|
|
|
|
---
|
|
|
|
## 7. Action Items
|
|
|
|
### High Priority (Before Publish)
|
|
|
|
1. **Fix SIMD Compilation Issue**
|
|
- Review uncommitted changes in `crates/ruvector-core/src/simd_intrinsics.rs`
|
|
- Ensure proper `#[cfg(...)]` guards for cross-platform compilation
|
|
- Commit or revert changes
|
|
|
|
2. **Add Missing Metadata**
|
|
```bash
|
|
# Add to these crates:
|
|
# - ruvector-core: keywords, categories, documentation, homepage
|
|
# - ruvector-graph: keywords, categories, documentation
|
|
# - ruvector-gnn: keywords, categories, documentation
|
|
# - ruvector-cli: keywords, categories, documentation
|
|
# - ruvector-filter: rust-version.workspace, keywords, categories
|
|
# - ruvector-collections: rust-version.workspace, keywords, categories
|
|
```
|
|
|
|
3. **Version Alignment**
|
|
- `ruvector-attention` uses `0.1.31` instead of workspace
|
|
- `ruvector-sona` uses `0.1.4` instead of workspace
|
|
- `ruvector-postgres` uses `2.0.0` instead of workspace
|
|
- Decide: Keep independent versions or align to workspace?
|
|
|
|
### Medium Priority
|
|
|
|
4. **Documentation Improvements**
|
|
- Address 112 missing documentation warnings
|
|
- Add doc examples to public APIs
|
|
- Run `cargo doc --no-deps` and fix any errors
|
|
|
|
5. **CHANGELOG Updates**
|
|
- Add v0.1.32 section
|
|
- Document ADR-based features
|
|
|
|
### Low Priority
|
|
|
|
6. **Test Coverage**
|
|
- Run full test suite: `cargo test --workspace`
|
|
- Ensure all tests pass before publish
|
|
|
|
7. **Clean Up Warnings**
|
|
- Fix 18 unused import/variable warnings
|
|
- Run `cargo fix` for auto-fixable issues
|
|
|
|
---
|
|
|
|
## 8. Publishing Order
|
|
|
|
When ready to publish, use this order (respecting dependencies):
|
|
|
|
```
|
|
1. ruvector-core (no internal deps)
|
|
2. ruvector-filter (depends on ruvector-core)
|
|
3. ruvector-collections (depends on ruvector-core)
|
|
4. ruvector-metrics (depends on ruvector-core)
|
|
5. ruvector-snapshot (depends on ruvector-core)
|
|
6. ruvector-graph (depends on ruvector-core)
|
|
7. ruvector-gnn (depends on ruvector-core)
|
|
8. ruvector-cluster (depends on ruvector-core)
|
|
9. ruvector-raft (depends on ruvector-core)
|
|
10. ruvector-replication (depends on ruvector-core, ruvector-raft)
|
|
11. ruvector-router-core (depends on ruvector-core)
|
|
12. ruvector-mincut (depends on ruvector-core, optional ruvector-graph)
|
|
13. ruvector-attention (depends on optional ruvector-math)
|
|
14. ruvector-sona (no ruvector deps)
|
|
15. ruvector-tiny-dancer-core (depends on ruvector-core, ruvector-router-core)
|
|
16. ruvector-dag (depends on ruvector-core, ruvector-attention, ruvector-mincut)
|
|
17. ruvector-server (depends on multiple crates)
|
|
18. ruvector-cli (depends on ruvector-core, ruvector-graph, ruvector-gnn)
|
|
19. Platform bindings (-node, -wasm variants) last
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Commands Reference
|
|
|
|
```bash
|
|
# Verify a single crate
|
|
cargo publish --dry-run -p ruvector-core --allow-dirty
|
|
|
|
# Build documentation
|
|
cargo doc --no-deps -p ruvector-core
|
|
|
|
# Run tests
|
|
cargo test -p ruvector-core
|
|
|
|
# Check all crates compile
|
|
cargo check --workspace
|
|
|
|
# Fix auto-fixable warnings
|
|
cargo fix --workspace --allow-dirty
|
|
|
|
# Publish (when ready)
|
|
cargo publish -p ruvector-core
|
|
```
|
|
|
|
---
|
|
|
|
## Approval Checklist
|
|
|
|
Before publishing, confirm:
|
|
|
|
- [ ] All metadata fields added to crates
|
|
- [ ] SIMD compilation issue resolved
|
|
- [ ] Tests pass on all platforms
|
|
- [ ] Documentation builds without errors
|
|
- [ ] CHANGELOG updated
|
|
- [ ] Version numbers consistent
|
|
- [ ] Git working directory clean
|
|
- [ ] GitHub Actions CI passing
|
|
|
|
---
|
|
|
|
**Last Updated**: 2026-01-18
|
|
**Next Review**: Before v0.1.32 release
|