Skip to content

Latest commit

 

History

History
635 lines (471 loc) · 35.6 KB

File metadata and controls

635 lines (471 loc) · 35.6 KB

v0.57.3 - 2026-03-12

Documentation Improvement: Fix doctest that didn't compile.

v0.57.2 - 2026-03-12

New Feature: Add the rkyv_0_8 Cargo feature, to derive traits for the rkyv zero-copy deserialization framework (rust#153283).

v0.57.1 - 2026-03-04

New Method: Add ItemEnum::ItemKind method (rust#153279).

Packaging Improvement: Don't package development scripts (#56).

v0.57.0 - 2025-11-22

Breaking Change: Add ExternalCrate::path field. This can be used to enable robust resolution of external crates (rust#149043).

v0.56.0 - 2025-09-05

Breaking Change: Add ItemKind::Attribute variant (rust#142472).

v0.55.0 - 2025-08-02

Breaking Change: Add Attribute::MacroUse variant. This means #[macro_use] is no longer represented by Attribute::Other (rust#144700).

v0.54.0 - 2025-07-17

Breaking Change: Change Item::attrs from Vec<String> to Vec<Attribute>. Attribute is a new enum that contains variants for different attributes, and a catch-all Other variant. This will mean rustdoc-json consumers won't need to parse common attributes. Changes to the stringified representation in Attribute::Other won't cause a new FORMAT_VERSION (rust#142936).

v0.53.0 - 2025-06-23

No Changes: Due to a mistake, we bumped the FORMAT_VERSION without changing rustdoc's output.

v0.52.0 - 2025-06-23

Breaking Change(??): #[must_use = "text"] in Item::attrs is now "#[attr = MustUse {reason: \"text\"}]", instead of "#[must_use = \"text\"]" (rust#142780).

v0.51.0 - 2025-06-23

Breaking Change: Change AssocItemConstraint::args and Type::QualifiedPath::args from GenericArgs to Option<Box<GenericArgs>>. This is consistent with Path::args, and smaller on disk (rust#142502).

v0.50.0 - 2025-06-23

Breaking Change(??): #[cold] in Item::attrs is now "#[attr = Cold]", instead of "#[cold]" (rust#142491).

v0.49.0 - 2025-06-23

Breaking Change(??): #[optimize(size)] in Item::attrs is now "#[attr = Optimize(Size)]", instead of "#[optimize(size)]" (rust#138291).

v0.48.0 - 2025-06-19

Breaking Change(??): #[inline] in Item::attrs as "#[attr = Inline(Hint)]", instead of "#[inline]" (rust#138165).

Note

Due to a mistake, format version 47/rustdoc-types 0.47.0 was skipped, and will never exist. See here for details.

v0.46.1 - 2025-06-05

Build Time Improvement: Depend separately on serde and serde_derive (rather than depending on serde with the "derive" feature). This lets them be built in parallel, yielding faster compile times (#49, rust#141989).

v0.46.0 - 2025-06-03

Versioning Change: The crate version now corresponds to the FORMAT_VERSION constant. (#24)

Feature: Id now implements Ord and PartialOrd, making it usable as a key in a BTreeMap (rust#141898).

Breaking Change(??): Item::attrs now always includes #[repr]. No changes were made to the schema but the format version has been bumped, as this may effect consuming tools regardless (rust#141126).

Documentation Improvements: Fixed some false docs (rust#141364).

v0.41.0 - 2025-04-20

Breaking Change: Make Span::begin and Span::end consistently one-indexed for both line and column (rust#139919). Previously this was incorrectly documented both line and column being zero-indexed, but line was actually one-indexed (rust#139906).

No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.

v0.40.0 - 2025-04-19

Breaking Change: Add Crate::target field with information about the target and its features (rust#139393).

v0.39.0 - 2025-03-24

Breaking Change: Change format of Item::attrs for #[repr(..)] from HIR debug printing to how they're written in source-code. For example #[attr = Repr([ReprC, ReprInt(SignedInt(I8))])]) would now be represented as #[repr(C,i8)] (rust#138018).

This somewhat undoes v0.36.0.

No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.

v0.38.0 - 2025-03-16

Breaking Change: Add variant GenericArgs::ReturnTypeNotation to support return type notation (rust#137956).

v0.37.0 - 2025-03-14

Breaking Change: Change GenericBound::Use from Vec<String> to Vec<PreciseCapturingArg>, a new enum (rust#138109).

v0.36.0 - 2025-02-26

Breaking Change: Change format of Item::attrs from e.g. "#[inline]" to e.g. #[attr="Inline(Hint)"] which is equivalent to the hir pretty-printing of attributes (rust#135726).

This is result of a refractoring of how rustc represents attributes. There will be a change (at some point) to make them easier to use in rustdoc-json. See rust#137645 for details.

No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.

v0.35.0 - 2025-01-24

Breaking Change: Rename the Path::name field to Path::path, and make it have the entire path. This effectively reverts the previous release, as it was not possible for many consumers to migrate (rust#135799).

v0.34.0 - 2025-01-15

Breaking Change: The Path::name field now only holds item name rather than the full path. Users needing the full path can find it in the Crate::paths map (rust#134880).

No changes were made to the schema (i.e. the public api for this crate is unchanged), but the format version has been bumped, as this may effect consuming tools regardless.

v0.33.0 - 2024-12-03

Breaking Change: Add new is_unsafe field in Static struct (rust#133715).

v0.32.2 - 2024-10-23

Library Improvement: ItemKind, TraitBoundModifier, and MacroKind all now implement Copy (rust#131976).

v0.32.1 - 2024-10-20

New Feature: The optional rustc-hash cargo feature has been added. This changes the hashing algorithm used to a speedy non-cryptographic hashing algorithm also used in rustc. This has lead to modest but appreciable performance gains for some consumers (#42, rust#131936).

v0.32.0 - 2024-10-17

Breaking Change: Rename Trait::is_object_safe to is_dyn_compatible. This is a part of a language wide rename to make the term explain its meaning (rust#131595).

v0.31.0 - 2024-10-13

Breaking Change: The Id type now wraps a u32 instead of a String. The should hopefully increase performance (rust#130078).

Documentation Improvement: Remove false claim from ProcMacro::helpers docs (rust#130939).

v0.30.0 - 2024-09-13

Breaking Change: Many structs and fields have been renamed (rust#128667):

  • Import is now Use, to better reflect the syntax and the reference.
  • TypeBinding is now AssocItemConstraint, to reflect that it can also work on associated constants, and that it can either require the associated item to equal a term, or satisfy bounds.
    • Similarly, TypeBindingKind is now AssocItemConstraintKind
    • bindings has been renamed to constraints on GenericArgs::AngleBracketed
  • ForeignType has been renamed to ExternType, because that's what the feature is called. "Foreign" refers to types that aren't from the current crate, whereas Extern Types are entirely opaque to the type system (and may be in the current crate).
  • ItemEnum::AssocConst and ItemEnum::AssocType's default field has been renamed to value, to clarify that they can appear in both an impl and trait item.
  • Header is now FunctionHeader, to be clearer what it is.
  • FnDecl is now FunctionSignature, as it's also used for FunctionPointer types (and not just function items).
    • decl field is now sig
  • Boolean fields are now is_ or has_ prefixed for clarity:
    • fields_stripped is now has_fields_stripped
    • variants_stripped is now has_stripped_variants
    • const_ is now is_const
    • async_ is now is_async
    • unsafe_ is now is_unsafe
    • synthetic is now is_synthetic
    • mutable is now is_mutable
    • c_variadic is now is_c_variadic
    • negative is now is_negative
    • glob is now is_glob

v0.29.1 - 2024-08-13

Documentation Improvements: Typo fixes (rust#128903, #29).

v0.29.0 - 2024-08-01

Note

Due to a mistake, this version was never published to crates.io. Users can use v0.29.1 instead.

Breaking Change: Removed OpaqueTy, ItemKind::OpaqueTy and ItemEnum::OpaqueTy. These were only generated with rarely used nightly features, so almost all documents will be unaffected (rust#127276).

v0.28.1 - 2024-08-01

Documentation Improvements: The library is now (almost) entirely documented (rust#127290)!

v0.28.0 - 2024-07-18

Breaking Change: Add GenericBound::Use for the (currently unstable) precise_capturing feature (rust#127632).

v0.27.0 - 2024-07-04

Breaking Change: WherePredicate::RegionPredicate has been renamed to LifetimePredicate, to avoid compiler-internal terminology. The bounds field has been renamed to outlives, and changed from Vec<GenericBound> to Vec<String>, because the only bound that lifetimes can have is that they outlife other lifetimes (rust#127289).

v0.26.0 - 2024-06-06

Breaking Change: Remove type_ from Constant, and add it to ItemEnum::Constant (rust#125958).

Documentation Improvements: rust#125130, rust#124322.

v0.25.0 - 2024-04-19

Breaking Change: Add Type::Pat for unstable pattern types. (rust#120131)

v0.24.0 - 2023-12-23

Breaking Change: Trait now includes the is_object_safe field. (rust#119246)

Internal Improvement: The scripts to generate the changelog have been revamped to allow hand-written information in the changelog, and to make the release process easier.

v0.23.0 - 2023-08-23

Breaking Change: Typedef has been renamed to TypeAlias, as this is what people (and the reference) generally call these items. (rust#115078)

v0.22.0 - 2023-05-23

Breaking Change: All enums now use external tagging. No change is required to move to this version (all all the types are the same), but it won't be able to read JSON files from older rustdoc versions, as enums will be represented differently. This change allows using non-self-describing serde serializers (like bincode), although rustdoc itself won't generate these. (rust#111427)

v0.21.0 - 2023-05-13

Breaking Change: Type::QualifiedPath.trait_ is now an Option<Path> (instead of path). This is to support the (currently unstable) inherent associated types feature. (rust#109410)

v0.20.0 - 2023-01-03

Breaking Change: Variant has been split into Variant and VariantKind, so the Discriminant can always be reported. Previously, it could only be reported for a plain enum variant (i.e. one with no fields or braces). (rust#106354)

v0.19.0 - 2022-11-21

v0.18.0 - 2022-09-27

v0.17.0 - 2022-09-08

v0.16.0 - 2022-09-07

v0.15.0 - 2022-09-05

v0.14.0 - 2022-08-15

v0.13.1 - 2022-08-10

v0.13.0 - 2022-08-09

v0.12.0 - 2022-07-18

v0.11.0 - 2022-05-18

v0.10.0 - 2022-03-14

v0.9.0 - 2022-03-12

v0.8.0 - 2022-03-04

v0.7.0 - 2022-02-24

v0.6.0 - 2022-02-01

v0.5.0 - 2021-10-16

v0.4.0 - 2021-09-06

v0.3 - 2021-06-25

v0.2.0 - 2021-01-23

v0.1.0 - 2020-12-06