Skip to content

Become a Package Maintainer (zh_CN)

Gary Wang edited this page May 17, 2023 · 3 revisions

成为软件包维护者

自 v23 起,任何有兴趣参与软件包维护的贡献者都可以向 deepin 软件包仓库递交新软件包,以及维护感兴趣的软件包了。

下面会概述软件包的递交与维护方式,并给出相关的详细参考资料。

维护方式概述

deepin v23 起,来自上游的软件包的维护过程发生于 GitHub 的 deepin-community 组织下对应的软件包仓库。例如,软件包 ncdu 即对应 deepin-community/ncdu 仓库。

软件包基于 dpkg 进行打包构建,维护者需要通过发起 Pull Request 的形式,在对应的仓库中更新相应源码、打包配置(即 debian 目录下的配置)以及 patch(仅针对 quilt 类型的软件包,仅在需要时提供。位于 debian/patches)。

每个软件包维护仓库都有对应的 OBS(Open Build Service,位于 https://build.deepin.com/)构建配置,维护者在发起 Pull Request 后,即可触发对应的自动化构建。

deepin-community 下的软件包由认领对应软件包的维护者或 SIG 展开维护。若软件包无 SIG 或维护者认领,则由 deepin-sysdev-team 系统研发小组进行维护。如果你是新的维护者或你希望成为新的维护者并参与其中,那么则强烈建议你加入 deepin-sysdev-team 小组 的在线交流群,以便展开相关问题的讨论。

新软件包的递交

若要维护一个之前不存在于 deepin v23 仓库的软件包,所需要做的事情即为申请在 deepin-community 组织下创建对应的软件包维护仓库,以便后续提交软件包的源码与维护软件包。

大致而言,申请方式为:发起 PR,按照对应格式编辑 deepin-community/SIG 仓库下的 repos.yml 添加要维护的仓库的相关信息,并等待相关人员合入。此 PR 合入后,软件包维护用的仓库即会自动创建。后续在新创建的仓库展开维护工作即可。

对于此流程的详细描述,请参见 deepin wiki 上的 deepin-community协作指南 词条。

软件包版本的迭代

维护者通过更新 debian/changelog 的形式来标识软件包新版本的迭代。包含 debian/changelog 更新的 Pull Request 在合入后,会触发对应仓库自动打 tag。

需要注意的是,所有 deepin-community 组织下的软件包维护仓库的变动都只会存在于 develop 和 unstable 仓库之中,若希望软件包流向 testing 以及 stable 仓库以便最终用户可以在稳定仓库中使用对应的软件包的话,还需要进行软件包的集成申请。

大致而言,申请方式为:发起 PR,按照对应格式编辑 deepin-community/Repository-Integration 仓库下的 integration.yml 添加要集成的仓库的相关信息,并等待生成一个对应的集成测试流程 issue。Issue 生成后,在 issue 内补充可供测试人员留意的测试建议即可(若没有测试建议则需要大致描述为什么不需要测试)。最终,会由集成相关的人员进行处理,并通过 label 标记相关状态(相关 PR 不会合入,以 label 状态为准)。

对于此流程的详细描述,同样请参见 deepin wiki 上的 deepin-community协作指南 词条。对于 unstable/testing/stable 的流转说明,请参见 仓库流转规范 词条。