Open
Description
Blockers
- Re-license as Apache/MIT? #84
- Settle on long term name #47
- What should the CLI look like? #86
- Add
--explain
flag for lints #49 - Add
--base-version
argument #50 - Add
--base-git <repo>
argument #51 - Add
--base-manifest-path <path>
argument #52 - Allow selecting the packages to check with common
--workspace
,--package
,--exclude
flags #53 - Mark the rustdoc flags as perma-unstable, behind a
-Z
flag #54 - Make default baseline the previous stable version in the registry #55
- Lint level control #58
- Manifest checks #48 so we can verify the CLI is general enough
- Feature parity with cargo-semverver; major blockers here:
- private/hidden features rust-lang/cargo#10882 (see Generating rustdoc with
--all-features
exposes APIs in an unstable feature #321 for context) - stable/unstable/nightly-only features rust-lang/cargo#10881 (see Add the ability to exclude experimental features from consideration #315 for context)
- Tracking issue for RFC 1977: public & private dependencies rust-lang/rust#44663
- stabilized existence of rustdoc JSON (unstable format is okay) — RFC in progress
Nice-to-haves
- Changelog output mode #60
- Report "minimum new version" in output #56
- Added deprecated attribute API lint, minor incompatibility level #57
- New API entry lint, minor incompatibility level #59
Open questions
- Integrated into
cargo
or separate rustup component like clippy? - How does the process for making new rustdoc JSON formats work w.r.t. cargo-semver-checks merged into cargo?
- PRs to
rust-lang/rust
run submodule test suites, like cargo's. Presumably they would test the mergedcargo-semver-checks
as well. - If a PR to
rust-lang/rust
emits a new rustdoc JSON format version,cargo-semver-checks
would need to be updated to support it. - That appears to be a chicken-and-egg problem: the PR won't pass, so no new versions of
rustdoc-types
will exist, so no newcargo-semver-checks
-> cycle.
- PRs to
Things to remove
- Leading
_
is hidden (blocked on private/hidden features rust-lang/cargo#10882) -
bench
,nostd
,no_std
,private
,unstable
,unstable[-_].*
,nightly
(blocked on private/hidden features rust-lang/cargo#10882, stable/unstable/nightly-only features rust-lang/cargo#10881) -
--default-features
,--only-explicit-features
Merge Proposal (example):
Motivation
Drawbacks
Behavior
Alternatives
Prior Art
Future Possibilities
Metadata
Metadata
Assignees
Labels
No labels