System Requirements¶
This page is the single source of truth for all FlavorPack version requirements and system dependencies.
๐ค AI-Generated Content
This documentation was generated with AI assistance and is still being audited. Some, or potentially a lot, of this information may be inaccurate. Learn more.
Runtime Requirements (End Users)¶
PSPF packages created with FlavorPack have ZERO runtime dependencies!
When you distribute a .psp package, end users need:
- โ Nothing - Packages are completely self-contained
- โ No Python installation required
- โ No dependencies to install
- โ Just execute and run
Supported Platforms¶
| Platform | Architecture | Status |
|---|---|---|
| Linux | x86_64 (amd64) | โ Fully supported |
| Linux | ARM64 (aarch64) | โ Fully supported |
| macOS | ARM64 (Apple Silicon) | โ Fully supported |
| macOS | x86_64 (Intel) | โ Fully supported |
| Windows | x86_64 | ๐ง Experimental |
Linux Compatibility: - CentOS 7+ (static binaries) - Ubuntu 18.04+ (static binaries) - Alpine Linux 3.x+ (static binaries) - Amazon Linux 2023 (static binaries) - Any modern Linux distribution (glibc or musl)
macOS Compatibility: - macOS 10.15 (Catalina) and newer - Both Intel and Apple Silicon Macs
Development Requirements¶
Core Tools (Required)¶
These are required for FlavorPack development and package building:
| Tool | Version | Verification | Notes |
|---|---|---|---|
| Python | 3.11+ | python --version |
Python 3.11, 3.12, 3.13, or 3.14 |
| UV | Latest stable | uv --version |
Fast Python package manager |
| Git | Any recent | git --version |
Version control |
Installation:
# Install UV (required)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Verify Python version
python --version # Should be 3.11+
# Verify Git
git --version
Native Compilers (For Building Helpers)¶
Only required if you're building or modifying Go/Rust helper binaries:
| Tool | Version | Source File | Verification |
|---|---|---|---|
| Go | 1.23.0+ | src/flavor-go/go.mod |
go version |
| Rust | 1.85+ | src/flavor-rs/Cargo.toml |
rustc --version |
Installation:
# Install Go 1.23+
# Download from: https://go.dev/dl/
# Or use your package manager:
brew install [email protected] # macOS
sudo apt install golang-go # Ubuntu (check version!)
# Install Rust 1.85+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
# Verify versions
go version # Should be 1.23.0 or higher
rustc --version # Should be 1.85.0 or higher
Pre-built Helpers
You don't need Go or Rust if you're using pre-built helper binaries from releases. The compilers are only needed when:
- Building from source for the first time
- Modifying Go/Rust helper code
- Building for a non-standard platform
Optional Tools¶
These tools enhance the development experience but are not required:
| Tool | Purpose | Installation |
|---|---|---|
| Make | Build automation | brew install make (macOS) or pre-installed (Linux) |
| Docker | Container testing | docker.com |
| MkDocs | Documentation preview | uv pip install mkdocs-material |
Dependency Details¶
Python Dependencies¶
FlavorPack's Python dependencies are declared in pyproject.toml:
These are automatically installed when you run uv sync.
Key Dependencies: - provide-foundation: Core utilities, logging, and crypto functions - pip: Python package installer (embedded in packages) - uv: Fast package manager for dependency resolution
Development Dependencies¶
Additional tools for development (installed with uv sync):
[dependency-groups]
dev = [
"provide-testkit[all]", # Testing utilities
"mutmut>=3.0.0", # Mutation testing
]
docs = [
"provide-testkit[docs]", # Documentation tools
"mkdocs-mermaid2-plugin>=1.1.0", # Diagram support
]
Environment Variables¶
Build-Time Variables¶
| Variable | Purpose | Default |
|---|---|---|
FOUNDATION_LOG_LEVEL |
Python logging level | info |
FLAVOR_LOG_LEVEL |
Go/Rust logging level | warn |
SOURCE_DATE_EPOCH |
Deterministic builds | Current time |
Runtime Variables (Package Execution)¶
Set these when running .psp packages for debugging:
| Variable | Purpose | Values |
|---|---|---|
FOUNDATION_LOG_LEVEL |
Control package logging | trace, debug, info, warning, error |
FLAVOR_WORKENV_DIR |
Custom cache location | Path to directory |
Platform-Specific Notes¶
Linux (Static Binaries)¶
All Linux binaries are built as static executables:
- Go: Built with
CGO_ENABLED=0for static linking - Rust: Built with musl libc for static linking
- Result: Binaries work on any Linux distribution without glibc dependencies
macOS (Universal Binaries)¶
macOS binaries are built separately for Intel and Apple Silicon:
*-darwin_amd64- Intel Macs*-darwin_arm64- Apple Silicon Macs
Windows (Experimental)¶
Windows support is experimental and not yet production-ready.
Verification¶
To verify your development environment is correctly set up:
# 1. Check Python version
python --version
# Expected: Python 3.11.x or higher
# 2. Check UV installation
uv --version
# Expected: uv x.x.x
# 3. Check Go (if building helpers)
go version
# Expected: go1.23.0 or higher
# 4. Check Rust (if building helpers)
rustc --version
# Expected: rustc 1.85.0 or higher
# 5. Verify FlavorPack installation
uv run flavor --version
# Expected: flavorpack x.x.x
# 6. List available helpers
uv run flavor helpers list
# Expected: List of go/rust builders and launchers
Upgrading¶
Update FlavorPack¶
Update UV¶
Update Go¶
Download from go.dev/dl or use your package manager:
Update Rust¶
See Also¶
- Contributing Guide - Development setup walkthrough
- Installation Guide - User installation
- Platform Support - Platform compatibility details
- Troubleshooting - Common issues and solutions
Questions? Check the FAQ or join our community discussions.