Hasty Briefsbeta

双语

The Fedora 45 Sausage Factory

5 hours ago
  • 本文档以Fedora 45为例,介绍了Fedora如何将源代码转化为可下载的制品,如ISO、云镜像、容器镜像和OSTree部署。
  • 流程从打包者向dist-git(位于src.fedoraproject.org的Git仓库)中的软件包提交开始,这里存储源代码定义和下游补丁,而大型二进制文件则保存在单独的旁路缓存中。
  • 构建系统Koji会拉取Git URL,为每次构建创建干净的Mock chroot环境,并通过标签(tags)管理构建,标签用于定义构建根目录和目标标签。
  • 构建完成后,对于分支版本,Bodhi通过待定、测试和稳定等状态的反馈循环来门控更新,在推送稳定更新前需要获得karma点数或经过测试日。
  • Pungi通过冻结来自Koji标签的软件包集来编排发行版,使用comps(软件包组)和变体XML来定义产品,然后通过Lorax构建引导镜像,使用xorriso生成ISO,并通过Kiwi和Image Builder创建镜像。
  • Kiwi使用XML定义构建云镜像、Vagrant盒、容器基础镜像和Live ISO,而Image Builder则处理基于ostree和bootc的制品,如Atomic Desktop ISO、Fedora IoT和Minimal。
  • 像Silverblue这样的Atomic Desktop使用rpm-ostree来组合树文件,生成带版本号和校验和的OSTree提交,并整合来自comps和treefile规范的软件包。
  • 编排过程中的元数据(例如composeinfo.json、images.json、rpms.json)由productmd标准化,并被下游工具如Anaconda、Bodhi、openQA和镜像管理使用。
  • openQA通过在虚拟机中启动镜像、运行安装和桌面场景,自动测试编排结果,并将结果反馈到发布验证中。
  • 重大变更通过治理流程进行,包括全系统或自包含的提案,由FESCo审查,并设有与发布日程相关的检查点。