- Also include default trait methods in impls, even if not overridden, just like in rustdoc HTML.
- Sort rendered attributes so rendering is determinstic and does not change with rustdoc JSON changes.
- Bump deps (to stop using deprecated
assert_cmd::Command::cargo_bin()in tests).
- Support
nightly-2025-08-02and later.
- Support
nightly-2025-07-17and later.
- Support
nightly-2025-06-22and later.
- Don't panic on
resolver = 3inCargo.toml.
- Support
nightly-2025-03-24and later. - Restore old and correct
#[repr(...)]rendering
- Placeholder (not released at the moment).
- Placeholder (not released at the moment).
- Support
nightly-2025-02-26and later but use a quick-hack where#[repr(...)]is rendered as e.g.#[attr="Repr([ReprInt(UnsignedInt(U8))])")].
- Support precise capturing syntax in function return types:
-> impl Sized + use<'a, T>
- Do not render function arg names
""(nightly-2025-02-05and later)
- Support
nightly-2025-01-25and later.
- Render
_argument names in function declarations
- Render
?in front ofcore::marker::Sizedif applicable.
- Support
nightly-2024-10-18and later
- Support
nightly-2024-10-13and later
- Support
nightly-2024-09-10and later
- Support
nightly-2024-07-05 - Properly render lifetime bounds
- Move project from https://github.com/Enselic/cargo-public-api to https://github.com/cargo-public-api/cargo-public-api
- Render
pub consttypes in more cases, such as for arrays and tuples
- Don't panic when encountering constants without a type
- Support
nightly-2024-06-07and later
- Allow
stdoutandstderrof rustdoc JSON building to be captured with newrustdoc_json::Builder::build_with_captured_output(self, stdout: impl Write, stderr: impl Write)function - Make most CLI options global so they also work as subcommand args--package=...`
- Match
cargo's handling of spaces with--features
- Make diffing against published crate work when its
[package] nameis not the same as its[lib] name - Bump cargo-manifest from v0.13.0 to v0.14.0
- Use the
tracingcrate for debug logging and e.g.RUST_LOG=debugto activate
- Remove
cargo public-api --toolchain fooarg. Usecargo +foo public-apiinstead. - Include all subcommands in top-level
--helpoutput - Print a nice error message if
rustupis not inPATH - Update
cargo-manifestfrom0.12.0to0.13.0
- Fixup 'Avoid textual API diff when changing a trait impl to an auto-derived impl'
- Avoid textual API diff when changing inherent impl to auto-derived impl
- Add relevant
package.keywordsto our manifests
- Remove $ from README commands to ease copy-paste
- Support for
nightly-2023-08-25and later
- Handle when
[package]namediffers from[lib]name
- Support sparse crates.io registry index
- Print more informative error when we encounter a sparse crates.io index
- Change rendering of
implitems to include generic args of the implementor - Ignore
!when sortingimpls to makeSendandSyncorder stable - Rustdoc-JSON: Replace
-with_for binary package target
- Support
nightly-2023-05-24and later
- Prevent infinite RAM usage
- Interpret
cargo public-api diffascargo public-api diff latest - Remove the
public-apibin
- Enable
,as--omitvalue delimiter - Change
-s/--simplifiedto be usable up to 3 times - Introduce
public_api::Builder, deprecatePublicApi::from_rustdoc_json()andOptions - public-api: Rename
MINIMUM_NIGHTLY_VERSIONtoMINIMUM_NIGHTLY_RUST_VERSION - rustup-toolchain: Rename
ensure_installed()toinstall()and deprecateis_installed()
- Support installing the
cargo-public-apibin with a different name - Add explicit variants of
--simplifiedcalled--omit blanket-impls | auto-trait-impls | auto-derived-impls - Add
cargo public-api completions <SHELL>to generate shell completion scripts
- Support for selecting features with
cargo public-api diff x.y.z
- Fix RUSTSEC-2023-0003 / CVE-2023-22742 "git2 does not verify SSH keys
- Make
diff latestdiff highest semver version, not most recently published - When diffing, build rustdoc JSON with
--cap-lints allow - Deprecate
PublicApi::from_rustdoc_json_str()
- Group
impls better, make sorting more lexicographic - Properly group multiple inherent
impls
- README: Fix typo in compatibility matrix
- If
--simplifiedis passed twice, omit auto derivedimpls - Support
cargo public-api diff latestto diff against the latest published version - Fix rendering of bounds for Generic Associated Types
- Remove deprecated
--diffCLI - Remove
diff crate-name@0.1.0support, use-p crate-name diff 0.1.0instead - Put auto derived
impls - Bump minimum nightly version to
nightly-2023-01-04
- Group impl blocks together with their respective functions
- Get rid of
enum variantandstruct fieldprefixes - Upgrade all deps
- Add
rustdoc_json::Builder::package_target()to build for bin, test, bench, etc - Correctly determine JSON path for
Builder::package("foo@1.0.0")
- Interpret
--coloras--color=always - Deprecate legacy
--diffCLI and point to newdiffsubcommand instead - Support
--document-private-items - Derive
Cloneforrustdoc_json::Builder
- Add new CLI for diffing: a
diffsubcommand
- Include Blanket and Auto Trait
impls - Allow omitting package name when diffing against crates.io
For older releases, see https://github.com/cargo-public-api/cargo-public-api/releases/tag/v0.23.0 and earlier.