This directory contains automation scripts to streamline development, deployment, and prevent common issues.
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 --helpSee: DEPLOYMENT.md for complete documentation
Tests the deployment script without publishing.
Usage: ./scripts/test-deploy.sh
Automatically syncs package-lock.json with package.json changes.
Usage: ./scripts/sync-lockfile.sh
Installs git hooks for automatic lock file management.
Usage: ./scripts/install-hooks.sh
CI/CD script for automatic lock file fixing.
Usage: ./scripts/ci-sync-lockfile.sh
Legacy script for publishing individual crates. Use deploy.sh instead.
Validates package configurations and dependencies.
-
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
-
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
- DEPLOYMENT.md - Comprehensive deployment guide
- ../docs/CONTRIBUTING.md - Development guide
Never commit credentials! Always use environment variables or secure credential storage.
See DEPLOYMENT.md#security-best-practices for details.
