Search before asking
Description
skywalking-eyes has been great for catching license header and dependency issues, but there's a gap I ran into recently that I think could be a natural fit for the tool.
In Apache Iceberg Rust, the 0.10.0 RC3 release vote failed because three crates were missing LICENSE and NOTICE files. The repo root had them, but the individual crate directories didn't, and Cargo just silently leaves them out of the published package. Nobody caught it until a reviewer flagged it mid-vote.
This is especially painful in Rust because workspace repos tend to grow new crates over time, and each one needs its own LICENSE/NOTICE. Apache License 2.0 §4 requires including the license with any redistribution, and each cargo publish is a redistribution. It's easy to forget when adding a crate, and nothing in the toolchain warns you. Other ecosystems like npm and Python could hit the same issue in monorepo setups, but Rust workspaces seem to run into it the most in practice.
Since eyes already covers license headers and dependency licenses, I was curious whether validating license file presence would be something that fits the project's scope. I'm not familiar enough with the codebase to have an opinion on how it'd work - just wanted to raise the problem and see if it's something worth exploring together. Happy to help with a PR if so.
Use case
As of now the core use case would be flagging in CI when a Rust workspace crate is missing LICENSE/NOTICE files that Cargo needs in order to include them in published packages.
Related issues
No response
Are you willing to submit a pull request to implement this on your own?
Code of Conduct
Search before asking
Description
skywalking-eyes has been great for catching license header and dependency issues, but there's a gap I ran into recently that I think could be a natural fit for the tool.
In Apache Iceberg Rust, the 0.10.0 RC3 release vote failed because three crates were missing LICENSE and NOTICE files. The repo root had them, but the individual crate directories didn't, and Cargo just silently leaves them out of the published package. Nobody caught it until a reviewer flagged it mid-vote.
This is especially painful in Rust because workspace repos tend to grow new crates over time, and each one needs its own LICENSE/NOTICE. Apache License 2.0 §4 requires including the license with any redistribution, and each
cargo publishis a redistribution. It's easy to forget when adding a crate, and nothing in the toolchain warns you. Other ecosystems like npm and Python could hit the same issue in monorepo setups, but Rust workspaces seem to run into it the most in practice.Since eyes already covers license headers and dependency licenses, I was curious whether validating license file presence would be something that fits the project's scope. I'm not familiar enough with the codebase to have an opinion on how it'd work - just wanted to raise the problem and see if it's something worth exploring together. Happy to help with a PR if so.
Use case
As of now the core use case would be flagging in CI when a Rust workspace crate is missing LICENSE/NOTICE files that Cargo needs in order to include them in published packages.
Related issues
No response
Are you willing to submit a pull request to implement this on your own?
Code of Conduct