From e54c040c6d3155e491915ec671530d012df6d412 Mon Sep 17 00:00:00 2001 From: ougongchang Date: Mon, 10 May 2021 09:34:39 +0800 Subject: [PATCH] add software management document for MindSpore --- security/software-management_zh_cn.md | 64 +++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 security/software-management_zh_cn.md diff --git a/security/software-management_zh_cn.md b/security/software-management_zh_cn.md new file mode 100644 index 0000000..a846df7 --- /dev/null +++ b/security/software-management_zh_cn.md @@ -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)的评审,管理软件变更。