harmony 鸿蒙README.OpenSource 文件规范
README.OpenSource 文件规范
目的
为更好追溯第三方开源软件的原始上游信息,特在《第三方开源软件引入指导》中对相关信息进行了要求 “新引入的开源软件必须在其根目录提供README.OpenSource文件,在该文件中准确描述其软件名、许可证、许可文件位置、版本、对应版本的上游社区地址、软件的维护Owner、功能描述以及引入的原因。” 但社区开发者常见问题是对于README.OpenSource 写作要求和规范并不清晰,对于其中多License情况,多开源软件情况等场景如何规范填写并不清晰,因此,本文旨在规范化README.OpenSource文件的写作要求,并将相关要求基线化,在工程能力成熟后,README.OpenSource文件可按照本规范,在选型引入时,自动基于引入的信息由IT系统生成此文件。
范围
本指导适用于所有参与OpenHarmony社区的贡献者、特别是当引入第三方开源软件到OpenHarmony项目中。
本文的改进和修订说明
- 本文档由OpenHarmony合规SIG主导起草和维护。本文档的最新版本总可以在 这里找到。
- 任何对于本文中涉及的规则的增加,修改,删除都必须被追踪,请进入该追踪系统。
- 最终规则经过社区充分的讨论后,由PMC评审定稿。
README.OpenSource 字段规则说明
README.OpenSource 样例
[
{
"Name": "linux", # 上游开源软件名全称
"License": "GPL-2.0+", # 上游开源软件中包含的许可证信息
"License File": "COPYING", # 许可证所在文件路径
"Version Number": "5.10.93", # 该软件的版本
"Owner": "xxx@xxx.com", # 开源软件在OpenHarmony组织下对应的维护人及邮箱
"Upstream URL": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-5.10.93.tar.gz", # 上游软件包发布地址
"Description": "XXXXXXX" # 开源软件功能描述
},
{
...
}
]
- Name : 在本代码仓中包含源码的上游开源软件全称。若有多个软件,则写个{}进行描述。
注意:
假设A软件依赖B软件,若通过将B软件源码放置在本仓库中,来满足A对B的依赖关系,即A*包含依赖*B, 则A、B软件均需要声明; 若B软件已在OpenHarmony组织下建立其专属代码仓,仅在编译构建时通过GN指定其他代码仓目录进行依赖,不是以源码形式存放在本代码仓库的,即A开源软件*编译依赖*B软件,则不用在此处声明。
License : 上游开源软件中包含的许可证信息此处不可随意填写,需使用SPDX Identitifer简写,每次只能写一个许可证信息; 若存在许可证二选一的情况,在此明确具体选择了哪个许可证; 若代码仓存在多许可证共存的情况,则需要在本文件的最外层数组[]中,再增加一组开源软件元数据的{}描述,对其他许可证及其对应的文件路径进行描述。
License File : 许可证文件和本代码仓根目录的相对路径,包含最终的文件名。 多个许可证文件的处理方式,参考License字段的处理规则,配合完成。
Version Number : 上游软件正式发布的版本号,应与上游版本号的文本内容保持完全一致。
Owner : 该开源软件在本代码对应组织下的维护者,注:此Owner仅表示在本仓的软件维护者,不同于软件的实际作者。
Upstream URL : 源码引入时上游软件对应版本的源码包的发布地址。
Description : 开源软件功能的简要描述。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙OpenHarmony 32/64位可移植编程规范
harmony 鸿蒙OpenHarmony应用TS&JS编程指南
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦