mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-23 12:55:26 +00:00
This commit addresses GitHub issue #17 by implementing comprehensive forgetting mitigation for continual learning in the GNN module. ## New Features ### Optimizer Implementation (training.rs) - Full Adam optimizer with bias-corrected first and second moments - SGD with momentum support - Lazy initialization of state buffers for efficiency ### Replay Buffer (replay.rs) - Experience replay with reservoir sampling for uniform distribution - Distribution shift detection with statistical tracking - Configurable capacity and batch sampling ### Elastic Weight Consolidation (ewc.rs) - Fisher information diagonal computation - Anchor weight consolidation for task boundaries - EWC penalty and gradient computation ### Learning Rate Scheduling (scheduler.rs) - Constant, StepDecay, Exponential schedulers - CosineAnnealing with warm restarts - WarmupLinear for pre-training warmup - ReduceOnPlateau for adaptive learning ## Deployment Infrastructure ### GitHub Actions Release Pipeline (.github/workflows/release.yml) - 8-stage CI/CD pipeline for complete releases - Validates, builds crates, WASM, and native modules - Publishes to crates.io and npmjs.com - Creates GitHub releases with artifacts ### Deployment Script (scripts/deploy.sh) - Comprehensive deployment orchestration - Version synchronization across Cargo.toml and package.json - Dry-run mode for testing - Cross-platform native builds support ## Test Coverage - 177 tests passing in ruvector-gnn - Comprehensive tests for all new modules - Convergence tests for optimizers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
108 lines
2.4 KiB
Markdown
108 lines
2.4 KiB
Markdown
# 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:**
|
|
```bash
|
|
# 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](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
|
|
|
|
1. **Install git hooks** (recommended):
|
|
```bash
|
|
./scripts/install-hooks.sh
|
|
```
|
|
|
|
2. **Test the hook**:
|
|
```bash
|
|
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
|
|
|
|
1. **Test deployment script**:
|
|
```bash
|
|
./scripts/test-deploy.sh
|
|
```
|
|
|
|
2. **Set credentials** (required):
|
|
```bash
|
|
export CRATES_API_KEY="your-crates-io-token"
|
|
export NPM_TOKEN="your-npm-token"
|
|
```
|
|
|
|
3. **Run dry run** (recommended first):
|
|
```bash
|
|
./scripts/deploy.sh --dry-run
|
|
```
|
|
|
|
4. **Deploy**:
|
|
```bash
|
|
./scripts/deploy.sh
|
|
```
|
|
|
|
## 📖 Documentation
|
|
|
|
- **[DEPLOYMENT.md](DEPLOYMENT.md)** - Comprehensive deployment guide
|
|
- **[../docs/CONTRIBUTING.md](../docs/CONTRIBUTING.md)** - Development guide
|
|
|
|
## 🔐 Security
|
|
|
|
**Never commit credentials!** Always use environment variables or secure credential storage.
|
|
|
|
See [DEPLOYMENT.md#security-best-practices](DEPLOYMENT.md#security-best-practices) for details.
|