归档:构建服务路线图
| 本文关于开放构建服务的文档已过时! 您可以在 https://github.com/openSUSE/open-build-service/ 上找到最新的信息 |
Open Build Service 开发路线图
这是当前构建服务开发团队的计划。请将日期视为目标估计,而不是保证日期。某些功能可能会提前到达,而其他功能可能需要更多时间。
如果您希望更早地看到这些功能,我们也乐于帮助任何人开始使用这些功能。在这种情况下,请发送邮件至 mailto:opensuse-buildservice@opensuse.org。
该路线图涵盖未来一年,并具有以下重要里程碑,将在下面详细说明。
请查看 FATE for OBS 中的开放功能请求。
即将发布的版本
更详细的功能列表可以在 OBS Roadmap 上找到
OBS 2.7,2016年初
- 重做了按需下载支持
(Monitoring changing repositories and webui support) [DONE]
- SCM 树的增量存储,将在构建时创建 tar 包。[进行中]
- 构建时源服务 [完成]
过去发布的版本
OBS 2.6,2015年2月
一个较小的版本,重点是软件包跟踪
- 发布了二进制跟踪支持。这包括一个搜索界面和过去发布的历史记录。目标是维护版本。
- 产品通道支持
- Debian Live Media 支持
- 请求优先级
- 改进的用户组处理
- 重构请求历史记录
- 实验性:现在可以将整个项目与冻结的源版本链接起来。
OBS 2.5,2014年3月
重点是支持从一个代码流维护多个产品。
- 产品跟踪支持:当前积极维护哪些产品,它们包含哪些软件包。哪些更新已经发布。
- 支持每个代码流的多个产品
- 获取维护的软件包状态数据
- 通过令牌机制自动更新源
- github.com OBS 支持
- 集成的评论和通知系统
- 古老分支的自动销毁序列
技术方面
- webui 和 api 合并
- 配置设置集中化
OBS 2.4,2013年3月
- 添加了 Arch Linux 软件包格式支持。
- 构建作业约束处理。它可以用于为某些构建作业定义构建实例要求。无论是针对定义的软件包源还是所有存储库。可以在这里找到有关此内容的文档:http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_job_constraints.html
- 支持预安装镜像,可用于加速构建作业。它们需要手动构建,但可以自动用于以比仅安装软件包更快的方式创建构建实例基础。
- 现在可以配置已发布存储库中二进制结果的静态链接(没有版本和发布号)。这可以通过 Repotype: 定义中的“staticlinks”关键字来完成。
- 正在收集构建作业使用的资源数据。但是,它尚未用于构建作业分配
- 现在也可以按给定组列出请求。
- 结账删除软件包不再需要 srcmd5 总和。
- 删除请求可用于请求从项目中删除存储库。
- 支持创建应用程序数据 xml,可用于应用程序商店的应用程序为中心浏览,而不是软件包浏览。
- 支持 hugetable 内存使用,用于 kvm 工作器。
- 支持构建交叉构建格式,例如使用 kiwi 构建描述或 .spec 文件构建 rpm 或 deb 包。
- 从工作器到后端的产品的构建结果的有效传输。
- 添加了 aarch64 架构(又名 armv8 或 arm64)
- 新的通用“模拟器”虚拟化支持。可用于在系统模拟器(例如用于外国硬件)内构建。
里程碑(版本 2.3),发布于 2012年3月3日
两个强制功能是
- openSUSE 分发维护支持。
- 重做了 Qemu 交叉构建支持
- 读取访问权限控制(如 2.2 版本发布中所计划)。
所有其他功能都是可选的。
此版本的目标是将 openSUSE 的完整维护处理纳入 OBS。这包括
- 使用补丁数据生成更新存储库。(完成)
- 维护补丁请求和创建(完成)
- (Bugzilla)问题跟踪
- 发布管理功能,允许在不更改移动到最终目标位置的情况下发布二进制软件包。(从一个存储库到另一个存储库)。
- delta 包生成(完成)
- 读取权限支持
- 保护二进制软件包
- 隐藏整个软件包或项目
- 更好的 XSS 保护
openSUSE 维护现在使用 OBS 2.3 功能
里程碑(版本 2.1),发布于 2010年10月19日
重点是改进源处理。
- 源处理改进
- webui 可用于编辑 openSUSE:Factory 提交。这包括
- 支持编辑链接的软件包
- 提交请求创建
- 请求审查支持
- webui 显示软件包源的历史记录
- 显示提交历史记录
- 显示提交差异
- 显示旧的源版本
- 可选的源软件包保护
- 跟踪链接的项目和软件包并在 webui 中显示它们
- webui 中的源服务编辑器
- 服务器端快照 svn 或 git 存储库,执行版本升级和自动重建。
- webui 可用于编辑 openSUSE:Factory 提交。这包括
- 其他 webui 改进
- 驱动程序更新磁盘编辑器
- 质量!测试套件比以前更完整,涵盖了很大一部分 api 功能。
里程碑 Cajun Sunrise(版本 2.0),发布于 2010年6月10日
此版本的主题是新的改进的 webui 界面。其他功能将在准备就绪时提供。
- 由 openSUSE Booster Team 驱动的修订后的 webui
- 更好地概述了未决提交
- 更好地概述了分发状态
- 项目源链接
- 开放的 web 界面对匿名用户在一定程度上可用(FATE #306381)
- 源服务作为稳定功能
- 服务器端下载和验证源,以确保 tar 包来自列出的上游项目。
- 审查机制改进
- 自动添加项目或软件包的审查者
- 批量批准经过审查的提交
- 项目链接支持
- 调度程序策略可配置
- 用户组处理作为稳定功能
- 项目配置和元数据的历史记录
- 删除项目或软件包的功能
- 添加用户角色请求(请求成为审查者、维护者或 bugowner)
- 通过 kiwi 支持驱动程序更新磁盘
- 构建依赖循环可以通过 api 查看。
- patchinfo 编辑器 webui
里程碑 MeeGo(版本 1.8),发布于 2010年6月10日
此版本由 MeeGo 项目的开发人员组驱动,并将提供以下功能
- 权限组处理支持(api 部分完成,从 2.0 反向移植,webui 部分将反向移植)
- 读取权限控制设置以隐藏项目
注意:1.8 不是 OBS 团队的官方版本,不兼容!
里程碑(版本 1.7),2010年2月9日
- 允许完全管理 Factory distro 软件包(过时的 SUSE 内部软件包数据库)。(完成)
- 属性系统(API 将能够为每个二进制软件包存储键/值)。(完成)
- 添加缺少的请求
- 删除请求(完成)
- 更新开发信息(完成)
- 支持软件包描述翻译,需要用于产品创建。(已放弃,将通过软件包完成)
- 允许请求的审查机制(部分完成)
- api 和 osc 增强,用于以下用例
- “osc maintainer” 应输出负责特定软件包的人员列表。(完成)
- “osc whatdependson” 应输出哪些软件包由特定软件包触发。(完成)
- 存储库状态报告显示调度程序计算的状态。该状态可能标记为脏,以便用户知道将发生重新计算。(完成)
- api 端 tar 包下载支持,以改进源审查。这将通过 源服务 实现。(完成,声明为 1.7 的实验功能)
- 构建触发报告,现在存储了触发构建的原因,并且可以请求。(完成)
- web 界面现在可以主题化。(完成)
- 干净的产品构建,使用项目中的软件包(kiwi 等)。(完成)
- 维护支持,又名 patchinfo(部分实现)
- 一般的较小改进和错误修复。
里程碑(版本 1.6),2009年6月
- 交叉开发支持。 其他架构通过模拟和可选交叉编译的组合来处理。可以处理现有的本机分发版。这次作为官方功能。使用模拟器技术,但也可以与交叉编译结合以提高性能。可在 OBS 开发软件包中找到工作实现,也提供文档。OBS 1.5 提供了一个版本。(已实现)
- Factory 构建优化。
- 删除未更改的软件包构建(已实现)
- 支持创建 delta rpm(可能推迟)
里程碑 Aster(版本 1.5),2009年3月
此功能的主题是提供构建自己的分发版所需的一切。openSUSE 11.1 使用此功能构建,可以用作自己的变体的基础。
- Factory ftp 树生成。 使用 OBS 构建 openSUSE:Factory 的官方 FTP 树。(完成)
- 基本的配额处理。 默认和单个存储库大小配额,仅可在后端配置,没有 api 访问权限。(部分完成,其余移至后续里程碑)
- 自动媒体镜像构建。
- 产品镜像构建支持。这会创建用于安装的媒体,例如 openSUSE 11.1 DVD。(完成)
- 实时镜像构建支持。像 LiveCD ISO 这样的镜像将自动在 OBS 中构建。(进行中)
- 离线镜像构建支持。 启用每个人在自己的工作站上使用或不使用变体构建 iso。(尚未)
- 提供构建信息
- 提供调度程序数据接口。
- 项目构建历史记录。
- 处理 Power Build 主机。 能够快速构建单个大型且耗时的软件包。这具有“很好”的状态。
- 交叉开发支持。 其他架构通过模拟和可选交叉编译的组合来处理。可以处理现有的本机分发版。实验功能!
- 按需下载外部二进制软件包。 通过快速简便的步骤,可以添加现有类型 .deb 或类型 .rpm 的分发版作为构建目标。
里程碑 Daffodil(版本 1.0),2008年6月
为 openSUSE Factory 发行版开发软件包将真正做到透明化,并使每个人都能参与开发。向任何项目(包括 openSUSE:Factory,它是下一个即将发布的 openSUSE 版本的基石)提交源代码应该很容易。
为此,我们必须改进构建服务中的源代码处理。目标是改进项目之间的代码提交。从现在开始,无论外部还是内部社区成员(内部情况为员工)向我们的发行版提交代码,都不会有任何区别。
这使得真正的社区开发成为可能,用于下一个 openSUSE 发行版,用于为现有的 openSUSE 版本创建官方更新,或用于任何 OBS 项目。
详细信息
- 启用 openSUSE:Factory 贡献。 在 opensuse.org 上运行的 OBS 将启用接受 openSUSE:Factory 的贡献。
- 轻松生成现有软件包的补丁(分支)。 这意味着用户应该能够直接开始处理任何软件包,但工具只会存储他自己项目与原始软件包之间的差异。
- “开发项目”支持。 软件包,尤其是在 openSUSE:Factory 中,可以定义它们将在哪个其他项目中进行开发以供参与。 此前被称为“maintainedin”功能。
- 自动 debuginfo 生成。 后端根据构建标志创建 debuginfo 软件包。
里程碑Crocus (版本 0.9),2008 年 4 月
此里程碑带来了实现通过分支提交更改并提交更改的功能,以提供对不可写项目的代码更改。 此外,Inter Build Service 的连接性将允许轻松设置自己的实例,并进一步扩展构建服务实例到一个互联的全球网络。
- 提交请求机制。 如果用户没有软件包的直接写入权限,则需要一种请求软件包所有者合并的方式。 这基本上是 autobuild 提交目前的工作方式,但使用不同的实现(不适用于外部人员),并且需要保持像 EAL 这样的认证。 这不应仅限于软件包源代码更改,还应适用于模式、镜像配置甚至项目/软件包元数据更改。(完成)
- 创建用于查看现有提交请求并选择它们的界面。 还应该能够说明拒绝原因。(完成)
- 提交处理。 用于接受和执行合并,以及带有理由说明拒绝合并请求。(完成)
- Inter 构建服务连接功能,用于连接构建服务的多个实例。 我们可以扩展一个遍布全球的实例网络,这些实例可以直接重用其他实例的项目资源。 这增加了系统的规模并使其具有高度可扩展性。(完成)
- 支持构建所有当前发行版软件包。 多架构处理,以重用其他架构的软件包和自动基本库软件包构建。(完成)
- 自动镜像创建。 构建服务将能够使用 KIWI 描述自动构建镜像。(完成)
- 签名密钥处理。 OBS 将处理每个项目的不同 gpg 密钥。 密钥可以从上层项目重用,并提供一个创建和删除它们的接口。(完成)。
- 构建脚本中的 QEMU 支持。 构建脚本可用于在不同的硬件架构上构建软件包。(完成)
- 集成 rpmlint 检查支持。 用于验证 openSUSE 发行版中接受的软件包的基本要求。(完成)
里程碑Poinsettia (版本 0.5),2007 年底
此里程碑收集了许多急需的实现,以提高我们服务的稳定性。 这尤其重要,因为 openSUSE 10.3 更多地使用了 OBS 服务。
以下项目是当前导致最多问题的缺失功能或错误修复。
- 改进仓库生成。 仓库由调度器之外的进程生成。 这使得调度器更快、更可靠。(状态:完成)
- 改进仓库签名。 每个项目将获得其仓库的单独 gpg 密钥。 因此,将能够区分项目以提高安全性和信任度。(状态:完成)
- 实现便捷的项目删除。 使删除项目的 api 调用完全有效,包括删除公共服务器上的仓库。(状态:完成)
- Bugzilla 链接。 为特定项目或软件包添加一个链接以创建新的 Bugzilla 报告。 我们首先需要使用 iChain 电子邮件地址。(状态:完成)
- 改进统计信息收集性能。 由于性能问题,我们目前不会更新下载统计数据。 需要进行 небольшое重新设计才能使其性能更好。(状态:进行中)
- 稳定代码。 稳定尤其是后端代码,并使其更能抵抗错误或硬件问题。
独立任务
最终用户界面已发布初始版本。 未来的计划是让最终用户更多地参与进来,让他们感受到成为 openSUSE 社区的一部分。 可以通过允许简单的贡献,例如对某些软件的评论或评分来实现,但我们还应该使其易于允许他们提交真实的贡献,也许从软件包描述更改开始。 构建服务开发人员界面应该仅需单击一下即可访问……
功能收集于
https://en.opensuse.net.cn/Build_Service/End_User_Frontend