- 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.
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