slint-ui/slint · error
Project is not reuse compliant!
Error message
Project is not reuse compliant!
What it means
The REUSE compliance check runs the `reuse lint` tool and, if it exits non-zero, prints its stdout and bails with this error. It means one or more files in the repository lack proper copyright/licensing information per the REUSE specification.
Solutions
- Run `reuse lint` locally and fix every file it flags (add SPDX headers or .reuse/dep5 entries)
- Re-run the `reuse` tooling (`reuse annotate`) to add missing copyright/license headers to new files
- Regenerate symlinks/coverage via the xtask helpers (scan_symlinks / validate_license_directory) before linting
Example fix
// before (new file without header)
fn main() {}
// after
// Copyright © 2026 Author
// SPDX-License-Identifier: GPL-3.0-only OR MIT
fn main() {} Defensive patterns
Strategy: validation
Validate before calling
reuse lint || echo "fix files listed above before pushing"
Prevention
- Run `reuse lint` locally before every commit
- Add SPDX headers via `reuse annotate` when creating files
- Cover generated/binary files with .license companions or dep5 entries
When it happens
Trigger: Running the xtask REUSE check (CI or `cargo xtask ...`) after adding new source files without SPDX `SPDX-License-Identifier` and copyright headers, or with files listed inconsistently in `.reuse/dep5`.
Common situations: A contributor commits generated files, assets, or new code without license headers; renamed/moved files losing their headers; missing LICENSES/ directory entries for a declared license.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- Encountered one or multiple errors. See above for details.
- exists but is not a symlink
- License ` ` of crate is not in the accepted list
- Missing LICENSES directory for published crate
- Missing tag
AI-assisted analysis of slint-ui/slint@bb937076de (2026-09-16).
Data as JSON: /api/errors/e6d1ea92d129242a.
Report an issue: GitHub.
Appendix: source
Thrown at xtask/src/reuse_compliance_check.rs:34
let home_dir = std::env::var("HOME").context("HOME is not set in the environment")?;
Ok(sh.cmd(command).args(args).env("PATH", format!("/bin:/usr/bin:{home_dir}/.local/bin")))
}
pub fn find_reuse() -> Result<PathBuf> {
which::which("reuse").context("Failed to find reuse")
}
pub fn reuse_download(sh: &Shell, reuse: &Path) -> Result<String> {
cmd(sh, reuse, &["download", "--all"])?.read().context("Failed to download missing licenses.")
}
pub fn reuse_lint(sh: &Shell, reuse: &Path) -> Result<()> {
let output = cmd(sh, reuse, &["lint"])?.ignore_status().output()?;
if !output.status.success() {
let stdout = String::from_utf8(output.stdout)?;
println!("{stdout}");
anyhow::bail!("Project is not reuse compliant!");
}
Ok(())
}
fn parse_spdx_data(sh: &Shell, reuse: &Path) -> Result<BTreeMap<PathBuf, Vec<String>>> {
let output = cmd(sh, reuse, &["spdx"])?.read()?;
let mut current_filename = String::new();
let mut licenses = Vec::new();
let mut result = BTreeMap::new();
fn insert(v: &mut BTreeMap<PathBuf, Vec<String>>, f: &str, l: Vec<String>) -> Result<()> {
if l.is_empty() {
anyhow::bail!("No license info for \"{}\" available", f);
}
v.insert(PathBuf::from(f), l);
Ok(())
}View on GitHub (pinned to bb937076de)