This document outlines the distribution strategy for JetCrab (JavaScript runtime) and CPM (package manager) across Linux, Windows, and macOS platforms. Both tools are distributed together as a unified package.
- Target: All platforms
- Format: Pre-compiled binaries
- Advantages: Easy installation, no compilation required
- Implementation: GitHub Actions CI/CD
jetcrab-{version}-{platform}-{arch}.{ext}
jetcrab-0.4.0-linux-x86_64.tar.gz
jetcrab-0.4.0-windows-x86_64.zip
jetcrab-0.4.0-macos-x86_64.tar.gz
jetcrab-0.4.0-macos-aarch64.tar.gz # Apple Silicon
cpm-{version}-{platform}-{arch}.{ext}
cpm-0.4.0-linux-x86_64.tar.gz
cpm-0.4.0-windows-x86_64.zip
cpm-0.4.0-macos-x86_64.tar.gz
cpm-0.4.0-macos-aarch64.tar.gz # Apple Silicon
- Snap: Universal Linux packages
- AppImage: Portable Linux applications
- RPM: Red Hat/CentOS/Fedora
- DEB: Ubuntu/Debian
- AUR: Arch Linux (community maintained)
- Chocolatey: Windows package manager
- Scoop: Command-line installer
- Winget: Microsoft's package manager
- MSI: Windows Installer packages
- Homebrew: Most popular macOS package manager
- MacPorts: Alternative package manager
- DMG: Disk image for manual installation
- Docker: Multi-platform containers
- OCI: Open Container Initiative standard
- Platforms: Linux, Windows (WSL2), macOS
-
GitHub Actions Workflow
- Cross-platform compilation
- Automated binary generation
- Release automation
-
Binary Optimization
- Static linking for Linux
- UPX compression
- Code signing for Windows/macOS
-
Homebrew (macOS)
- Create formula
- Submit to homebrew-core
- Maintain updates
-
Chocolatey (Windows)
- Create nuspec package
- Submit to chocolatey.org
- Maintain updates
-
Snap (Linux)
- Create snapcraft.yaml
- Submit to snap store
- Maintain updates
-
AppImage (Linux)
- Portable, no installation required
- Universal Linux compatibility
-
MSI Installer (Windows)
- Professional Windows installation
- Registry integration
- Uninstall support
-
DMG (macOS)
- Native macOS installation experience
- Code signing
- Notarization
- Rust: Latest stable version
- Cross-compilation: Target multiple architectures
- Code Signing: Windows/macOS certificates
- Notarization: macOS security requirements
- GitHub Actions: Primary CI/CD
- Matrix Builds: Multiple OS/architecture combinations
- Automated Testing: Cross-platform validation
- Release Automation: Tag-based releases
- Code Signing: Windows/macOS binaries
- Checksums: SHA-256 verification
- GPG Signing: Release integrity
- Virus Scanning: Windows Defender compatibility
jetcrab/
├── .github/
│ └── workflows/
│ ├── release.yml
│ ├── build-linux.yml
│ ├── build-windows.yml
│ └── build-macos.yml
├── packaging/
│ ├── snapcraft.yaml
│ ├── jetcrab.spec # RPM spec
│ ├── jetcrab.dsc # DEB control
│ ├── jetcrab.nuspec # Chocolatey
│ ├── jetcrab.rb # Homebrew formula
│ └── installers/
│ ├── windows/
│ │ ├── jetcrab.wxs # WiX installer
│ │ └── jetcrab.iss # Inno Setup
│ └── macos/
│ └── jetcrab.pkgproj
├── scripts/
│ ├── build-release.sh
│ ├── package-linux.sh
│ ├── package-windows.sh
│ └── package-macos.sh
└── docs/
├── INSTALL.md
├── BUILD.md
└── DISTRIBUTION.md
- Semantic Versioning: MAJOR.MINOR.PATCH
- Git Tags: Release markers
- Changelog: Automated generation
-
Source Preparation
- Update version numbers
- Generate changelog
- Tag release
-
Cross-Compilation
- Linux: x86_64, aarch64, armv7
- Windows: x86_64, i686
- macOS: x86_64, aarch64
-
Packaging
- Binary compression
- Checksum generation
- Code signing
-
Distribution
- GitHub release upload
- Package manager submission
- Documentation update
- Automated Testing: Cross-platform validation
- Manual Testing: Platform-specific verification
- Performance Testing: Binary optimization
- Security Scanning: Vulnerability assessment
- GLIBC Compatibility: Target older distributions
- Static Linking: Reduce dependency issues
- AppImage: Universal compatibility
- Snap: Sandboxed execution
- Visual C++ Redistributable: Include or document
- Windows Defender: Ensure compatibility
- Registry Integration: Optional features
- UAC: User Account Control handling
- Code Signing: Developer ID required
- Notarization: Apple security requirements
- Gatekeeper: macOS security system
- Universal Binaries: Intel + Apple Silicon
- GitHub Releases: Built-in analytics
- Package Managers: Download statistics
- Website: Custom analytics
- GitHub Issues: Bug reports
- Discussions: Feature requests
- Community: Discord/Slack channels
- Patch Releases: Bug fixes (weekly)
- Minor Releases: New features (monthly)
- Major Releases: Breaking changes (quarterly)
- Current Version: Full support
- Previous Version: Security updates only
- Legacy Versions: Community support
- Installation Guides: Platform-specific
- Troubleshooting: Common issues
- Migration Guides: Version upgrades
- Downloads: 10K+ per month
- Platform Coverage: 95%+ compatibility
- Installation Success: 99%+ success rate
- User Satisfaction: 4.5+ stars
- Build Time: <30 minutes
- Binary Size: <50MB compressed
- Startup Time: <2 seconds
- Memory Usage: <100MB baseline
-
Immediate (Week 1)
- Set up GitHub Actions
- Create basic release workflow
- Generate first binary release
-
Short-term (Month 1)
- Submit to Homebrew
- Submit to Chocolatey
- Create Snap package
-
Medium-term (Quarter 1)
- AppImage support
- MSI installer
- DMG package
-
Long-term (Year 1)
- Advanced packaging
- Enterprise distribution
- Cloud marketplace integration