Skip to content

Bootstrapping userbase through automated checks #409

Description

@kornelski

Crev doesn't have enough reviews yet to make any sizeable real-world project fully "pass" the verification. I think this creates a vicious cycle: it's not useful yet, so few users use it, and because few users use it, it doesn't get enough reviews.

Therefore, I think it's necessary to find a way to break this cycle. Crev needs to give some useful assessment even for projects that don't have enough review coverage.

I know that for some users it's important to actually have 100% of dependencies fully manually reviewed. OTOH everyone else who's not using crev yet is checking 0% of their deps, so anything more than 0% is still an improvement.

Most users should be able to run cargo crev verify (or cargo crev someothercommand) in CI and have it give a useful yes/no answer already.

I'm suggesting that when crates don't have any reviews, we can still try to give some heuristic-based score:

  • Lean more on trusted owners. If a crate is published by a trusted owner, then let it pass.

    • Help adding trusted owners (e.g. cargo crev trust @username?)
    • Make cargo crev verify display who needs to be trusted in order to pass the verification.
  • Compute a risk score of each dependency based on multiple factors, e.g. does it use build.rs or proc-macros (these run code at build time, bypass static code analysis). Does it use unsafe/no_mangle/link? Is it popular, is it old, is it from a trusted author.

    • Report highest-risk crates and suggest reviewing them.
    • Let users automatically accept low-risk crates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions