- 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)
67 lines
1.4 KiB
Markdown
67 lines
1.4 KiB
Markdown
# Phyllome OS Development Workflow
|
|
|
|
This is a quick-reference guide for developers. For comprehensive coverage, see [DEVELOPMENT.md](./DEVELOPMENT.md).
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Create new kickstart snippet
|
|
cat > ingredients/shared/packages/new-package.ks << 'EOF'
|
|
%packages
|
|
new-package
|
|
%end
|
|
```
|
|
|
|
### Add to Recipe
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
cd recipe-generator
|
|
make test # All tests
|
|
make test-integration # Integration only
|
|
make test-container # Containerized
|
|
```
|
|
|
|
### Validate Fragments
|
|
|
|
```bash
|
|
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.
|