prost-build breaking changes

cargo

13 curated breaking changes across major versions of prost-build. Use this as a migration checklist before bumping dependencies.

13
changes
Breaking changes by transition
  • v0.14.0 \u2192 v0.14.1breaking

    prost: Relax Message Debug trait bound (#1147) BREAKING CHANGE: `trait Debug` was a supertrait of `trait Message`. This is no longer required by `prost`. If your code relies on `trait Debug` being implemented for every `impl Message`, you must now explicitly state that you require both Debug and Message. For example: `where M: Debug + Message`

  • v0.14.0 \u2192 v0.14.1breaking

    prost: Remove prost-derive feature (#1247) BREAKING CHANGE: Feature flag `prost-derive` is renamed to `derive`. Please rename any usage of `prost-derive` feature in your `Cargo.toml`.

  • v0.14.0 \u2192 v0.14.1breaking

    prost-build: Prevent repeated fields to be boxed (#1237) BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as `Vec<Box<T>>`. Those fields are now simply typed as `Vec<T>` to prevent double indirection. The `boxed` configuration is effectively ignored for repeated fields.

  • v0.14.0 \u2192 v0.14.1breaking

    prost-build: Make `type_name_domain` cumulative (#1228) BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to `prost_build::Config::type_name_domain` are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

  • v0.14.0 \u2192 v0.14.1breaking

    prost-build: Derive Eq and Hash trait for messages where possible (#1175) BREAKING CHANGE: `prost-build` will automatically derive `trait Eq` and `trait Hash` for types where all field support those as well. If you manually `impl Eq` and/or `impl Hash` for generated types, then you need to remove the manual implementation. If you use `type_attribute` to `derive(Eq)` and/or `derive(Hash)`, then you need to remove those.

  • v0.13.5 \u2192 v0.14.0breaking

    prost: Relax Message Debug trait bound (#1147) BREAKING CHANGE: `trait Debug` was a supertrait of `trait Message`. This is no longer required by `prost`. If your code relies on `trait Debug` being implemented for every `impl Message`, you must now explicitly state that you require both Debug and Message. For example: `where M: Debug + Message`

  • v0.13.5 \u2192 v0.14.0breaking

    prost: Remove prost-derive feature (#1247) BREAKING CHANGE: Feature flag `prost-derive` is renamed to `derive`. Please rename any usage of `prost-derive` feature in your `Cargo.toml`.

  • v0.13.5 \u2192 v0.14.0breaking

    prost-build: Emit `rerun` commands (#1140) BREAKING CHANGE: Previously `cargo` assumed it had to rerun `build.rs` if any files in the project changed. `prost-build` will now emit `rerun` commands, which means only the explicitly marked files cause a rerun. If your `build.rs` is dependent on any other file paths than those given to `prost-build`, then your `build.rs` needs to emit `rerun` commands as well.

  • v0.13.5 \u2192 v0.14.0breaking

    prost-build: Prevent repeated fields to be boxed (#1237) BREAKING CHANGE: A repeated field that is manually marked as boxed was typed as `Vec<Box<T>>`. Those fields are now simply typed as `Vec<T>` to prevent double indirection. The `boxed` configuration is effectively ignored for repeated fields.

  • v0.13.5 \u2192 v0.14.0breaking

    prost-build: Make `type_name_domain` cumulative (#1228) BREAKING CHANGE: The configuration for domain names of messages is now cumulative. All calls to `prost_build::Config::type_name_domain` are now concatenated. The previous behavior was that only the arguments of the last call were used. If you do multiple calls to type_name_domain, you need to remove all but the last call to maintain the same behavior.

  • v0.12.6 \u2192 v0.13.0breaking

    derive Copy trait for messages where possible (#950) `prost-build` will automatically derive `trait Copy` for some messages. If you manually implement `Copy` you should remove your implementation.

  • v0.12.6 \u2192 v0.13.0breaking

    Change generated functions signatures to remove type parameters (#1045) The function signature of `trait Message` is changed to use `impl Buf` instead of a named generic type. If you implement `trait Message`, you should change the function signature.

  • v0.12.6 \u2192 v0.13.0breaking

    Lightweight error value in TryFrom<i32> for enums (#1010) When a `impl TryFrom<i32>` is generated by `prost` derive macros, it will now return the error type `UnknownEnumValue` instead of `DecodeError`. The new error can be used to retreive the integer value that failed to convert.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/prost-build