Contributing
Thank you for contributing to TunaOS β bootc-based desktop OS images on Enterprise Linux.
Quick Startβ
# Install prerequisites (Homebrew recommended for consistency with CI)
brew install just podman shellcheck shfmt
# Clone and set up
git clone https://github.com/tuna-os/tunaOS.git
cd tunaOS
just fix && just check
Pre-Commit Workflow (mandatory)β
Always run before every commit:
just fix # Format shell scripts and Justfile
just check # shellcheck, yamllint, jq, actionlint
git diff # Review your changes
Commits must be signed with DCO: git commit -s
Building Imagesβ
# Build a single variant (fastest test β ~25-35 min with warm cache)
just yellowfin base
# Build the full flavor chain
just yellowfin base && just yellowfin dx && just yellowfin nvidia
# Build other variants
just albacore base
just skipjack base
just bonito base
First build: ~45-60 minutes (cold cache). Never cancel builds early.
When to Buildβ
| Change type | Build required? |
|---|---|
Containerfile*, build_scripts/*, system_files* | Yes β always |
scripts/* | Sometimes (if testing ISO/VM) |
| Docs, CI workflows, README | No |
Pull Request Processβ
- Fork the repository and create a feature branch
- Run
just fix && just checkbefore pushing - Ensure your commits are signed (
git commit -s) - Open a PR against the
mainbranch - CI runs builds and image diffs automatically
- Address feedback from maintainers
Architectureβ
See docs/AGENT_GUIDE.md for a detailed architecture overview:
- Variants and flavors
- Build pipeline stages
- CI/CD matrix configuration
- Key files and environment variables
Documentationβ
- Agent Guide β complete reference for contributors
- Build Pipeline β CI/CD overview
- Improvement Plan β roadmap and progress
- Testing Guide β ISO e2e test harness
- Developer Docs β build and contribution guide
Communityβ
Licenseβ
TunaOS is licensed under Apache 2.0.