mozilla / cargo-vet

supply-chain security for Rust
Apache License 2.0
651 stars 43 forks source link

FR: Web frontend for cargo vet certify #554

Open djkoloski opened 11 months ago

djkoloski commented 11 months ago

This is a very large feature request. To be clear, I don't expect the cargo-vet team to take on this work. I hope this can be the start of a conversation about this kind of tooling.

We do unsafe code reviews for crates on Fuchsia. When we do, it's usually 1-3 people auditing every usage of unsafe in a crate. Our current process for this is:

  1. Create a git commit that adds or bumps the version of the crate.
  2. Leave a bunch of review comments in gerrit. These are a mix of unsafe justification (this is sound and here's why) and soundness issues (this is unsound and here's why).
  3. Once we've reviewed every usage of unsafe, we create a separate commit summarizing our audit in our audits.toml and check that in.
  4. Finally, we check in the change introducing the new crate (or updated version of an existing crate).

This has a few pitfalls:

My ideal tool would be something like this:

I suspect that others would benefit from a such a tool. We might have some Fuchsians with spare time who could contribute to developing it, and I would be willing to help out as well.

bholley commented 11 months ago

Interesting!

We got partway through a web UI for the certify flow last year (see #293 and #330) but never saw it through to completion. We were intentionally leaving the review experience as out-of-scope (because building a good code-review tool is hard, and we're primarily leaning on sourcegraph for that), but I'm certainly open to something more ambitious if folks are excited to work on it!

cemoktra commented 3 months ago

i'm want to add here, that recently source graph is a pain in the ass. a lot of diffs just show as "empty repository". While the command line alternative exists, auditing multiple thousand of lines via the local diff is a pain in the ass too.

maybe considering a configuration for local UI tools would be sufficient