Files
phyllomeos/DEVELOPMENT_QUICK.md
T
Lukas Greve 31955a8983 refactor: rename fragments directory to ingredients and update all references
- Directory rename: fragments/ → ingredients/ (54 .ks files)
- Updated all Python scripts:
  * tests/integration/conftest.py - fixture renames
  * tests/integration/test_integration.py - constant and path updates
  * tests/test_recipe_generator.py - updated test assertions
  * recipe-generator/validators.py - updated comments and error messages
  * recipe-generator/recipe_generator.py - updated comment
- Updated all YAML files:
  * recipe-generator/recipe_templates.yaml - 66 path references
  * .gitea/workflows/validate-fragments.yaml → validate-ingredients.yaml
  * .gitea/workflows/test-generation.yaml - path patterns
- Updated scripts:
  * bin/ksflatten-relative - updated path detection
- Updated test file:
  * tests/integration/test_fragments.py → test_ingredients.py
- Updated documentation:
  * DEVELOPMENT.md - simplified references
  * DEVELOPMENT_QUICK.md - updated examples
  * tests/container/README.md - test references
- Regenerated all recipes (16 files) with ingredient paths
- Updated test fixtures (7 files)
- All integration tests pass (5/5)
- All unit tests pass (29/31 - 2 pre-existing failures unrelated)
2026-03-26 20:27:56 +01:00

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 recipe-generator && make generate-recipes && make test

Core Workflows

Add Fragment

# Create new kickstart snippet
cat > ingredients/shared/packages/new-package.ks << 'EOF'
%packages
new-package
%end

Add to Recipe

# Edit recipe-generator/recipe_templates.yaml to include fragment
# Edit recipe-generator/recipes_manifest.yaml to add variant

# Regenerate
cd recipe-generator && make generate-recipes && make validate-recipes

Run Tests

cd recipe-generator
make test                    # All tests
make test-integration        # Integration only
make test-container          # Containerized

Validate Fragments

for f in $(find ingredients -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

ingredients/ (54 .ks) → recipe-generator/generate_recipe.py → recipes/ (16 .cfg) → ksflatten → dishes/ (28 .cfg)

See DEVELOPMENT.md Section 1 for detailed architecture overview.