Skip to content

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:

[project]
dependencies = [
    "provide-foundation[all]>=0.0.0.dev0",
    "pip>=25.2",
    "uv>=0.8.13",
]

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=0 for 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

cd flavorpack
git pull
uv sync
make build-helpers

Update UV

curl -LsSf https://astral.sh/uv/install.sh | sh

Update Go

Download from go.dev/dl or use your package manager:

brew upgrade go  # macOS

Update Rust

rustup update

See Also


Questions? Check the FAQ or join our community discussions.