|
|
|
@@ -0,0 +1,64 @@ |
|
|
|
# MindSpore 软件包依赖管理规范 |
|
|
|
|
|
|
|
## 关于本文档 |
|
|
|
|
|
|
|
### 目标 |
|
|
|
|
|
|
|
为满足网络安全、合法合规、可追溯性要求,特拟定本规范,指导MindSpore社区正确使用开源软件。本规范的中**必须**,**必须不能**,**应该**,**应该不能**的含义参考[RFC2119](https://tools.ietf.org/html/rfc2119)。 |
|
|
|
|
|
|
|
### 范围 |
|
|
|
|
|
|
|
本文档定义了MindSpore社区新增、升级、降级、删除开源软件包所需要遵从的策略要求。所有提交到MindSpore社区的开源软件包需要满足本文档中定义的技术要求。 |
|
|
|
|
|
|
|
### 本文的改进和修订说明 |
|
|
|
|
|
|
|
- 本文档由[MindSpore技术委员会](https://gitee.com/mindspore/community/tree/master/tsc)( Technical Steering Committee, TSC)主导起草和维护。本文档的最新版本可以在 [这里](https://gitee.com/mindspore/community/tree/master/security/software-management.md) 找到。 |
|
|
|
- 任何对于本文中涉及的规则的增加,修改,删除都**必须**被追踪,[请进入该追踪系统](https://gitee.com/mindspore/community/issues) 。 |
|
|
|
- 最终规则经过社区充分的讨论后,由技术委员会定稿。 |
|
|
|
|
|
|
|
## 开源软件选型原则 |
|
|
|
|
|
|
|
### 目的 |
|
|
|
|
|
|
|
制定本原则是为了确保MindSpore社区使用的开源软件质量可靠、安全稳定。 |
|
|
|
|
|
|
|
### 软件选型要求 |
|
|
|
|
|
|
|
#### 总体要求 |
|
|
|
|
|
|
|
1. 为了确保开源及第三方软件的质量,从社区引入某开源软件/版本,或者从第三方供应商处引入某第三方软件/版本,需要进行选型评估活动。 |
|
|
|
2. 软件选型要求保证开源软件基本信息正确。软件基本信息包括软件名称、软件版本号、编程语言、官网地址、license、官方发布时间、源码包下载地址、二进制包下载地址、copyright等。 |
|
|
|
3. 必须满足选型评估标注四个维度(合法合规、网络安全、技术生态、生命周期)的底线原则要求,不满足时,则需要采用其他软件替换或者自研。 |
|
|
|
4. 原则上一款开源软件只在MindSpore社区中引入一次。 |
|
|
|
|
|
|
|
#### 合法合规 |
|
|
|
|
|
|
|
1. 禁止选用无许可证、许可证要求无法履行、有知识产权问题的开源软件。 |
|
|
|
2. 优先选择有官方数字签名校验的软件包。 |
|
|
|
|
|
|
|
#### 网络安全 |
|
|
|
|
|
|
|
1. 禁止选用含非误报病毒告警的软件。 |
|
|
|
2. 选用的开源软件必须有问题反馈与修复跟踪管理机制,优先选择有漏洞披露源的开源软件。 |
|
|
|
3. 优先选择漏洞较少的版本。 |
|
|
|
|
|
|
|
#### 技术生态 |
|
|
|
|
|
|
|
1. 选用版本必须是正式发布的版本。未正式发布的版本(如:Beta版本,rc(Released candidate)版本)禁止引入。 |
|
|
|
2. 优先选择主流的供应商/社区或社区项目。 |
|
|
|
3. 优先选择版本稳定性高的软件,无已知的未解决的致命Bug。 |
|
|
|
4. 优先选择代码质量高的软件。如代码结构规范、代码调试功能可关闭、有自动化构建能力、自动化测试充分等。 |
|
|
|
|
|
|
|
#### 生命周期 |
|
|
|
|
|
|
|
1. 选用成熟期或成长期的软件,禁止选用处于衰退期的软件。成长期软件:发布频繁。成熟期软件:定期发布版本。衰退期软件:社区更新少,已经不再发布新版本。 |
|
|
|
|
|
|
|
## 开源软件变更原则 |
|
|
|
|
|
|
|
开源软件的变更,包括在MindSpore社区中引入其他开源软件(项目)、升级或者降级已引入的开源软件、删除已引入的开软软件等动作。 |
|
|
|
|
|
|
|
其中引入、升级、降级开源软件必须满足**开源软件选型原则**。升级、降级开源软件必须考虑MindSpore社区所提供功能的稳定性与兼容性。 |
|
|
|
|
|
|
|
整个变更的过程都**必须**可被追踪。目前 [https://gitee.com/mindspore/community/issues](https://gitee.com/mindspore/community/issues) 是这个过程的追踪系统。 |
|
|
|
|
|
|
|
TSC通过对变更申请(Pull Request)的评审,管理软件变更。 |