Commit Graph
653 Commits
Author SHA1 Message Date
Lukas Greve 00c4356ff3 Add DEVELOPMENT.md and DEVELOPMENT_QUICK.md
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
2026-03-24 21:43:01 +01:00
Lukas Greve de961e2dd8 ci: regenerate recipes with %ksappend syntax 2026-03-24 21:29:41 +01:00
Lukas Greve f3031fdf0f fix: update integration tests for new recipe paths 2026-03-24 21:27:47 +01:00
Lukas Greve 5e8afd7d6f feat: Phase 2 (fragment migration), Phase 3 (testing infrastructure), Phase 4 (CI/CD)
Phase 2: Fragment Migration
- Migrated 42 ingredients to 54 fine-grained fragments
- Replaced %include with %ksappend syntax
- Created organized fragment structure (platform/generic-43, platform/generic-rawhide, shared/)
- Updated generator to use fragment paths
- All 16 manifest variants generate successfully

Phase 3: Testing Infrastructure
- Created containerized test runner (tests/container/)
- Added integration test suite (tests/integration/)
- Created golden master fixtures (tests/fixtures/expected_recipes/)
- 41 tests passing (36 unit + 5 integration)
- 54 fragments, 16 recipes validated

Phase 4: CI/CD Integration
- 5 new workflows: validate-recipes, validate-fragments, test-generation, container-tests, build-iso
- Added validation gates before ISO builds
- Works with existing fedora-runner-image
- Local testing support via act_runner
2026-03-24 21:27:29 +01:00
Lukas Greve a0a5de31cc Phase 1: Enhance recipe generator with semantic validation
- Add pykickstart integration for semantic validation
- Support version-specific validation (F42 for Fedora 43, DEVEL for rawhide)
- Track deprecated/removed commands (authconfig, keyboard, langsupport, nfs, parted)
- Add warning for deprecated commands, error for removed commands
- Provide migration suggestions for each deprecated command
- Add --strict flag for CI mode (warnings treated as errors)
- Upgrade validate_recipe_semantic() with enhanced error reporting
- Add _check_deprecated_commands() for command-level validation
- Improve version extraction regex to handle _ and - separators
- Add 5 new test cases for deprecated command detection and version extraction
- Update tests/test_recipe_generator.py with comprehensive validation tests

All 36 tests pass with semantic validation working for generated recipes.
2026-03-24 20:36:53 +01:00
Lukas Greve 1aa264c146 Add recipe generator for automation and DRY recipes
- create generate_recipe.py: CLI tool for generating recipes from templates
- add recipe_templates.yaml: 5 base templates (virtual-desktop, virtual-server, desktop-hypervisor, live-desktop, live-server)
- add recipes_manifest.yaml: 16 recipe variants defined declaratively
- add Makefile: automation targets for generate, validate, test
- add requirements.txt: PyYAML dependency
- add tests/test_recipe_generator.py: 25 pytest tests

This enables:
- Template-based recipe generation with minimal duplication
- One-line variant addition via YAML manifest editing
- Automatic duplicate include prevention
- Ingredient path validation

Generated recipes are committed for reproducibility as per project conventions.
2026-03-24 19:52:34 +01:00
Lukas Greve c1c5fa8d07 Updated dishes, including one with luks encryption 2026-03-24 16:00:32 +01:00
Lukas Greve 404533ddf6 readded pipewire 2026-02-19 19:46:33 +01:00
Lukas Greve 636b8a2f28 updated dishes 2026-02-18 21:34:08 +01:00
Lukas Greve 77787e09b5 switch to just --enable, knowing that --reconfig does not seem to survive a pykickstart flattening 2026-02-18 21:33:56 +01:00
Lukas Greve 88db0b65b1 switch to server-based initial-setup until gnome-initial-setup is fixed 2026-02-18 21:32:53 +01:00
Lukas Greve d4b3f7f236 add gnome-terminal 2026-02-18 21:32:01 +01:00
Lukas Greve a3740d6f1e Improve the script logic
Key improvements made:

Enhanced find_fedora_iso function:

Takes dish_name as parameter to understand which version to select
Parses dish names to identify "rawhide" or numeric versions like "43", "44", "45"
Matches ISO files containing both "Fedora-Everything" and the version information
Falls back gracefully if no exact match is found
Backward compatibility:

Maintained the original find_fedora_iso_old function for fallback behavior
If no matching ISO is found based on dish name, falls back to existing behavior
Smart version matching:

For virtual-desktop_43 → looks for ISO containing "43"
For virtual-desktop_rawhide → looks for ISO containing "Rawhide"
Handles edge cases with proper fallbacks
Improved robustness:

Proper error handling for missing directories
Ensures matched files actually exist and are files (not directories)
Handles multiple version patterns
2026-02-15 19:43:43 +01:00
Lukas Greve 465925d81e new resulting dishes 2026-02-15 19:33:51 +01:00
Lukas Greve 5daa5e91ad new dumb script 2026-02-15 19:33:42 +01:00
Lukas Greve 63e7830c4d rely on dnf groups when possible, to better track upstream. Add new base graphical group.
Add new labwc test ingredient
2026-02-15 19:33:29 +01:00
Lukas Greve 714d27b6dc Merge mandatory and default packages ingredients into core-packages
Rename initial setup desktop to gnome initial setup desktop
2026-02-15 19:31:16 +01:00
Lukas Greve 570d355f1f target Fedora-Everything ISO 2026-02-15 19:28:58 +01:00
Lukas Greve 2e6b0d8498 move to Fedora Everything 2026-02-14 17:46:44 +01:00
Lukas Greve fdae77ef23 just new recipes 2026-02-14 17:46:27 +01:00
Lukas Greve 999ff024d3 add new recipes 2026-02-14 17:46:08 +01:00
Lukas Greve 09dd229908 readd the grub2-mkconfig line until a fix for the desktop is found 2026-02-14 17:44:45 +01:00
Lukas Greve e6ebef1818 fix: it is actually the boot partition that needs to be bigger 2026-02-14 17:44:06 +01:00
Lukas Greve f8ea7db7f0 remove unuseful dishes and update the rest 2026-02-14 17:43:29 +01:00
Lukas Greve 84bcfecd12 fix regression 2026-01-31 15:24:45 +01:00
lukas 132f2d247f Merge pull request 'tiny typo fix' (#7) from typo-fix into main
Reviewed-on: #7
2025-12-29 17:43:48 +00:00
lukas 986277166e tiny typo fix 2025-12-29 11:43:15 -06:00
Lukas Greve c102ab48f2 remove the hypervisor part 2025-12-14 10:09:16 +01:00
lukas 7aeb5b33c1 Merge pull request 'new devel recipes' (#6) from new-devel into main
Reviewed-on: #6
2025-12-14 08:52:01 +00:00
Lukas Greve 854ce5d009 new devel recipes 2025-12-14 09:49:37 +01:00
lukas e01ec9f5ae Merge pull request 'recreate development-ready virtual machine recipes' (#5) from dev-recipes into main
Reviewed-on: #5
2025-12-14 08:47:29 +00:00
Lukas Greve c39e9b7803 recreate development-ready virtual machine recipes 2025-12-14 09:47:06 +01:00
Lukas Greve a5cbd39b31 default to rawhide instead of fedora 43 2025-12-13 14:40:47 +01:00
lukas ab8f9af755 Merge pull request 'Add local ISO detection functionality to deploy-distro.sh' (#4) from local-iso into main
Reviewed-on: #4
2025-12-11 20:59:06 +00:00
lukas 6f98f5596d Merge branch 'main' into local-iso 2025-12-11 20:58:59 +00:00
Lukas Greve 05cf28c11a Add local ISO detection functionality to deploy-distro.sh 2025-12-11 21:56:56 +01:00
lukas ba06919d98 Merge pull request 'simplify-virtual-editions' (#3) from simplify-virtual-editions into main
Reviewed-on: #3
2025-12-11 19:52:57 +00:00
Lukas Greve e018870d0e updated recipes 2025-12-11 20:50:24 +01:00
Lukas Greve 0c76e7626d make it even more insecure, to make it easier to debug 2025-12-11 20:50:13 +01:00
Lukas Greve 28c390f1b4 remove the post section to speed installation process 2025-12-11 20:49:29 +01:00
Lukas Greve ebd35f0b1f virtual dishes are for development-only 2025-12-10 21:31:31 +01:00
Lukas Greve 6832142907 add allow ssh incoming connection 2025-12-10 21:31:01 +01:00
Lukas Greve eae12100a8 correct an awful regression. SELinux is either disabled or in enforcing mode. The enable switch does not work 2025-12-10 21:30:19 +01:00
Lukas Greve bc5f156cd9 All non-virtual dishes / recipes are meant to be shipped with sane security defaults 2025-12-10 21:29:25 +01:00
Lukas Greve 8245bdf3b9 revert back gitignore to include dishes 2025-12-10 21:27:45 +01:00
lukas 674b34d441 Merge pull request 'add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method.' (#2) from ext4-improvement into main
Reviewed-on: #2
2025-12-10 16:18:33 +00:00
lukas de5acaf289 Merge branch 'main' into ext4-improvement 2025-12-10 16:18:25 +00:00
Lukas Greve cabebbcedf add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method. 2025-12-10 17:17:39 +01:00
Lukas Greve b028260090 weak security to enable easier debugging 2025-12-09 22:33:51 +01:00
Lukas Greve 1fbe496b6a the proper syntax for firstboot enabling 2025-12-09 22:33:15 +01:00