Skip to content
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

Do not consider #[doc(hidden)] items part of the public API. #576

Merged
merged 10 commits into from
Nov 8, 2023

Conversation

obi1kenobi
Copy link
Owner

@obi1kenobi obi1kenobi commented Nov 7, 2023

Based on the approach that @davidhewitt and I prototyped a few months ago, which has since matured and been merged: obi1kenobi/trustfall-rustdoc-adapter#260

This gets us almost all of the edge cases around #[doc(hidden)]: structs, fields, enums, variants, fields within variants, functions, methods, (free or associated) constants, statics, etc. There are test cases in this PR for each of them.

The remaining edge cases require knowledge of whether traits are sealed, so we can accurately determine if e.g. the deletion of a #[doc(hidden)] trait associated type is a breaking change because it might affect implementations outside the crate. Sealed traits are of interest for many other lints as well (see #5) so I'm sure we'll get that too before long.

This PR should resolve a vast majority of the current false-positives encountered in practice by users of cargo-semver-checks, as measured by our study of the top 1000 Rust crates across all their releases since 2017: https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/

@obi1kenobi obi1kenobi added the C-enhancement Category: raise the bar on expectations label Nov 7, 2023
@obi1kenobi obi1kenobi force-pushed the ignore_doc_hidden_items branch 2 times, most recently from f367460 to e6ac131 Compare November 8, 2023 00:30
@obi1kenobi obi1kenobi marked this pull request as ready for review November 8, 2023 04:38
@obi1kenobi obi1kenobi merged commit abc6a57 into main Nov 8, 2023
31 checks passed
@obi1kenobi obi1kenobi deleted the ignore_doc_hidden_items branch November 8, 2023 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: raise the bar on expectations
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant