Manifest groups get a tier; only `default` is generated (make all TIER=...,
--tier). Default: phyllomeos (GNOME + virt-manager) and phyllomeos-headless,
Fedora 44, systemd-boot, CPU-agnostic hypervisor ingredient (hypervisor_type:
any). guest tier: guest-server, guest-desktop. experimental: biosboot/grub,
encrypted, rawhide. Generator clears stale recipes/dishes before writing.
build-image.sh: --dish and --tier; deploy.sh: --tier. build-iso.yaml replaced
by build-image.yaml: raw images for both editions on the fedora:host runner
(TMPDIR=/var/tmp, max-parallel 1), attached with the flattened kickstarts to
tagged releases. Live edition no longer built.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- storage/biosboot.ks: GPT disk label with a 2 MiB BIOS boot partition,
no ESP (pure legacy layout); registered as the 'biosboot' storage choice
- recipe_templates.yaml: make the desktop hypervisor a superset of the
base hypervisor so GNOME hypervisor dishes get libvirtd + virt-manager
- recipes_manifest.yaml: enable the desktop-hypervisor group targeting
Fedora 44 (gnome, biosboot, grub, security enabled, gnome initial-setup,
hardware-support, intelcpu)
- initial-setup/gnome/config.ks: apply the vendor.conf fix (truncate and
append skip=privacy / providers=local-first!) as an enabled %post
- tests: update BASE_FRAGMENTS fixture to core-explicit.ks (follow-up to
ccf4f9d)
- uncomment the hypervisor recipe, targeting Fedora 44 with
systemd-boot, hardware-support and the intelcpu variant
- make intelcpu.ks bootloader-aware: with systemd-boot kernel
arguments must go to /etc/kernel/cmdline, not /etc/default/grub
- add fedora-44-mirrors ingredient and register it in the repository choices
- expand the desktop variant matrix to [43, 44, rawhide] (48 dishes)
- bump CI workflows and deploy fallback URL to Fedora 44
- cover both release repositories in tests
Replace the hardcoded TEMPLATES dict and the ksflatten-relative wrapper
with a single data-driven pipeline:
- recipe_templates.yaml becomes the single source of truth with three
sections: base (always included), choices (exactly-one per category,
the invariant pykickstart cannot check) and features (additive flags
or one-of values)
- generate_recipe.py is a pure YAML consumer: it resolves ingredients,
renders dishes via pykickstart in-process (no ksflatten binary, no
%include path munging), lints the invariants pykickstart cannot check
(exactly-one per choice category, known keys, existing fragments,
unique filenames) and validates every generated dish
- dish names are derived by a generic rule with canonical category order
from the templates, independent of YAML key order; no committed
generated files means no name burn-in
- recipes/ and dishes/ become gitignored build products; the 68 tracked
generated files (already out of sync with the manifest) are removed
- delete dead ingredients (section-data/, validation/, initial-setup/
desktop/, live/hypervisor.ks, rpmfusion-nonfree.ks), the stale
all-ingredients.cfg (replaced by 'make inventory') and the
bin/generate-recipe and bin/ksflatten-relative wrappers
- Makefile: single 'make all' step plus lint, validate, inventory, test
- add 16 pytest tests covering expansion, selection, naming, lint and
flatten/validate round-trips
- create generate_recipe.py for universal template recipe generation
- support cartesian product expansion from recipes_manifest.yaml
- generate 72 unique recipes with proper filename disambiguation
- update Makefile with simplified validation using ksflatten
- keep ksflatten-relative script as-is for dish flattening
The generator reads recipe_templates.yaml and recipes_manifest.yaml to
produce recipe files that ksflatten then flattens into final dishes.
- Transition from multi-template (install/live recipe types) to single universal template (proteus)
- Remove recipe_type parameter from RecipeGenerator
- Update manifest format (remove recipe_type field)
- Simplify CLI (remove --type argument, use --output for single generation)
- Filename generation now uses primary modifier as first component
- Move recipe-generator/ to cook/ for cleaner structure
- Fix ksflatten-relative path conversion to handle all %include paths
- Fix validation exit code to only fail on actual errors
- All recipes now generate and flatten successfully via make all