Skip to content

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:

TierChannelsStatusUsers Reached
Developer Tiernpm, crates.io, GitHub✅ Active~100K developers
IDE TierVSCode, Neovim, IntelliJ✅ Active~50K users
Game Engine TierUnity, Unreal, Godot, VRChat🚧 In Progress~500K potential
End-User TierHomebrew, Chocolatey, Standalone🚧 In Progress~1M potential
Cloud TierRailway API, Docker, CDN🚧 PlannedUnlimited

Current Version: See root package metadata Deployment Status: Production-ready for Tier 1-2, Testing for Tier 3-5


🏗️ Architecture

Cargo Workspace (Rust)

toml
# Cargo.toml (root)
[workspace]
members = [
    "packages/compiler-wasm",
    "packages/holoscript-component",
]

[workspace.package]
version = "3.0.0"  # Single source of truth

Benefits:

  • ✅ Unified version management
  • ✅ Shared dependencies
  • ✅ Faster incremental builds
  • ✅ Consistent optimization profiles

pnpm Workspace (Node.js)

json
// 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:

bash
pnpm -r publish --access public

CI/CD: .github/workflows/publish.yml - Auto-publishes on git tag v*


2. crates.io (Developer Tier)

Crates Published:

  • holoscript-wasm@3.0.0
  • holoscript-component@3.0.0

Publish Command:

bash
cargo publish --token $CARGO_TOKEN

CI/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:

bash
cd packages/vscode-extension
node scripts/package-vsix.js

Publish Command:

bash
vsce publish --packagePath holoscript-*.vsix

Native 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:

bash
brew install holoscript

Features:

  • Universal binary support (x86_64 + arm64)
  • Automatic PATH configuration
  • LSP server as service
  • Shell completions

Submit to Homebrew:

bash
# 1. Fork homebrew/homebrew-core
# 2. Add packaging/homebrew/holoscript.rb
# 3. Submit PR: https://github.com/Homebrew/homebrew-core

Research Finding: Homebrew M1 support requires arm64 builds (Pattern G.007.01)


5. Chocolatey (End-User Tier)

Package: packaging/chocolatey/holoscript.nuspec

Installation:

powershell
choco install holoscript

Scripts:

  • chocolateyinstall.ps1 - Installation script
  • chocolateyuninstall.ps1 - Cleanup script

Submit to Chocolatey:

  1. Create account: Chocolatey account registration
  2. Upload package: Chocolatey package upload
  3. 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 .hs file 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:

  1. Build .unitypackage:

    bash
    Unity -batchmode -exportPackage packages/unity-sdk holoscript-unity-3.0.0.unitypackage
  2. Submit to Asset Store: Unity Asset Store Publisher Portal

  3. 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:

dockerfile
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:

bash
# 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 automatically

Research 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_TOKEN secret

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):

text
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

bash
# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Start development mode
pnpm dev

2. Rust Development

bash
# Build WASM packages
cd packages/compiler-wasm
wasm-pack build --target bundler

# Run Rust tests
cargo test --workspace

# Format Rust code
cargo fmt --all

3. VSCode Extension Development

bash
cd packages/vscode-extension

# Build extension
pnpm build

# Debug extension
# Press F5 in VSCode (opens Extension Development Host)

📦 Release Process

Standard Release

bash
# 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-wasm

Manual Emergency Hotfix

bash
# 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/.rpm packages
  • 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)

MetricValueGoal
npm downloads/weekTODO10K
VSCode installsTODO50K
Unity Asset Store downloadsN/A100K
Homebrew installs/monthN/A5K
GitHub StarsTODO10K
Discord MembersTODO1K

🐛 Troubleshooting

"Cargo version mismatch with npm"

Cause: Manual version edits without sync script

Fix:

bash
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:

bash
# 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:

yaml
- 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


Last Updated: 2026-02-12 Version: See root package metadata Status: Production (Tier 1-2), Beta (Tier 3-5)

Released under the MIT License.