Skip to content

Development Guide

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

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

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!