mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-23 12:55:26 +00:00
Package 1: @ruvector/psycho-symbolic-integration - Add npm publishing metadata (repository, bugs, homepage, publishConfig) - Include LICENSE file - Create .npmignore for clean package distribution - Configure files array for selective publishing - Package size: 9.3 KB tarball, 32.7 KB unpacked (6 files) Package 2: @ruvector/psycho-synth-examples - Add npm publishing metadata with bin entries - Include LICENSE file - Create .npmignore for clean package distribution - Configure files array (dist, bin, examples, src, README, LICENSE) - Package size: 26.9 KB tarball, 112.7 KB unpacked (11 files) - CLI binaries: psycho-synth-examples, pse (short alias) Validation & Documentation: - Create comprehensive PUBLISHING-GUIDE.md with step-by-step instructions - Create detailed PACKAGE-VALIDATION-REPORT.md with all validation results - Add validation scripts (validate-packages.sh, validate-packages-simple.sh) - Verify npm pack --dry-run for both packages - Test CLI functionality (list command working) Publishing Status: ✅ All metadata complete ✅ Documentation comprehensive ✅ LICENSE files included ✅ .npmignore configured ✅ npm pack validation passed ✅ CLI tested and working ✅ READY FOR PUBLISHING Next Steps: 1. npm login 2. npm publish --access public (both packages) 3. Verify with npm view and npx commands |
||
|---|---|---|
| .. | ||
| check-and-publish-router-wasm.sh | ||
| publish-crates.sh | ||
| publish-router-wasm.sh | ||
| README.md | ||
| validate-packages-simple.sh | ||
| validate-packages.sh | ||
Ruvector Scripts
Automation scripts for development, publishing, and maintenance.
Publishing Scripts
publish-crates.sh
Automated script to publish all Ruvector crates to crates.io in the correct dependency order.
Prerequisites:
- Rust and Cargo installed
CRATES_API_KEYin.envfile (never hardcoded!)- All crates build successfully
- All tests pass
Usage:
# Make executable
chmod +x scripts/publish-crates.sh
# Run publishing
./scripts/publish-crates.sh
What it does:
- Loads
CRATES_API_KEYfrom.env(secure, not hardcoded) - Authenticates with crates.io
- Publishes crates in dependency order:
- Phase 1:
ruvector-core,router-core(base crates) - Phase 2:
ruvector-node,ruvector-wasm,ruvector-cli,ruvector-bench - Phase 3:
router-cli,router-ffi,router-wasm
- Phase 1:
- Waits between publishes for crates.io indexing
- Reports success/failure summary
Safety Features:
- ✅ Reads credentials from
.env(gitignored) - ✅ Never hardcodes API keys
- ✅ Verifies packages before publishing
- ✅ Skips already published versions
- ✅ Provides detailed error messages
- ✅ Waits for crates.io indexing
Security
⚠️ Important: This directory may contain scripts that use sensitive credentials.
Always:
- Store credentials in
.env(gitignored) - Use
.env.examplefor templates - Never hardcode API keys in scripts
- Review scripts before execution
See SECURITY.md for security best practices.
Development Scripts
More scripts will be added here as the project grows
Potential additions:
test-all.sh- Run all tests across cratesbench-all.sh- Run all benchmarkscheck-format.sh- Verify code formattingupdate-docs.sh- Update documentation
Contributing
When adding new scripts:
- Document thoroughly - Add comments and usage examples
- Use .env for secrets - Never hardcode credentials
- Make executable -
chmod +x scripts/your-script.sh - Add to this README - Document purpose and usage
- Test thoroughly - Verify on clean checkout
- Error handling - Exit on errors (
set -e) - Colored output - Use colors for clarity