博客详情页
  • 下载
  • 开发
  • 文档
  • 学习
  • 支持
  • 社区
  • 动态
Repositories
EN
Repositories
EN
openUBMC社区新建仓库指南

openUBMC社区新建仓库指南

新手指引

2025/12/15
openUBMC小助手

openUBMC社区新建仓库指南

在开源社区中贡献代码、共享组件,是推动技术进步和生态繁荣的重要方式。在openUBMC社区中,每一个APP都需通过一个独立的代码仓库进行管理。本文旨在为希望在openUBMC社区中创建新仓库的开发者或贡献者,提供一份完整、清晰的操作指南。无论您是希望贡献一个全新的功能模块,还是计划将一个现有项目迁移到社区,遵循本指南将帮助您高效地完成从构思、评审到最终集成的全流程,让您的创意与努力顺利融入社区中。

新增组件评审

根据社区运作规则,组件创建者需要向社区TC申请,在TC例会中评审并通过后才可以创建。为了保证会上评审的质量和效率,需要在会前准备好以下信息,以便TC委员更好地评估申请。

  • **组件的名字和职责:**需要明确组件的名字和职责,以及组件的实现思路、长期发展是否符合社区整体方向。
  • **组件所属的SIG:**需要明确组件的归属,建议提前与你认为合适的SIG组Maintainer进行讨论。如果希望新增SIG,可以将SIG申请和组件申请合并成一个议题。
  • **组件的License:**如果组件涉及引入三方库,需要明确其使用的License,确保新增组件使用的License符合社区规范。
  • **组件的编程语言:**主要用于评估当前社区CICD是否支持,若不支持则需要与Infra、CICD持续合作确保组件可被覆盖。

!NOTE注意: 可以利用SIG例会、社区邮件、社区论坛等途径提前沟通,确保会前便得到一些TC委员的支持,增加会上评审的通过率。

创建仓库

当完成社区评审后,需要通过community仓库完成仓库的自动创建。

每个SIG的目录中,都会存在两个文件,分别是sig-info.yaml(保存SIG组信息)和repo-info.yaml(保存SIG组对应的Repo仓库信息)文件。所有由该SIG管理的代码仓库,其信息都记录在这两个对应的YAML文件中。

修改对应的代码文件,提交PR时附上TC评审结论即可,TC委员将在1-2个工作日内合入PR。

repo-info.yaml

repo-info.yaml 文件描述了 SIG 组的仓库信息,包含如下基本元素:

名称类型说明
name字符串仓库名称
description字符串仓库包含组件的描述
type枚举类型,可选 public 或者 private仓库是否可公开访问

在某些场景下,如果不想在仓库ready前正式公开,可以在创建的时候选择private,默认SIG的Maintainer有权限访问仓库,并通过Maintainer邀请加入仓库。

例:

- name: mdb_interface
  description: "Resource collaboration APIs definition"
  type: public

sig-info.yaml

sig-info.yaml 文件描述了 SIG 组的人员和权限信息,针对新增组件,如果无需单独配置Committers,则无需改动。**默认所有Maintainer都拥有该仓库的合入权限。

如果需要配置Committers,则需要修改repositories配置:

名称类型说明
repoArray需要独立配置的仓库名称列表
committersArray该仓库配置的Committers列表

例:

repositories:
  - repo:
      - openUBMC/repo_1
      - openUBMC/repo_2
    committers:
      - gitcode_id: committer_1
        name: Committer 1 Name
      - gitcode_id: committer_2
        name: Committer 2 Name

组件CICD配置

当PR合入后,大约1小时内社区机器人便会完成仓库创建,接下来需要完成CICD配置,确保组件PR可被合入。

社区所有的CI门禁设置都在openubmc-ci仓库进行管理。

ci-repos

openUBMC社区CI设置较为复杂,详情请参考openubmc-ci仓库的文档。此处仅提供最初始的配置方法。

  1. ci-repos目录下,创建一个与组件仓同名的文件夹。
  2. 在该文件夹下,创建config.yaml文件,配置组件的门禁开关。
name: dcmid # 组件名
codecheck: false
it: false
ut: false
poison: false
sca: false
coverage: false
build: false
version_check: false
ipmi_check: false
dependency_check: false
line_limit_check: false
model_check: false
header: false

!NOTE注意 初始化阶段建议将门禁项关闭,避免在组件未准备好时被门禁拦截。

  1. 提交PR并合入后,完成组件的初始化和构建脚本开发。
  2. 构建脚本ready后,再根据实际情况打开各门禁项。

总结

在openUBMC社区创建一个新的仓库,远不止是在代码托管平台上点击“新建”按钮。它是一个严谨的社区协作过程,旨在确保每一个新增组件都能与社区的整体技术方向、质量标准和协作规范保持一致。

回顾整个流程,关键在于三个核心步骤:

  • **充分的会前沟通与评审准备:**在正式向TC提交申请前,通过与SIG例会、邮件讨论、论坛等方式明确组件的定位、归属和合规性,不仅能提升TC评审会的效率,更能显著增加提案通过的成功率。
  • **通过配置化方式实现仓库管理:**配置化管理社区组件有效地避免了人为操作带来的不确定性,同时也为长期维护提供了有效的方式。
  • **渐进式地集成CICD:**根据实际情况进行组件的CICD配置,既保证前期能够快速地完成组件创建,又能持续保障组件的代码合入质量。

总而言之,这份指南不仅是一套操作说明,更体现了openUBMC社区对开放、透明和高质量协作的追求。我们鼓励每一位开发者在贡献代码的同时,也积极融入社区的治理流程。希望本文能成为您参与openUBMC社区建设的得力助手,期待您的精彩贡献。

如果您在流程中遇到任何问题,欢迎通过社区论坛、邮件列表或相应的SIG频道寻求帮助。社区的成功,离不开每一位成员的积极参与和共同努力。

【版权声明】Copyright © 2026 openUBMC Community。本文由openUBMC社区首发,欢迎遵照CC-BY-SA 4.0协议规定转载。转载时敬请在正文注明并保留原文链接和作者信息。

【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考,由此产生的所有法律责任均由读者本人承担。

关于作者

openUBMC小助手

openUBMC小助手是openUBMC社区的活跃推手,专注于为开发者提供前沿技术动态、深度文章解析以及丰富的社区互动内容,致力于打造一个开放、互助、充满活力的技术社区,助力每一位成员在技术探索中不断进步。