You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are valid use cases for running additional (not-necessarily-semver) user-provided checks against a codebase. A few examples:
Ensuring that a builder pattern struct always uses either &mut self or self and doesn't mix across them.
Ensuring that certain types don't leak out through the API, even though they are public (perhaps from another crate).
These are all reasonable queries runnable over the existing schema and Trustfall adapter used here. We just need to design the CLI for specifying the additional checks, and the file format (serde struct) the additional check files should use.
I am really interested in this one, mostly because leaking another library's type in your API can be a semver hazard, esp. if that library is pre 1.0.
It would indeed be awesome to have. Unfortunately, we probably need to figure out how to best enable/disable checks on an individual basis (#58), because not all users will want to prohibit all external types.
Is a semver violation through dependency bumps of libraries that appear in the public API caught today?
I'm not sure — it depends on how exactly it's represented in rustdoc JSON. I'm hesitant to give an "authoritative" answer since a change in the rustdoc JSON format could flip the boolean in the answer :)
I can say that if this is caught today, it's caught via a happy accident as opposed to intentionally.
There are valid use cases for running additional (not-necessarily-semver) user-provided checks against a codebase. A few examples:
&mut self
orself
and doesn't mix across them.These are all reasonable queries runnable over the existing schema and Trustfall adapter used here. We just need to design the CLI for specifying the additional checks, and the file format (serde struct) the additional check files should use.
Tangentially related to #5.
The text was updated successfully, but these errors were encountered: