Skip to content

Development Guide

Contribute to FlavorPack by developing new features, fixing bugs, or improving documentation.

Getting Started

Quick Setup

# Clone the repository
git clone https://github.com/provide-io/flavorpack.git
cd flavorpack

# Set up environment
uv sync

# Build helpers (Go and Rust)
make build-helpers

# Run tests
make test

Development Topics

Contributing

Learn how to contribute to FlavorPack.

Contributing Guide →

  • Code of conduct
  • Development workflow
  • Pull request process
  • Code style guidelines

Architecture

Understand FlavorPack's architecture.

Architecture Guide →

  • System design
  • Component interaction
  • Data flow
  • Design decisions

Building Helpers

Develop and build native helpers.

Building Helpers →

  • Go helper development
  • Rust helper development
  • Cross-compilation
  • Testing helpers

Testing

Write and run tests.

Testing Guide →

  • Unit tests
  • Integration tests
  • Cross-language tests
  • Test infrastructure

CI/CD

Understand the CI/CD pipeline.

CI/CD Guide →

  • GitHub Actions workflows
  • Build matrix
  • Release process
  • Artifact management

Release Process

Learn about releasing new versions.

Release Process →

  • Version management
  • Changelog
  • Publishing wheels
  • GitHub releases

Development Workflow

graph LR
    FORK[Fork Repository] --> CLONE[Clone Locally]
    CLONE --> BRANCH[Create Branch]
    BRANCH --> DEV[Develop & Test]
    DEV --> COMMIT[Commit Changes]
    COMMIT --> PUSH[Push to Fork]
    PUSH --> PR[Create Pull Request]
    PR --> REVIEW[Code Review]
    REVIEW --> MERGE[Merge]

    classDef start fill:#e8f5e8,stroke:#1b5e20
    classDef process fill:#e1f5fe,stroke:#01579b
    classDef end fill:#f3e5f5,stroke:#4a148c

    class FORK start
    class CLONE,BRANCH,DEV,COMMIT,PUSH,PR,REVIEW process
    class MERGE end

Code Quality

FlavorPack maintains high code quality standards:

Python Code

# Format code
ruff format src/ tests/

# Lint code
ruff check src/ tests/

# Type check
mypy src/flavor

Go Code

cd src/flavor-go

# Format
gofmt -w .

# Lint
go vet ./...

# Test
go test ./...

Rust Code

cd src/flavor-rs

# Format
cargo fmt

# Lint
cargo clippy

# Test
cargo test

Community

Communication Channels

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - Questions and ideas
  • Pull Requests - Code contributions

Getting Help

  • Read the Contributing Guide
  • Check existing issues and PRs
  • Ask in Discussions
  • Join community calls (announced in Discussions)

Next Steps

  1. First contribution? → Start with Contributing Guide
  2. Want to understand the code? → Read Architecture
  3. Building helpers? → See Building Helpers
  4. Writing tests? → Check Testing Guide

Ready to contribute? Head to the Contributing Guide!