HoloScript Deployment Guide
Complete multi-channel deployment strategy for HoloScript v3.0+
This guide documents the 15-channel deployment architecture based on the comprehensive uAA2++ research protocol findings.
📊 Overview
HoloScript uses a 5-tier, 15-channel hybrid distribution model:
| Tier | Channels | Status | Users Reached |
|---|---|---|---|
| Developer Tier | npm, crates.io, GitHub | ✅ Active | ~100K developers |
| IDE Tier | VSCode, Neovim, IntelliJ | ✅ Active | ~50K users |
| Game Engine Tier | Unity, Unreal, Godot, VRChat | 🚧 In Progress | ~500K potential |
| End-User Tier | Homebrew, Chocolatey, Standalone | 🚧 In Progress | ~1M potential |
| Cloud Tier | Railway API, Docker, CDN | 🚧 Planned | Unlimited |
Current Version: See root package metadata Deployment Status: Production-ready for Tier 1-2, Testing for Tier 3-5
🏗️ Architecture
Cargo Workspace (Rust)
# Cargo.toml (root)
[workspace]
members = [
"packages/compiler-wasm",
"packages/holoscript-component",
]
[workspace.package]
version = "3.0.0" # Single source of truthBenefits:
- ✅ Unified version management
- ✅ Shared dependencies
- ✅ Faster incremental builds
- ✅ Consistent optimization profiles
pnpm Workspace (Node.js)
// pnpm-workspace.yaml
packages:
- 'packages/*'
- 'services/*'Scoped Packages:
@holoscript/core- Core compiler (TypeScript)@holoscript/lsp- Language Server Protocol@holoscript/cli- Command-line interface@holoscript/compiler- Multi-target compiler package@holoscript/wasm- WASM compiler/runtime bindings
🚀 Deployment Channels
1. npm Registry (Developer Tier)
Packages Published:
@holoscript/core@3.0.0@holoscript/lsp@3.0.0@holoscript/cli@3.0.0
Publish Command:
pnpm -r publish --access publicCI/CD: .github/workflows/publish.yml - Auto-publishes on git tag v*
2. crates.io (Developer Tier)
Crates Published:
holoscript-wasm@3.0.0holoscript-component@3.0.0
Publish Command:
cargo publish --token $CARGO_TOKENCI/CD: .github/workflows/release-multi-platform.yml - Publishes BEFORE npm (critical!)
Research Finding: Always publish Cargo first, then npm (Pattern G.003.01)
3. VSCode Marketplace (IDE Tier)
Extension: holoscript-vscode@3.0.0
Platform-Specific VSIXs (Pattern P.002.01):
holoscript-win32-x64.vsix(Windows x64)holoscript-darwin-x64.vsix(macOS Intel)holoscript-darwin-arm64.vsix(macOS Apple Silicon)holoscript-linux-x64.vsix(Linux x64)
Build Script:
cd packages/vscode-extension
node scripts/package-vsix.jsPublish Command:
vsce publish --packagePath holoscript-*.vsixNative LSP Binaries: Each VSIX includes platform-specific Rust LSP binary for 10-50x performance vs Node.js
4. Homebrew (End-User Tier)
Formula: packaging/homebrew/holoscript.rb
Installation:
brew install holoscriptFeatures:
- Universal binary support (x86_64 + arm64)
- Automatic PATH configuration
- LSP server as service
- Shell completions
Submit to Homebrew:
# 1. Fork homebrew/homebrew-core
# 2. Add packaging/homebrew/holoscript.rb
# 3. Submit PR: https://github.com/Homebrew/homebrew-coreResearch Finding: Homebrew M1 support requires arm64 builds (Pattern G.007.01)
5. Chocolatey (End-User Tier)
Package: packaging/chocolatey/holoscript.nuspec
Installation:
choco install holoscriptScripts:
chocolateyinstall.ps1- Installation scriptchocolateyuninstall.ps1- Cleanup script
Submit to Chocolatey:
- Create account: Chocolatey account registration
- Upload package: Chocolatey package upload
- Automated publishing via GitHub Actions (future)
6. Unity Asset Store (Game Engine Tier)
Package: com.holoscript.core@3.0.0
Location: packages/unity-sdk/
Features:
- Automatic
.hsfile import - Editor menu integration
- Assembly definitions (prevents namespace conflicts - Pattern G.010.01)
- XR Interaction Toolkit support
- Sample scenes
Unity Versions Supported:
- Unity 6 (latest)
- Unity 2022 LTS
- Unity 2021 LTS (legacy support)
Submission Process:
Build
.unitypackage:bashUnity -batchmode -exportPackage packages/unity-sdk holoscript-unity-3.0.0.unitypackageSubmit to Asset Store: Unity Asset Store Publisher Portal
Manual review: 4-6 weeks (Pattern G.005.01)
Research Finding: Unity 2021 ≠ 2022 ≠ 6 package formats - maintain separate versions (Compounded Insight 3)
7. GitHub Releases (Universal)
Artifacts per Release:
- Source code (
.tar.gz,.zip) - Windows binaries (
holoscript-win32-x64.zip) - macOS binaries (
holoscript-darwin-x64.tar.gz,holoscript-darwin-arm64.tar.gz) - Linux binaries (
holoscript-linux-x64.tar.gz) - VSCode VSIXs (all platforms)
- Unity Package (
.unitypackage)
Auto-Created: .github/workflows/release-multi-platform.yml
8. Docker Hub (Cloud Tier)
Image: holoscript/compiler:3.0.0
Planned:
FROM rust:1.70 as builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM node:20-slim
COPY --from=builder /app/target/release/holoscript /usr/local/bin/
RUN npm install -g @holoscript/cli
ENTRYPOINT ["holoscript"]🔄 Version Synchronization
Single Source of Truth: package.json version field
Automated Sync Script: scripts/sync-versions.js
Synchronized Files:
- ✅ Root
package.json - ✅ All workspace
packages/*/package.json - ✅ Cargo workspace
Cargo.toml - ✅ Unity
packages/unity-sdk/package.json - ✅ Homebrew
packaging/homebrew/holoscript.rb - ✅ Chocolatey
packaging/chocolatey/holoscript.nuspec
Usage:
# Bump version atomically across ALL files
pnpm run version:patch # 3.0.0 → 3.0.1
pnpm run version:minor # 3.0.0 → 3.1.0
pnpm run version:major # 3.0.0 → 4.0.0
# Creates git commit + tag automaticallyResearch Finding: Version sync prevents drift between npm/cargo/marketplace (Pattern P.005.01)
🤖 CI/CD Pipeline
GitHub Actions Workflows
1. ci.yml - Continuous Integration
- Runs on: Every push, PR
- Matrix: Node 20.x, Rust stable, wasm-pack
- Steps: Lint → Test → Build
2. publish.yml - npm Publishing
- Trigger: Git tag
v* - Publishes:
@holoscript/*packages to npmjs.org - Requires:
NPM_TOKENsecret
3. release-multi-platform.yml - Multi-Channel Release (NEW)
- Trigger: Git tag
v* - Matrix builds for:
- Windows (x64)
- macOS (x64, arm64)
- Linux (x64)
- Publishes to:
- crates.io (Cargo)
- npmjs.org (npm)
- VSCode Marketplace (VSIX)
- GitHub Releases (binaries)
Publish Order (Critical - Pattern G.003.01):
1. Cargo → crates.io (FIRST - slowest indexing)
2. Wait 30 seconds for crates.io indexing
3. npm → npmjs.org
4. VSCode → marketplace
5. GitHub → releases🛠️ Development Workflow
1. Local Development
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Start development mode
pnpm dev2. Rust Development
# Build WASM packages
cd packages/compiler-wasm
wasm-pack build --target bundler
# Run Rust tests
cargo test --workspace
# Format Rust code
cargo fmt --all3. VSCode Extension Development
cd packages/vscode-extension
# Build extension
pnpm build
# Debug extension
# Press F5 in VSCode (opens Extension Development Host)📦 Release Process
Standard Release
# 1. Bump version (auto-syncs all files)
pnpm run version:minor
# 2. Review changes
git diff
# 3. Push to GitHub (triggers CI/CD)
git push && git push --tags
# 4. Monitor CI/CD
# https://github.com/brianonbased-dev/HoloScript/actions
# 5. Verify published packages
npm view @holoscript/core
cargo search holoscript-wasmManual Emergency Hotfix
# 1. Fix the bug
# 2. Bump patch version
pnpm run version:patch
# 3. Publish immediately (bypass CI for emergency)
cd packages/core && pnpm publish --access public
cd packages/compiler-wasm && cargo publish
# 4. Push to GitHub
git push && git push --tags🔒 Security
Code Signing (Planned)
macOS:
- Certificate: Apple Developer ID Application ($99/year)
- Notarization:
xcrun notarytool submit - Gatekeeper compliance
Windows:
- Certificate: Authenticode (~$300/year)
- SignTool:
signtool sign /f cert.pfx - SmartScreen compliance
Linux:
- GPG signing for
.deb/.rpmpackages - Free via
gpg --sign
Supply Chain Security
- ✅ Dependabot alerts enabled
- ✅ SBOM generation via
cargo-sbom(planned) - ✅ Reproducible builds with
--locked --frozen - ✅ Secrets scanning in CI
📈 Deployment Metrics
Current Status (Feb 2026)
| Metric | Value | Goal |
|---|---|---|
| npm downloads/week | TODO | 10K |
| VSCode installs | TODO | 50K |
| Unity Asset Store downloads | N/A | 100K |
| Homebrew installs/month | N/A | 5K |
| GitHub Stars | TODO | 10K |
| Discord Members | TODO | 1K |
🐛 Troubleshooting
"Cargo version mismatch with npm"
Cause: Manual version edits without sync script
Fix:
pnpm run version:patch # Re-sync all versions"VSIX too large (>200MB)"
Cause: Bundling all platform binaries in single VSIX (Pattern G.002.01)
Fix:
# Use platform-specific VSIXs instead
node packages/vscode-extension/scripts/package-vsix.js"Unity package namespace conflict"
Cause: Missing assembly definitions (Pattern G.010.01)
Fix: Ensure HoloScript.Runtime.asmdef and HoloScript.Editor.asmdef exist
"wasm-pack CI build slow"
Cause: cargo install wasm-pack rebuilds every time
Fix: Use cached pre-built wasm-pack action:
- uses: jetli/wasm-pack-action@v0.4.0🔮 Future Roadmap
Phase 3: Game Engine SDKs (Q2 2026)
- [ ] Unity 6 Package (Asset Store)
- [ ] Unreal Engine 5 Plugin (Marketplace)
- [ ] Godot 4 GDNative Module (AssetLib)
- [ ] VRChat SDK Integration
Phase 4: Mass Distribution (Q3 2026)
- [ ] Homebrew formula (homebrew-core)
- [ ] Chocolatey package (community repo)
- [ ] Standalone installers (.exe, .dmg, .deb, .rpm)
- [ ] Code signing (macOS, Windows, Linux)
Phase 5: Cloud Services (Q4 2026)
- [ ] Railway deployment (compile-as-a-service API)
- [ ] CDN distribution (
cdn.holoscript.net) - [ ] Web playground (
play.holoscript.net) - [ ] Docker Hub images
Future Enhancements
- [ ] Plugin marketplace (
plugins.holoscript.net) - [ ] Beta/nightly channels (npm dist-tags, cargo features)
- [ ] Telemetry system (opt-in, GDPR-compliant)
- [ ] MCP server deployment (compile via MCP tools)
📚 Research References
This deployment architecture is based on the 8-phase uAA2++ research protocol findings:
- P.001.01: Dual Distribution Bridge (wasm-pack → npm)
- P.002.01: Platform-Specific VSIX Bundling
- P.003.01: GitHub Actions Build Matrix
- P.005.01: Version Single Source of Truth
- P.006.01: Three-Tier Distribution (npm/cargo → brew/choco → standalone)
- G.003.01: Cargo Publish First, Then npm
- G.007.01: Homebrew M1 Support Requires arm64
- G.010.01: Unity Assembly Definitions Prevent Namespace Conflicts
Full Research: See uAA2++ Protocol Phase 0-7 output in AI_Workspace/uAA2++_Protocol/6.EVOLVE/research/
🤝 Contributing
See CONTRIBUTING.md for deployment contribution guidelines.
Deployment Team:
- @brianonbased-dev - Lead
- Community contributors welcome!
📧 Support
- Deployment Issues: GitHub Issues
- Discord: HoloScript Discord
- Email: deploy@holoscript.net
Last Updated: 2026-02-12 Version: See root package metadata Status: Production (Tier 1-2), Beta (Tier 3-5)