License 规范

更新时间:
2025-06-16

License 规范

为了确保软件包在合法、合规的前提下被开发者和用户使用,建议为每个软件包配置适当的许可协议(License),以明确其使用、分发和修改权限。本文档介绍 License 配置的相关规范和要求。

许可证类型

Armory 支持以下几种许可证类型,以满足不同场景下的软件包授权需求。

标准化许可证

Armory 支持 SPDX(Software Package Data Exchange)许可证标识符,开发者可直接使用已定义的开源许可证。为确保一致性和兼容性,建议许可证命名遵循 SPDX license expressionopen in new window 规范。

您可以参考完整的 SPDX 许可证 ID 列表 open in new window 配置 armory.jsonlicense 字段。为确保更广泛的开源兼容性,建议优先选择 OSI 认证open in new window 的许可证。

armory.json 配置示例如下:

  • 单个许可证

    此处以使用 MIT 许可证为例进行介绍:

    {
     "license": "MIT",
    }
    
  • 多重许可证
    如果软件包采用多个许可证,可使用 SPDX 许可证表达式,例如:

    {
     "license": "(ISC OR GPL-3.0)",
    }
    

配置并成功发布软件包后,可在软件包详情页右侧的 License 字段中查看软件包的许可证标准。

自定义许可证

如果软件包采用非标准许可证自定义授权协议,可通过以下方式配置 License 信息:

  • 方式一:添加 LICENSE 文件(推荐)

    在软件包根目录下创建一个名为 LICENSE 的纯文本文件(无文件扩展名),用于详细说明授权条款。系统将自动识别该文件内容,并在软件包详情页右侧的 License 字段中提供预览功能。

  • 方式二:通过 armory.json 引用授权信息

    如未使用标准 LICENSE 文件,也可将授权内容写入任意文件(如 LICENSE.txtdocs/license.mdREADME.md),或在文件中添加外部 License 链接。然后在 armory.json 中通过如下格式声明:

    {
     "license": "SEE LICENSE IN <filename>",
    }
    

无许可证

如果软件包不授予任何使用权限,可在 armory.json 中将 license 配置为"UNLICENSED",表示该软件包不允许任何使用、修改或分发,除非作者另行授权。

   {
    "license": "UNLICENSED",
   }

注意事项

"UNLICENSED""Unlicense" 有不同的含义,使用时请务必区分:

  • "UNLICENSED":表示软件包是私有的,或未授权他人使用。使用 "UNLICENSED" 的软件包可能会在未经作者许可的情况下带来法律风险,尤其在商业项目中。
  • "Unlicense":是一个 SPDX ID,表示该软件包允许任何人自由使用、修改和分发。