【规范】interface SIG 接口变更流程(初稿)

修订记录

修订版本 修订人 修订日期 修订内容 审核日期
V1.0 pengqiang-gs 2025/09/03 建立规范初稿
V1.1 pengqiang-gs 2025/10/27 增加接口变更发布流程

接口变更范围

本规范看护责任主体为 interface SIG,规范主要针对对于 openUBMC 的接口变更进行流程规范化处理。具体涉及的接口以及变更的项有:

  • 北向接口:通过不同的网络协议或者配置对于BMC进行管理的接口,具体有:
    (1) Redfish 接口:接口的请求(参数个数,参数类型),响应(参数个数,参数类型),权限
    (2) WEB UX 接口(交互界面):UX元素个数,类型,权限,样式
    (3) CLI 接口(SSH或者串口登陆交互界面):命令参数,执行权限,回显内容
    (4) UIRest 接口:接口的请求(参数个数,参数类型),响应(参数个数,参数类型),权限
    (5) SNMP 接口:接口的请求(参数个数,参数类型),响应(参数个数,参数类型),权限
    (6) IPMI 接口:接口的请求(参数个数,参数类型),响应(参数个数,参数类型),权限
  • 配置项接口:通过配置文件进行BMC配置管理的接口,具体有:
    (1) 配置导入导出接口:配置项的类型,导入导出行为
    (2) 定制化项接口:定制化项的类型,校验方式
  • 资源协作接口:通过 DBus 协议暴露出来的开发资源接口,具体有:
    (1) DBus 资源协作接口(整体):一般是接口下的属性或者方法变更
    (2) 资源协作接口属性:属性名称,属性签名/类型,读写类型/权限,变更信号,持久化方式
    (3) 资源协作接口方法:方法名称,方法权限,方法请求签名/参数,方法响应签名/参数,返回错误标识
    (4) 资源协作接口信号:信号名称,信号参数签名
  • 错误引擎:采用标准(Redfish Specification #2065)或者自定义的错误消息。具体有:
    (1) 标准错误:不允许变更
    (2) 自定义错误:错误名称,Message,Resolution,Suggestion,HTTPCode,IPMIcompletionCode,SNMPCode

接口变更流程

接口通用变更流程

  • 第一步:开发者在社区 “Interface SIG + Interface评审” 板块下新建话题,创建评审议题
  • 第二步:Interface SIG 定期组织评审会议评审议题,给出是否需要发变更声明的意见
  • 第三步:对于不需要发变更声明则进行议题结论刷新归档即可;对于需要发变更声明的话题,需要记录遗留问题并且发布接口变更声明之后再行刷新结论

接口废弃变更流程

  • 第一步:开发者在社区 “Interface SIG + Interface评审” 板块下新建话题,创建评审议题
  • 第二步: Interface SIG 定期组织评审会议评审议题,给出是否允许废弃的决策意见
  • 第三步:对于不允许废弃的接口则进行议题结论刷新归档即可;对于需要废弃的接口议题,需要记录遗留问题并且发布接口变更声明(废弃,需要明确废弃截止版本,使用since或者until关键字)之后再行刷新结论

变更流程示意图如下:

graph TD
  subgraph 接口评审
    choice1{是否需要接口废弃/变更}
    申报议题  --> 议题预审
    议题预审 --> SIG例会评审
    SIG例会评审 --> choice1
    choice1 --> |是|申报接口废弃/变更
    申报接口废弃/变更-->接口废弃/变更审核
    接口废弃/变更审核 --> 接口废弃/变更发布
     接口废弃/变更发布 --> 刷新评审结论
    choice1 --> |否|刷新评审结论
    刷新评审结论 --> 议题关闭归档
  end
  subgraph 版本发布
    choice2{是否有接口废弃/变更}
    版本发布评审 --> choice2
    choice2 -->|否|版本ReleaseNote
    choice2 -->|是|接口废弃/变更发布
    接口废弃/变更发布 --> |提取|变更内容
    变更内容 --> |填充|版本ReleaseNote
  end

参考资料

  1. 北向接口变更声明样例:【变更声明】Redfish接口SimpleUpdate带有清除配置升级权限变更
  2. 资源协作接口变更声明样例:【变更声明】资源协作接口 FirmwareMatchRules 权限和签名变更

[replied]

  • 已经更新到文档中,增加 release note 中关于版本发布流程的处理
  • release note 中关于接口变更的发布说明,在 release-management SIG 例会上进行审视
  • 接口废弃算是一种变更,只是当前变更会在一段时间之后生效,鉴于 JDK 的废弃机制,在废弃时首先会有注解/关键字支持,可以在代码和 JavaDoc 中进行支持;其次在代码静态编译和运行时也有不同程度的支持,静态编译时会有编译告警,运行时也可以通过反射来查看接口的废弃状态
  • 接口变更的范围已经在初稿中进行明确