ron breaking changes

cargo

47 curated breaking changes across major versions of ron. Use this as a migration checklist before bumping dependencies.

47
changes
Breaking changes by transition
  • 0.8.1 \u2192 0.9.0api

    Add `escape_strings` option to `PrettyConfig` to allow serialising with or without escaping ([#426](https://github.com/ron-rs/ron/pull/426))

  • 0.8.1 \u2192 0.9.0api

    [Non-API] Breaking: Treat `Some` like a newtype variant with `unwrap_variant_newtypes` ([#465](https://github.com/ron-rs/ron/pull/465))

  • 0.8.1 \u2192 0.9.0breaking

    Fix deserialising deserialising `A('/')` into a `ron::Value` ([#465](https://github.com/ron-rs/ron/pull/465))

  • 0.8.1 \u2192 0.9.0breaking

    Fix serialising `None` inside a stack of nested `Option`s with `#![enable(implicit_some)]` enabled ([#465](https://github.com/ron-rs/ron/pull/465))

  • 0.8.1 \u2192 0.9.0breaking

    Fix serialising raw strings containing a literal backslash ([#465](https://github.com/ron-rs/ron/pull/465))

  • 0.8.1 \u2192 0.9.0breaking

    Fix parsing `r` as a self-describing struct or variant name (and not the start of a raw string) ([#465](https://github.com/ron-rs/ron/pull/465))

  • 0.8.1 \u2192 0.9.0breaking

    Fix issue [#321](https://github.com/ron-rs/ron/issues/321) and allow parsing UTF-8 identifiers ([#488](https://github.com/ron-rs/ron/pull/488))

  • 0.8.1 \u2192 0.9.0breaking

    Add support for byte literals as strongly typed unsigned 8-bit integers ([#438](https://github.com/ron-rs/ron/pull/438))

  • 0.8.1 \u2192 0.9.0breaking

    Fix issue [#241](https://github.com/ron-rs/ron/issues/241) and allow parsing numbers with explicit type suffixes, e.g. `1u8` or `-1f32` ([#481](https://github.com/ron-rs/ron/pull/481))

  • 0.8.1 \u2192 0.9.0breaking

    Add `ron::value::RawValue` helper type which can (de)serialize any valid RON ([#407](https://github.com/ron-rs/ron/pull/407))

  • 0.8.1 \u2192 0.9.0breaking

    Allow parsing floating point literals with underscores ([#481](https://github.com/ron-rs/ron/pull/481))

  • 0.8.1 \u2192 0.9.0breaking

    Fix issue [#445](https://github.com/ron-rs/ron/issues/445) and allow parsing `+unsigned` as an unsigned int ([#479](https://github.com/ron-rs/ron/pull/479))

  • 0.8.1 \u2192 0.9.0breaking

    Breaking: Change `PrettyConfig` so that `new_line`, `indentor` and `separator` are all `Cow<'static, str>` instead of `String` ([#546](https://github.com/ron-rs/ron/pull/546))

  • 0.8.1 \u2192 0.9.0breaking

    **Format-Breaking:** Switch from base64-encoded to Rusty byte strings, still allow base64 deserialising for now ([#438](https://github.com/ron-rs/ron/pull/438))

  • 0.8.1 \u2192 0.9.0breaking

    Add `compact_maps` and `compact_structs` options to `PrettyConfig` to allow serialising maps and structs on a single line ([#448](https://github.com/ron-rs/ron/pull/448))

  • 0.8.1 \u2192 0.9.0breaking

    Add minimal support for `#[serde(flatten)]` with roundtripping through RON maps ([#455](https://github.com/ron-rs/ron/pull/455))

  • 0.8.1 \u2192 0.9.0breaking

    Add minimal roundtripping support for `#[serde(tag = "tag")]`, `#[serde(tag = "tag", content = "content")]`, and `#[serde(untagged)]` enums ([#451](https://github.com/ron-rs/ron/pull/451))

  • 0.8.1 \u2192 0.9.0breaking

    Breaking: Expand the `value::Number` enum to explicitly encode all possible number types ([#479](https://github.com/ron-rs/ron/pull/479))

  • 0.8.1 \u2192 0.9.0breaking

    Add `number_suffixes` option to `PrettyConfig` to allow serialising numbers with their explicit type suffix, e.g. `42i32` ([#481](https://github.com/ron-rs/ron/pull/481))

  • 0.8.1 \u2192 0.9.0breaking

    Allow `ron::value::RawValue` to capture any whitespace to the left and right of a ron value ([#487](https://github.com/ron-rs/ron/pull/487))

  • 0.8.1 \u2192 0.9.0breaking

    Breaking: Enforce that ron always writes valid UTF-8 ([#488](https://github.com/ron-rs/ron/pull/488))

  • 0.8.1 \u2192 0.9.0breaking

    Add convenient `Value::from` impls ([#498](https://github.com/ron-rs/ron/pull/498))

  • 0.8.1 \u2192 0.9.0breaking

    Add new extension `explicit_struct_names` which requires that struct names are included during deserialization ([#522](https://github.com/ron-rs/ron/pull/522))

  • 0.8.1 \u2192 0.9.0breaking

    Add new path-based field metadata serialization support via `PrettyConfig` ([#544](https://github.com/ron-rs/ron/pull/544))

  • 0.8.0 \u2192 0.8.1api

    [Non-API] Breaking: Fix issue [#307](https://github.com/ron-rs/ron/issues/307) stack overflow with explicit recursion limits in serialising and deserialising ([#420](https://github.com/ron-rs/ron/pull/420))

  • 0.8.0 \u2192 0.8.1api

    [Non-API] Breaking: Bump `bitflags` dependency to 2.0, changes `serde` impls of `Extensions` ([#443](https://github.com/ron-rs/ron/pull/443))

  • 0.8.0 \u2192 0.8.1breaking

    Bump MSRV to 1.64.0 and bump dependency: `indexmap` to 2.0 ([#459](https://github.com/ron-rs/ron/pull/459))

  • 0.8.0 \u2192 0.8.1breaking

    Fix issues [#277](https://github.com/ron-rs/ron/issues/277) and [#405](https://github.com/ron-rs/ron/issues/405) with `Value::Map` `IntoIter` and extraneous item check for `Value::Seq` ([#406](https://github.com/ron-rs/ron/pull/406))

  • 0.8.0 \u2192 0.8.1breaking

    Fix issue [#401](https://github.com/ron-rs/ron/issues/401) with correct raw struct name identifier parsing ([#402](https://github.com/ron-rs/ron/pull/402))

  • 0.8.0 \u2192 0.8.1breaking

    Fix issue [#410](https://github.com/ron-rs/ron/issues/410) trailing comma parsing in tuples and `Some` ([#412](https://github.com/ron-rs/ron/pull/412))

  • 0.8.0 \u2192 0.8.1breaking

    Error instead of panic when deserializing non-identifiers as field names ([#415](https://github.com/ron-rs/ron/pull/415))

  • 0.8.0 \u2192 0.8.1breaking

    Fix issue [#423](https://github.com/ron-rs/ron/issues/423) deserialising an identifier into a borrowed str ([#424](https://github.com/ron-rs/ron/pull/424))

  • 0.8.0 \u2192 0.8.1breaking

    Bump MSRV to 1.57.0 and bump dependency: `base64` to 0.20 ([#431](https://github.com/ron-rs/ron/pull/431))

  • 0.8.0 \u2192 0.8.1breaking

    Bump dependency `base64` to 0.21 ([#433](https://github.com/ron-rs/ron/pull/433))

  • 0.8.0 \u2192 0.8.1breaking

    Depend on `serde_derive` directly to potentially enable more compilation parallelism ([#441](https://github.com/ron-rs/ron/pull/441))

  • 0.8.0 \u2192 0.8.1breaking

    Add `Map::retain` method ([#460](https://github.com/ron-rs/ron/pull/460))

  • 0.11.0 \u2192 0.12.0breaking

    Fixed untagged enum deserialisation for serde >= 1.0.220 with better serde content detection ([#582](https://github.com/ron-rs/ron/pull/582))

  • 0.11.0 \u2192 0.12.0breaking

    Added `into_inner()` method to `ron::ser::Serializer` to retrieve the inner writer. ([#588](https://github.com/ron-rs/ron/pull/588))

  • 0.11.0 \u2192 0.12.0breaking

    **Format-Breaking:** Remote base64-encoded byte strings deserialisation, replaced by Rusty byte strings in v0.9.0 ([#566](https://github.com/ron-rs/ron/pull/566))

  • 0.11.0 \u2192 0.12.0removed

    Removed the `base64` dependency. ([#566](https://github.com/ron-rs/ron/pull/566))

  • 0.11.0 \u2192 0.12.0removed

    Breaking: Removed the `ron::error::Error::Base64Error` variant. ([#566](https://github.com/ron-rs/ron/pull/566))

  • 0.10.1 \u2192 0.11.0behavior

    Breaking: Added `no_std` support via a new `std` feature (enabled by default). With default features disabled, you must enable the `std` feature to access `de::from_reader`, and the `std::io` operations on `Options`, such as `from_reader`, `from_reader_seed`, `to_io_writer`, and `to_io_writer_pretty` ([#567](https://github.com/ron-rs/ron/pull/567))

  • 0.10.1 \u2192 0.11.0breaking

    Breaking: Fixed (again) `ron::value::Number` to ensure it is non-exhaustive, to avoid breaking `match`es when feature unification enables more of its variants than expected ([#568](https://github.com/ron-rs/ron/pull/568))

  • 0.10.1 \u2192 0.11.0breaking

    Breaking: `SpannedError` now stores the full error span in span: Span { start: Position, end: Position }`, to facilitate, e.g., language server highlighting of syntax errors.

  • 0.10.1 \u2192 0.11.0breaking

    Add a new example `file_read_write_vec.rs` for reading and writing `Vec<T>` to/from files. ([#573](https://github.com/ron-rs/ron/pull/573))

  • 0.9.0 \u2192 0.10.1breaking

    Add `ron::Options::to_io_writer` and `ron::Options::to_io_writer_pretty` to allow writing into an `io::Writer` ([#561](https://github.com/ron-rs/ron/pull/561))

  • 0.9.0 \u2192 0.10.1breaking

    Breaking: `ron::value::Number` is now non-exhaustive, to avoid breaking `match`es when feature unification enables more of its variants than expected ([#564](https://github.com/ron-rs/ron/pull/564))

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/ron
ron breaking changes — Cargo migration guide | DepScope