ITADN

Clarify RegistryCI license-check API for REUSE/SPDX-compliant packages

#155557Opengwr-de 创建于 2026-05-15
G
gwr-decommented
## Context Related to #48137 and #140158, but narrower: this is not about accepting non-OSI packages, but about recognizing OSI-approved licensing evidence in REUSE/SPDX-compliant repositories. ## Problem The current check appears oriented toward a single root `LICENSE` file. That works for simple packages, but is imprecise for repositories where source code, docs, CI files, generated files, and vendored files may have different license expressions. In such repositories, a full-text root `LICENSE` file can be misleading: it may suggest that the whole repository is under one license. REUSE/SPDX expresses this more precisely through SPDX headers, `REUSE.toml` / `.reuse/dep5` metadata, and canonical texts under `LICENSES/`. A root `LICENSE` file may therefore deliberately be only a pointer to the machine-readable licensing information. ## Reference case and possible tooling I have published an early-development reference package: https://github.com/bslMS/ReuseLicensing.jl The package currently provides SPDX license-expression parsing and policy evaluation. It is itself REUSE-compliant and uses a pointer-style root LICENSE file with canonical license texts under LICENSES/. The next development step is file-level and repository-level policy evaluation, likely consuming `reuse lint --json` and/or REUSE-generated SPDX/SBOM data. A RegistryCI-facing API could be as simple as: ```julia has_general_registry_approved_source_license(path)::Bool ``` or for diagnostics: ```Julia evaluate_package(path; policy = GeneralRegistryPolicy()) ``` The intended policy would be narrow: verify that package-relevant Julia source files have an **OSI-approved SPDX license path**, while reporting non-source domains such as documentation, metadata, CI files, or media separately. ## Questions 1. Would General be open to treating REUSE/SPDX evidence as an alternative to the traditional single root LICENSE heuristic? 2. Should such a check be repository-wide, or restricted to package-relevant source domains such as `src/`, `ext/`, generated Julia files, and files included in the package tarball? 3. Would a pointer-style root LICENSE file be acceptable if the authoritative license information is REUSE-compliant and machine-verifiable? 4. Would `ReuseLicensing.jl` itself be a useful reference case, or should I adapt its layout before attempting registration? I would be happy to shape `ReuseLicensing.jl` so that it exposes a small, stable API for CLI suitable for RegistryCI, if there is interest in this direction. --- Disclosure: I used AI assistance to improve the clarity and structure of this issue text.
135 条评论