reuse是一个符合REUSE建议的工具。
项目描述
重用
重用是符合 REUSE 建议的工具。
- 文档: https://reuse.readthedocs.io 和 https://reuse.software
- 源代码: https://github.com/fsfe/reuse-tool
- PyPI: https://pypi.python.org/pypi/reuse
- REUSE: 3.2
- Python: 3.8+
目录
背景
版权和许可很复杂,尤其是在重用不同项目时,这些项目以各种不同的许可证发布。为了使您的自由软件项目的许可更容易,欧洲自由软件基金会(FSFE)启动了 REUSE,提供了一系列建议。这些建议不仅使您更容易声明您的工作发布的许可证,而且使计算机更容易理解您的项目的许可证。
简而言之,这些建议包括三个方面
- 选择和提供许可证
- 将版权和许可信息添加到每个文件中
- 确认 REUSE 兼容性
建议您阅读 我们的教程,以逐步指导这三个步骤。有关许可、版权和更复杂的用例的基本问题,请参阅 常见问题解答。高级用户和集成者会发现 完整规范 有所帮助。
此工具的存在是为了帮助开发者遵守上述建议。
还有许多其他工具提供了关于软件项目中版权和许可证分析和检查的更多功能和特性。REUSE 辅助工具则专门设计为简单工具,以协助遵守 REUSE 建议。
安装
通过包管理器安装(推荐)
许多操作系统都提供了易于安装的软件包。欢迎您帮助我们为更多发行版打包此工具!
自动生成的列表可以在 repology.org 上找到,但不保证完整性。
通过 pipx 安装和运行(推荐)
以下命令行一次安装并运行此工具,通过 PyPI 使用 pipx
pipx run reuse lint
pipx 自动将 reuse 孤立到其自己的 Python 虚拟环境中,这意味着它不会干扰其他 Python 包,其他 Python 包也不会干扰它。
如果您希望每次使用 reuse 时无需使用 pipx run
前缀,请按以下方式全局安装它
pipx install reuse
然后 reuse 将在 ~/.local/bin
中可用,必须将其添加到您的 $PATH
。
在此之后,确保 ~/.local/bin
在您的 $PATH
中。在 Windows 上,您环境所需的路径可能类似于 %USERPROFILE%\AppData\Roaming\Python\Python39\Scripts
,具体取决于您安装的 Python 版本。
要升级 reuse,请运行此命令
pipx upgrade reuse
为了实现完整功能,以下软件是推荐的
- Git
- Mercurial 4.3+
- Pijul
通过 pip 安装
要安装 reuse 到 ~/.local/bin
,请运行
pip3 install --user reuse
随后,请确保~/.local/bin
已添加到您的$PATH
中,就像上一节所述。
要升级 reuse,请运行此命令
pip3 install --user --upgrade reuse
从源代码安装
您还可以从源代码安装此工具,但我们推荐使用上述方法以实现更简单和更稳定的更新。请确保您的机器上已满足通过pip安装的要求。
pip install .
用法
首先,阅读REUSE教程。简单来说
- 将您的许可证放在
LICENSES/
目录中。 - 在每个文件中添加注释头,说明
SPDX-License-Identifier: GPL-3.0-or-later
,以及SPDX-FileCopyrightText: $YEAR $NAME
。格式可以灵活一些,只需确保行以SPDX-FileCopyrightText:
开头即可。 - 使用此工具验证您的作品。
示例头
# SPDX-FileCopyrightText: 2017 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# SPDX-License-Identifier: CC-BY-SA-4.0
命令行界面(CLI)
要检查是否符合建议,请使用reuse lint
~/Projects/reuse-tool $ reuse lint
[...]
Congratulations! Your project is compliant with version 3.2 of the REUSE Specification :-)
此工具可以执行更多操作,具体请参阅文档。这里是一个简要概述
annotate
--- 在文件头部添加版权和/或许可信息。download
--- 将指定的许可证下载到LICENSES/
目录。init
--- 设置项目以符合REUSE规范。lint
--- 验证项目是否符合REUSE规范。spdx
--- 生成项目中所有文件的SPDX文档。supported-licenses
--- 打印REUSE支持的所有许可证。
示例演示
在这个屏幕录制中,我们将遵循教程,使REUSE示例存储库符合规范。
在Docker中运行
fsfe/reuse
Docker镜像可在Docker Hub上找到。使用它,您可以轻松地将REUSE集成到CI/CD流程中。这样,您可以为每个构建检查REUSE规范。在我们的开发人员资源中,您可以了解如何将REUSE工具集成到Drone、Travis、GitHub或GitLab CI中。
您只需提供要运行的命令(例如lint
、spdx
)即可运行辅助工具。该镜像的工作目录默认为/data
。因此,如果您想检查当前工作目录中的项目,可以将它挂载到容器的/data
目录上,并告诉工具进行检查。这看起来有点像这样
docker run --rm --volume $(pwd):/data fsfe/reuse lint
您还可以提供其他参数,如下所示
docker run --rm --volume $(pwd):/data fsfe/reuse --include-submodules spdx -o out.spdx
可用的标签有
latest
--- reuse的最新版本。{major}
---最新的主版本。{major}.{minor}
---最新的次版本。{major}.{minor}.{patch}
---精确的版本。
您可以在任何标签中添加-debian
以获得基于Debian而不是Alpine的镜像,这可能会更大,但可能更适合许可证合规性。
作为预提交钩子运行
您可以将reuse lint
作为Git的预提交钩子自动运行。这使用pre-commit。一旦您安装了它,将其添加到您存储库中的.pre-commit-config.yaml
repos:
- repo: https://github.com/fsfe/reuse-tool
rev: v3.0.2
hooks:
- id: reuse
然后运行pre-commit install
。现在,每次您提交时,都会在后台运行reuse lint
,如果出现错误,将阻止您的提交通过。
维护者
- Carmen Bianca Bakker carmenbianca@fsfe.org
前维护者
- Max Mehl max.mehl@fsfe.org
- Linus Sehn linus@fsfe.org
贡献
如果您有兴趣为重用项目做出贡献,有多种方式可以参与其中。该项目的开发在GitHub上进行,网址为 https://github.com/fsfe/reuse-tool。在那里,您可以提交错误报告、功能请求和拉取请求。即使在犹豫不决时,也请随时提出问题以打开问题。欢迎所有类型的贡献,开发团队也乐于为新贡献者提供指导和帮助。
在提出更改(尚未被团队认可为相关)的拉取请求时,请谨慎行事。此类拉取请求可能会被关闭,导致失望。为了避免这种情况,请先打开一个问题。
此外,有关项目的讨论和支持,可以使用 reuse@lists.fsfe.org 邮件列表。
完整的贡献指南可在 https://reuse.readthedocs.io/en/latest/contribute.html 找到。
许可
本作品受多个许可证的许可。由于保持本节更新具有挑战性,以下是截至2024年4月的情况简介
- 所有原始源代码均受GPL-3.0或更高版本的许可。
- 所有文档均受CC-BY-SA-4.0许可。
- 一些配置和数据文件受CC0-1.0许可。
- 一些从spdx/tools-python借用的代码受Apache-2.0许可。
有关更准确的信息,请检查单个文件。
项目详情
reuse-4.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f2c3e1213ec644e5febc50d8322d18982e4e1102af8a51d9493bfc2164a0eac |
|
MD5 | 20d517b5b5d01a76aec69f0175bbe329 |
|
BLAKE2b-256 | 3b499f2126560a5fb2613760b20fc15fefd7d35ae2e8f80367957228a1988d25 |
哈希值 用于 reuse-4.0.3-cp311-cp311-manylinux_2_36_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b33e26ec1d105cfcfc2e904d103faec0d758994278feb95a4f4290a864562243 |
|
MD5 | 6fd5e26c0a012e11804612b1c927759b |
|
BLAKE2b-256 | 5a57775c1e4a4abae10051ef073ed5f9210ba822cc4c73300b9504a6c960dc5d |