Hi Marc-André, I haven't seen discussion about the project ideas you posted, so I'll try to kick it off here for the mkosi idea here.
Thomas: Would you like to co-mentor the following project with Marc-André? Also, do you have any concerns about the project idea from the maintainer perspective? === Reproducible Test Image Building with mkosi === '''Summary:''' Build minimal, reproducible test images for QEMU functional tests using mkosi, replacing ad-hoc pre-built assets with a standardized, maintainable build system. QEMU's functional test suite (`tests/functional/`) relies on pre-built images fetched from various external sources including Debian archives, Fedora repositories, GitHub repositories (e.g., qemu-ppc-boot, linux-build-test), Linaro artifacts, and others. While this approach works, it has several drawbacks: * '''Reproducibility issues''': External sources may change, disappear, or serve different content over time * '''Opacity''': The exact build configuration of these images is often undocumented or unknown * '''Maintenance burden''': When images need updates (fixes, new features), there's no standardized process * '''Inconsistency''': Images come from different sources with varying quality, size, and configuration This project proposes using mkosi to build minimal, reproducible test images directly from distribution packages. mkosi is a tool for building clean OS images from distribution packages, with excellent support for Fedora and other distributions. It should be able to produces deterministic outputs. The Ouroboros has finally caught its tail: QEMU adopts mkosi for testing, while mkosi continues using QEMU to exist. '''Project Goals:''' # Create mkosi configurations for building minimal bootable images for x86_64 and aarch64 architectures using Fedora packages # Integrate with the existing Asset framework in `tests/functional/qemu_test/asset.py` to seamlessly use mkosi-built images alongside existing assets # Set up GitLab CI pipelines to automatically build, hash, and publish images when configurations change # Document the image building process including comparison with existing tuxrun/tuxboot assets (which remain out of scope for replacement) # Migrate selected tests from external pre-built images to mkosi-built equivalents '''Links:''' * [https://wiki.qemu.org/Testing/Functional QEMU Functional Testing documentation] * [https://github.com/systemd/mkosi mkosi project] * [https://gitlab.com/qemu-project/qemu QEMU GitLab repository] * [https://www.qemu.org/docs/master/devel/testing.html QEMU Testing documentation] * [https://mkosi.systemd.io/ mkosi documentation] '''Details:''' * Skill level: intermediate * Language: Python (test framework), Shell/mkosi configuration * Mentor: Marc-André Lureau <[email protected]> (elmarco) * Thomas Huth ? * Suggested by: Marc-André Lureau
