Lukas Greve
288ed0a249
refactor: Simplify template logic - reduce from 6 to 3 categories, remove variant_type, keep validation, remove tests
...
Simplified template logic: reduced from 6 categories (required, modifiers, optional, versioned, conditional, flags) to 3 categories (required, modifiers, optional). Removed variant_type and replaced with modifier-based approach (version, bootloader replaced, hardware_support). All validation methods kept for recipe generation and validation. Removed tests directory (tests/test_recipe_generator.py, tests/integration/, tests/container/). Removed non-ISO workflows (validate-recipes, test-generation, container-tests, validate-ingredients). Updated Makefile, requirements.txt, and documentation. All 20 recipes successfully generated, validated, and flattened.
2026-03-27 12:13:51 +01:00
Lukas Greve
0a3c2b14d8
docs: Add comprehensive documentation to recipe generator
...
Add detailed docstrings and inline comments to all recipe generator modules explaining classes, functions, and complex logic in plain English.
Files updated:
- recipe-generator/recipe_generator.py: Module, class, and method docs
- recipe-generator/cli.py: CLI modes, arguments, and workflow docs
- recipe-generator/validators.py: Three-layer validation architecture docs
- recipe-generator/manifest.py: Manifest processing and variant expansion docs
- recipe-generator/generate_recipe.py: Entry point documentation
2026-03-27 11:07:16 +01:00
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
Lukas Greve
3eb4c75392
refactor: fix linting issues - remove unused kwargs, fix unused variable, and make method public
2026-03-26 19:26:31 +01:00
Lukas Greve
05d611276d
fix: Add _bare-metal suffix for False boolean modifiers to prevent filename collisions
...
The manifest uses hyphenated keys (guest-agents, hardware-support) but the filename
generation was looking for underscored keys, causing 16 variants to overwrite 4 files.
Added _get_modifier() helper to normalize both key formats and added _bare-metal suffix
for False values of guest_agents, ensuring unique filenames for all variant combinations.
This restores the intended 24 distinct variants from the manifest and adds support for
all modifiers (bootloader, initial-setup, desktop, security, storage, guest_agents, hardware_support).
2026-03-26 16:09:28 +01:00
Lukas Greve
898c831065
refactor: Modularize recipe generator
...
- Split generate_recipe.py into cli.py, recipe_generator.py, validators.py, manifest.py
- Removed override logic - modifiers now add fragments rather than replace
- Added filename deduplication to prevent overwriting recipes
- Updated CI workflows and tests to use new module structure
- Made pykickstart a hard dependency
- Removed ingredients/ directory support (only fragments/*.ks now used)
- New layout: 5 modules (~990 lines) vs single 769-line file
2026-03-26 15:31:18 +01:00