- Add persistence support using redb storage backend - Add GraphDatabase.open() factory method for opening existing databases - Add isPersistent() and getStoragePath() methods - Update TypeScript definitions with all new APIs - Add benchmark suite (131K+ ops/sec batch inserts) - Add comprehensive test suite with persistence tests - Add GitHub workflow for multi-platform builds - Fix sync-lockfile.sh working directory bug - Publish @ruvector/graph-node@0.1.15 to npm - Publish @ruvector/graph-node-linux-x64-gnu@0.1.15 to npm Performance benchmarks: - Node Creation: 9.17K ops/sec - Batch Node Creation: 131.10K ops/sec - Edge Creation: 9.30K ops/sec - Vector Search (k=10): 2.35K ops/sec - k-hop Traversal: 10.28K ops/sec 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| build | ||
| check-and-publish-router-wasm.sh | ||
| ci-sync-lockfile.sh | ||
| deploy.sh | ||
| DEPLOYMENT-QUICKSTART.md | ||
| DEPLOYMENT.md | ||
| install-hooks.sh | ||
| publish-crates.sh | ||
| publish-router-wasm.sh | ||
| README.md | ||
| sync-lockfile.sh | ||
| test-all-graph-commands.sh | ||
| test-deploy.sh | ||
| test-docker-package.sh | ||
| test-graph-cli.sh | ||
| validate-packages-simple.sh | ||
| validate-packages.sh | ||
RuVector Automation Scripts
This directory contains automation scripts to streamline development, deployment, and prevent common issues.
📜 Available Scripts
🚀 deploy.sh
Comprehensive deployment script for publishing to crates.io and npm.
Handles:
- Version management and synchronization
- Pre-deployment checks (tests, linting, formatting)
- WASM package builds
- Crate publishing to crates.io
- NPM package publishing
- GitHub Actions trigger for cross-platform builds
Usage:
# Full deployment
./scripts/deploy.sh
# Dry run (test without publishing)
./scripts/deploy.sh --dry-run
# See all options
./scripts/deploy.sh --help
See: DEPLOYMENT.md for complete documentation
🧪 test-deploy.sh
Tests the deployment script without publishing.
Usage: ./scripts/test-deploy.sh
🔄 sync-lockfile.sh
Automatically syncs package-lock.json with package.json changes.
Usage: ./scripts/sync-lockfile.sh
🪝 install-hooks.sh
Installs git hooks for automatic lock file management.
Usage: ./scripts/install-hooks.sh
🤖 ci-sync-lockfile.sh
CI/CD script for automatic lock file fixing.
Usage: ./scripts/ci-sync-lockfile.sh
📦 publish-crates.sh
Legacy script for publishing individual crates. Use deploy.sh instead.
🧭 validate-packages.sh
Validates package configurations and dependencies.
🚀 Quick Start
For Development
-
Install git hooks (recommended):
./scripts/install-hooks.sh -
Test the hook:
cd npm/packages/ruvector npm install chalk git add package.json git commit -m "test: Add chalk dependency" # Hook automatically updates lock file
For Deployment
-
Test deployment script:
./scripts/test-deploy.sh -
Set credentials (required):
export CRATES_API_KEY="your-crates-io-token" export NPM_TOKEN="your-npm-token" -
Run dry run (recommended first):
./scripts/deploy.sh --dry-run -
Deploy:
./scripts/deploy.sh
📖 Documentation
- DEPLOYMENT.md - Comprehensive deployment guide
- ../docs/CONTRIBUTING.md - Development guide
🔐 Security
Never commit credentials! Always use environment variables or secure credential storage.
See DEPLOYMENT.md#security-best-practices for details.