-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace check_missing_items.py
with jsondoclint
#101809
Conversation
This comment has been minimized.
This comment has been minimized.
dfed0ad
to
f69a6c2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks amazing to me! Much more maintainable than the old check_missing
This is a great improvement, thanks! @bors r+ |
…aumeGomez Replace `check_missing_items.py` with `jsondoclint` [zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/check_missing_items.2Epy.20Replacement.2E) check_missing_items.py was a python script that checked rustdoc json output to make sure all the Id's referenced existed in the JSON index. This PR replaces that with a rust binary (`jsondoclint`) that does the same thing. ### Motivation 1. Easier to change when `rustdoc-json-types` changes, as `jsondoclint` uses the types directly. 2. Better Errors: - Multiple Errors can be emited for a single crate - Errors can say where in JSON they occored ``` 2:2889:408 not in index or paths, but refered to at '.index."2:2888:104".inner.items[0]' 2:2890:410 not in index or paths, but refered to at '.index."2:2888:104".inner.items[1]' ``` 3. Catches more bugs. - Because matches are exaustive, all posible variants considered for enums - All Id's checked - Has already found rust-lang#101770, rust-lang#101199 and rust-lang#100973 - Id type is also checked, so the Id's in a structs fields can only be field items. 4. Allows the possibility of running from `rustdoc::json`, which we should do in a crator run at some point. cc `@CraftSpider` r? `@GuillaumeGomez`
@Dylan-DPC The rollup failure is due to #101783, not this. That PR touched src/bootstrap/configure.py, and added an f-string, that isn't supported in whatever version of python CI uses |
@bors r=GuillaumeGomez |
…aumeGomez Replace `check_missing_items.py` with `jsondoclint` [zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/check_missing_items.2Epy.20Replacement.2E) check_missing_items.py was a python script that checked rustdoc json output to make sure all the Id's referenced existed in the JSON index. This PR replaces that with a rust binary (`jsondoclint`) that does the same thing. ### Motivation 1. Easier to change when `rustdoc-json-types` changes, as `jsondoclint` uses the types directly. 2. Better Errors: - Multiple Errors can be emited for a single crate - Errors can say where in JSON they occored ``` 2:2889:408 not in index or paths, but refered to at '.index."2:2888:104".inner.items[0]' 2:2890:410 not in index or paths, but refered to at '.index."2:2888:104".inner.items[1]' ``` 3. Catches more bugs. - Because matches are exaustive, all posible variants considered for enums - All Id's checked - Has already found rust-lang#101770, rust-lang#101199 and rust-lang#100973 - Id type is also checked, so the Id's in a structs fields can only be field items. 4. Allows the possibility of running from `rustdoc::json`, which we should do in a crator run at some point. cc `@CraftSpider` r? `@GuillaumeGomez`
Rollup of 7 pull requests Successful merges: - rust-lang#101722 (Rustdoc-Json: Fix Type docs.) - rust-lang#101738 (Fix `#[link kind="raw-dylib"]` to respect `#[link_name]`) - rust-lang#101753 (Prefer explict closure sig types over expected ones) - rust-lang#101787 (cache `collect_trait_impl_trait_tys`) - rust-lang#101802 (Constify impl Fn* &(mut) Fn*) - rust-lang#101809 (Replace `check_missing_items.py` with `jsondoclint`) - rust-lang#101864 (rustdoc: remove no-op CSS `h1-4 { color: --main-color }`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
zulip discussion
check_missing_items.py was a python script that checked rustdoc json output to make sure all the Id's referenced existed in the JSON index. This PR replaces that with a rust binary (
jsondoclint
) that does the same thing.Motivation
rustdoc-json-types
changes, asjsondoclint
uses the types directly.async fn foo() -> T
return type is given asimpl Future<Output=T>
notT
#101199 and Rustdoc-Json: Reference to missing item with 2 glob imports #100973rustdoc::json
, which we should do in a crator run at some point.cc @CraftSpider
r? @GuillaumeGomez