在yaml中建立管道模型的框架
BuildStream的Python项目详细描述
什么是buildstream?
buildstream是一个用于构建/集成软件堆栈的免费软件工具。 它从包括 obs,可复制的构建,yocto,baserock,buildroot,土著,gnome continuous, JHBuild、Flatpak Builder和Android回购。
buildstream支持多个构建系统(例如autotools、cmake、cpan、distutils, make、meson、qmake),可以创建一系列格式的输出(例如debian包, 用于多平台和芯片组的Flatpak运行时、系统根、系统映像)。
为什么要使用buildstream?
buildstream具有以下优点:
声明性生成指令/定义
BuffDFieles为建模提供了一个灵活的和可扩展的框架。 以声明性的yaml格式构建管道,它允许您 在受控的、可复制的沙盒环境中操作文件系统数据。
支持开发人员和集成人员工作流
buildstream为积分器处理提供可跟踪性和可再现性。 成百上千个组件的堆栈,以及工作区功能和 缩短开发周期的捷径。
快速且可预测
buildstream可以缓存以前的构建并跟踪对源文件内容的更改 以及build/config命令。buildstream只重建已更改的内容。
可扩展
您可以扩展buildstream以支持您喜爱的构建系统。
bootstrap工具链和可引导系统
buildstream可以从头开始创建完整的系统和完整的工具链,用于 一系列ISA包括x86_32、x86_64、ARMV7、ARMV8、MIPS。
如何使用buildstream?
请参考documentation 有关安装buildstream和buildstream yaml格式的信息 和插件选项。
buildstream是如何工作的?
buildstream操作一组yaml文件(.bst文件),如下所示:
- 加载描述目标和所有依赖项的yaml文件
- 计算版本信息和生成指令以计算生成 目标的图表以及每个目标的所有依赖项和唯一缓存键 元素
- 从缓存中检索元素(如果它们已生成),或在 使用.bst文件中声明的指令对环境进行沙盒处理
- 根据 在.bst文件中声明的指令。
我该怎么开始呢?
<> P>最简单的入门方法是探索一些现有的BST文件,例如:- https://gitlab.gnome.org/GNOME/gnome-build-meta/
- https://gitlab.com/freedesktop-sdk/freedesktop-sdk
- https://gitlab.com/baserock/definitions
- https://gitlab.com/BuildStream/buildstream-examples/tree/master/build-x86image
- https://gitlab.com/BuildStream/buildstream-examples/tree/master/netsurf-flatpak
如果您有任何问题,请在我们的#buildstream频道irc.gnome.org询问