文件命名规则¶
我们的约定好分支命名的规则以确保我们的CI可以构建软件并由其他开发人员轻松测试。
每个Git存储库的README文件都应该说明使用哪个分支命名约定以及可能与规范的偏差。
一键安装包¶
专门作为 click-package(而不是deb)分发的软件只使用一个受保护的``master``分支。 可以创建具有任意描述性名称的单独临时开发分支,并及时合并到master分支中。为了标记和归档在开发历史记录中的重要阶段性数据,最好使用Git的tags功能或GitHub 的 releases页面。
Debian 软件包¶
为了最有效地使用我们的CI系统,我们使用了一个特殊的git-分支命名规则。
对于预先安装的Ubuntu Touch组件,尽可能使用deb包。 这包括核心应用程序,因为它们仍然可以使用OpenStore的点击包下载进行独立更新。 这个策略允许我们利用强大的Debian构建系统来解决依赖关系。
每个使用这种规定的资料库都会有分支,用于代号(“bionic”,“xenial”,“vivid”等)引用的主动支持的Ubuntu发布版本。这些都是直接构建到相应镜像中并发布在:doc:`repo.ubports.com <ppa>`上的分支。如果不需要用于不同Ubuntu版本的独立版本,版本库将只有一个``master``分支,并且CI系统仍然会为所有主动支持的发布版本构建版本并相应地解决依赖关系。
分支-扩展¶
基于另一个存储库构建和发布包,形式为的扩展可以使用``xenial _-_ some-descriptive_extension``。 然后,CI系统将使用其他存储库的``xenial _-_ some-descriptive_extension``分支来解析所有依赖关系,或者如果不存在则回退到正常的``xenial``依赖关系。 这些特殊的依赖项没有内置到图像中,但仍然被推送到on:doc:repo.ubports.com <ppa>。
多个分支扩展可以以“xenial _-_ dependency-1 _-_ dependency-2 _-_ dependency-3”的形式链接在一起。 这意味着CI系统将会在以下存储库中查找依赖关系:
xenial
xenial_-_dependency-1
xenial_-_dependency-1_-_dependency-2
xenial_-_dependency-1_-_dependency-2_-_dependency-3
注解
因为没有优先级,构建系统将始终使用版本号最高的软件包或版本相同的最新版本。
依赖文件¶
对于复杂或非线性的依赖关系,可以在存储库的根目录中创建一个名为``ubports.depends``的文件来指定其他依赖项。 如果此文件存在,则自动忽略分支名称。
xenial
xenial_-_dependency-1_-_dependency-2_-_dependency-3
xenial_-_something-else
注解
ubports.depends``文件是一个**独占列表**,因此构建系统不会像在分支名称中那样线性地解析依赖关系!每个依赖项都必须列出。你几乎总是希望每一个依赖项均包含于你的基本版本中(即``xenial
)。