Skip to content

FlavorPack Roadmap

This roadmap shows the current implementation status and exploratory items for FlavorPack. Use this to understand what works today versus what's under consideration. Roadmap items are non-binding and may change or be removed.

๐Ÿค– 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.

Legend

  • โœ… Implemented - Works today, documented and tested
  • ๐Ÿšง In Progress - Partially implemented or under active development
  • ๐Ÿ“‹ Exploratory - Designed but under evaluation
  • ๐Ÿ’ก Proposed - Under consideration; may change or be removed

What Works Today

Core Functionality โœ…

Package Creation:

  • โœ… Build PSPF/2025 packages from Python applications
  • โœ… Embed native Go/Rust launchers
  • โœ… Multiple builder/launcher combinations (Go + Rust)
  • โœ… Cross-platform package building

Package Execution:

  • โœ… Self-extracting executables
  • โœ… Work environment caching with checksum validation
  • โœ… Progressive extraction (extract once, cache forever)
  • โœ… Ed25519 signature verification

CLI Commands:

  • โœ… flavor pack - Create packages
  • โœ… flavor verify - Verify integrity and signatures
  • โœ… flavor inspect - Quick package inspection
  • โœ… flavor extract - Extract single slot
  • โœ… flavor extract-all - Extract all slots
  • โœ… flavor keygen - Generate Ed25519 key pairs
  • โœ… flavor workenv - Cache management (list, info, clean, remove, inspect)
  • โœ… flavor helpers - Helper binary management (list, info, build, clean, test)
  • โœ… flavor clean - Clean caches and artifacts

Manifest Configuration โœ…

Currently Supported Fields:

[project]
name = "myapp"                    # โœ… Required
version = "1.0.0"                 # โœ… Required
dependencies = [...]              # โœ… Parsed and included

[tool.flavor]
entry_point = "myapp:main"        # โœ… Required (module:function format)
package_name = "custom-name"      # โœ… Optional override

[tool.flavor.metadata]
package_name = "override"         # โœ… Optional

[tool.flavor.build]
dependencies = [...]              # โœ… Build-time dependencies

[tool.flavor.execution.runtime.env]
unset = ["VAR1", "VAR2"]         # โœ… Remove variables
pass = ["HOME", "PATH"]          # โœ… Pass through from host
set = { KEY = "value" }          # โœ… Set variables
map = { OLD = "NEW" }            # โœ… Rename variables

Platform Support โœ…

Python Packaging โœ…

  • โœ… Standard pyproject.toml manifest parsing
  • โœ… Dependency resolution via UV
  • โœ… Entry point detection and configuration
  • โœ… CLI script extraction from [project.scripts]

Security & Integrity โœ…

  • โœ… Ed25519 signature generation and verification
  • โœ… SHA-256 checksums for all slots
  • โœ… Package integrity validation
  • โœ… Key generation via flavor keygen
  • โœ… Signing via CLI options (--private-key, --public-key)

Format Specification โœ…

  • โœ… PSPF/2025 format implemented
  • โœ… 64-byte SlotDescriptor binary format
  • โœ… 8KB index block with metadata
  • โœ… Operation chains (packed uint64 format)
  • โœ… Magic markers for format identification
  • โœ… Cross-language format compatibility (Python/Go/Rust)

Exploratory Features

The following features are documented in guides but are under evaluation. They represent potential evolution of FlavorPack.

Manifest Configuration Features ๐Ÿ“‹

Build Host Redaction

Allow opting out of emitting build.platform.host in metadata for privacy or reproducible builds.

Status: ๐Ÿ“‹ Exploratory Priority: High Complexity: Low

Slot Configuration

[[tool.flavor.slots]]
id = "config"
source = "config/"
purpose = "configuration"
lifecycle = "persistent"
extract_to = "{workenv}/config"
permissions = "0644"

Status: ๐Ÿ“‹ Exploratory Use Case: Enable custom slot purposes, lifecycles, platform-specific slots, and lazy-loaded content

Python Version Selection

[tool.flavor.python]
version = "3.11"  # Exact version to use
min_version = "3.11"  # Minimum acceptable
max_version = "3.13"  # Maximum acceptable

Status: ๐Ÿ”ถ Exploratory Priority: Medium Complexity: Medium

Build Environment Configuration

[tool.flavor.build]
# Custom venv location
venv_path = ".flavor-venv"

# Use system site packages
system_site_packages = false

# Environment variables for build
env = {
    "NUMPY_SETUP_DEBUG": "1",
    "UV_NO_CACHE": "1"
}

# Pre-install commands
pre_install_commands = [
    "uv sync --upgrade",
    "uv add numpy==1.24.0"
]

# Pre-build validation
pre_build_commands = [
    "pytest tests/ -v",
    "mypy src/ --strict"
]

Status: ๐Ÿ”ถ Exploratory Priority: High Complexity: Medium

Dependency Resolution Options

[tool.flavor.build]
# Custom index URL
index_url = "https://pypi.company.com/simple"

# Extra index URLs
extra_index_urls = [
    "https://pypi.org/simple"
]

# Trusted hosts
trusted_hosts = [
    "pypi.company.com"
]

Status: ๐Ÿ”ถ Exploratory Priority: Medium Complexity: Low-Medium


Runtime Optimization

Code Optimization Settings

[tool.flavor.runtime]
# Python optimization level
optimization_level = 2  # -OO flag

# Compile .py to .pyc
compile_bytecode = true

# Strip docstrings
strip_docstrings = true

Status: ๐Ÿ”ถ Exploratory Priority: Low Complexity: Low

Dependency Optimization

[tool.flavor.build]
# Exclude test/docs from dependencies
exclude_from_deps = [
    "*/tests/*",
    "*/test/*",
    "*/docs/*"
]

# Only runtime dependencies
no_dev_deps = true

# Requirements lockfile
requirements_file = "requirements.lock"

Status: ๐Ÿ”ถ Exploratory Priority: Medium Complexity: Medium


Advanced Slot Configuration

Lifecycle-Based Loading

[[tool.flavor.slots]]
id = "heavy-models"
source = "models/"
lifecycle = "lazy"  # Load only when accessed

[[tool.flavor.slots]]
id = "tests"
source = "tests/"
lifecycle = "volatile"  # Don't persist between runs

[[tool.flavor.slots]]
id = "config"
source = "config/"
lifecycle = "persistent"  # Keep across runs

Status: ๐Ÿ”ถ Exploratory Priority: Medium Complexity: High

Platform-Specific Slots

[[tool.flavor.slots]]
id = "native-libs"
source = "libs/linux/"
target = "lib/"
platform = "linux"

[[tool.flavor.slots]]
id = "native-libs-mac"
source = "libs/darwin/"
target = "lib/"
platform = "darwin"

Status: ๐Ÿ”ถ Exploratory Priority: Medium Complexity: Medium


Platform-Specific Builds

Platform Build Configuration

[tool.flavor.build.platform.linux_amd64]
env = {
    "CFLAGS": "-O3 -march=x86-64",
    "LDFLAGS": "-Wl,-rpath,$ORIGIN"
}

[tool.flavor.build.platform.darwin_arm64]
env = {
    "ARCHFLAGS": "-arch arm64",
    "MACOSX_DEPLOYMENT_TARGET": "11.0"
}

Status: ๐Ÿ”ถ Exploratory Priority: Low Complexity: Medium


Environment and Runtime Features

Persistent Service Mode

[tool.flavor.runtime]
# Keep server running
persistent = true

# Port configuration
port = 8000

Status: ๐Ÿ“‹ Exploratory Priority: Medium Complexity: High

Advanced Environment Control

[tool.flavor.execution.runtime.env]
# Clear all host environment
unset = ["*"]

# Pass through specific variables
pass = ["HOME", "USER", "TERM"]

# Set application variables
set = {
    PYTHONPATH = "$FLAVOR_WORKENV/lib",
    DEBUG = "0"
}

# Map/rename variables
[tool.flavor.execution.runtime.env.map]
OLD_VAR = "NEW_VAR"

Status: ๐ŸŸข Partially Implemented Priority: High Complexity: Medium Note: Basic environment control exists, advanced features under evaluation


Format Enhancements

Binary Format Improvements

Compression Options

[[tool.flavor.slots]]
id = "data"
source = "data/"
compression = "zstd"  # Specific compression
compression_level = 19  # Maximum compression

Status: ๐ŸŸก Basic Implementation Priority: Low Complexity: Low Note: Compression exists but not configurable

Encryption Support

[[tool.flavor.slots]]
id = "secrets"
source = "secrets/"
encryption = "aes256"
key_source = "env:ENCRYPTION_KEY"

Status: ๐Ÿ”ด Not Started Priority: Medium Complexity: High Note: See FEP-0001 for encryption operation codes


Multi-Platform Packages

Universal Binaries

Create packages that work across multiple platforms in a single file:

[tool.flavor]
platforms = ["linux_amd64", "darwin_arm64", "windows_amd64"]

[[tool.flavor.launchers]]
platform = "linux_amd64"
binary = "dist/bin/launcher-linux"

[[tool.flavor.launchers]]
platform = "darwin_arm64"
binary = "dist/bin/launcher-darwin"

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Very High Blockers: Format specification changes required


CLI and Tooling Enhancements

Package Management Commands

helpers build --platform

Build helpers for specific platforms from CLI:

flavor helpers build --platform linux_amd64
flavor helpers build --platform darwin_arm64 --lang rust

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Medium Note: Currently documented but not implemented

helpers test

Comprehensive helper testing:

flavor helpers test
flavor helpers test --helper flavor-rs-launcher-darwin_arm64
flavor helpers test --verbose

Status: ๐ŸŸก Basic Implementation Priority: Low Complexity: Low Note: Command exists but may not be fully functional

Advanced Inspection

Dependency Visualization

flavor inspect myapp.psp --show-deps
flavor inspect myapp.psp --dependency-tree

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Medium

Slot Analysis

flavor inspect myapp.psp --slot-details

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Low


Integration Features

Build System Integration

Setup.py Support

Support for legacy setup.py in addition to pyproject.toml:

flavor pack --manifest setup.py

Status: ๐Ÿ”ด Not Started Priority: Very Low Complexity: Medium Note: Modern projects should use pyproject.toml

Poetry Integration

Native support for Poetry configurations:

flavor pack --manifest poetry.lock

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Medium

CI/CD Templates

Pre-built CI/CD configurations:

  • GitHub Actions workflow templates
  • GitLab CI/CD templates
  • Jenkins pipeline examples

Status: ๐Ÿ”ด Not Started Priority: Medium Complexity: Low Note: Documentation task, not implementation


Testing and Quality

Test Inclusion

[tool.flavor.build]
# Include tests in package
include_tests = true

[[tool.flavor.slots]]
id = "tests"
source = "tests/"
purpose = "tests"
lifecycle = "volatile"

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Low

Package Validation

# Validate package before distribution
flavor pack --validate-before-sign

# Run smoke tests on packaged app
flavor pack --test-command "pytest tests/smoke/"

Status: ๐Ÿ”ด Not Started Priority: Medium Complexity: Medium


Documentation Improvements

API Documentation Generation

Auto-generate API docs from code:

  • Complete docs/api/packaging.md
  • Complete docs/api/builder.md
  • Complete docs/api/reader.md
  • Complete docs/api/crypto.md

Status: ๐ŸŸก In Progress Priority: High Complexity: Low Note: Stub pages exist, need full content

Interactive Examples

Live, runnable examples in documentation:

# Try FlavorPack online
flavor demo hello-world
flavor demo web-app
flavor demo cli-tool

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Medium


Advanced Features

Supply Chain Security

See FEP-0004: Supply Chain JIT:

  • Reproducible builds with attestation
  • SBOM (Software Bill of Materials) generation
  • Provenance tracking
  • Signature chains

Status: ๐Ÿ”ด Not Started Priority: Medium Complexity: Very High

Runtime JIT Loading

See FEP-0005: Runtime JIT Loading:

  • Lazy loading of dependencies
  • On-demand extraction
  • Streaming execution

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Very High

Staged Payload Architecture

See FEP-0006: Staged Payload Architecture:

  • Multi-stage package execution
  • Progressive enhancement
  • Delta updates

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Very High


Community and Ecosystem

Package Registry

Public registry for sharing PSPF packages:

flavor publish myapp.psp
flavor install popular-package

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: Very High Blockers: Requires infrastructure

Plugin System

Extend FlavorPack with plugins:

flavor plugin install compression-extras
flavor plugin install cloud-deploy

Status: ๐Ÿ”ด Not Started Priority: Low Complexity: High


Legend

  • โœ… Implemented - Feature is complete and tested
  • ๐ŸŸข Partially Implemented - Basic functionality exists
  • ๐ŸŸก In Progress - Actively being developed
  • ๐Ÿ”ถ Exploratory - Design complete, awaiting implementation
  • ๐Ÿ”ด Not Started - Concept only, no implementation

Contributing

Want to help implement these features? Check out:

Feature requests and discussions are welcome in the GitHub Discussions.


See Also