DEVELOPMENT.md comprehensive guide for contributors covering: - Architecture overview - Development environment setup - Fragment development (54 modular .ks files) - Recipe generation via manifest + templates - Testing suite (36+ tests) - CI/CD workflows - Common workflows + Migration Guide DEVELOPMENT_QUICK.md quick reference companion
1.4 KiB
1.4 KiB
Phyllome OS Development Workflow
This is a quick-reference guide for developers. For comprehensive coverage, see DEVELOPMENT.md.
Quick Start
# Prerequisites
sudo dnf install qemu libvirt virt-install pykickstart
pip install PyYAML pytest
# Verify setup
cd scripts && make generate-recipes && make test
Core Workflows
Add Fragment
# Create new kickstart snippet
cat > fragments/shared/packages/new-package.ks << 'EOF'
%packages
new-package
%end
Add to Recipe
# Edit scripts/recipe_templates.yaml to include fragment
# Edit scripts/recipes_manifest.yaml to add variant
# Regenerate
cd scripts && make generate-recipes && make validate-recipes
Run Tests
cd scripts
make test # All tests
make test-integration # Integration only
make test-container # Containerized
Validate Fragments
for f in $(find fragments -name "*.ks"); do
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
parser.readKickstart(open('$f').read())
" || echo "✗ $f"
done
Architecture
fragments/ (54 .ks) → generate_recipe.py → recipes/ (16 .cfg) → ksflatten → dishes/ (28 .cfg)
See DEVELOPMENT.md Section 1 for detailed architecture overview.