Skip to content

Latest commit

 

History

History
273 lines (223 loc) · 17.5 KB

CHANGELOG.md

File metadata and controls

273 lines (223 loc) · 17.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

[0.9.0] - 2023-09-??

API Changes

  • Add ron::value::RawValue helper type which can (de)serialize any valid RON (#407)
  • Add escape_strings option to PrettyConfig to allow serialising with or without escaping (#426)
  • Add compact_maps and compact_structs options to PrettyConfig to allow serialising maps and structs on a single line (#448)
  • Add minimal support for #[serde(flatten)] with roundtripping through RON maps (#455)
  • Add minimal roundtripping support for #[serde(tag = "tag")], #[serde(tag = "tag", content = "content")], and #[serde(untagged)] enums (#451)
  • Breaking: Expand the value::Number enum to explicitly encode all possible number types (#479)
  • Add number_suffixes option to PrettyConfig to allow serialising numbers with their explicit type suffix, e.g. 42i32 (#481)
  • Allow ron::value::RawValue to capture any whitespace to the left and right of a ron value (#487)
  • Breaking: Enforce that ron always writes valid UTF-8 (#488)
  • Add convenient Value::from impls (#498)
  • Add new extension explicit_struct_names which requires that struct names are included during deserialization (#522)
  • Add new path-based field metadata serialization support via PrettyConfig (#544)
  • Breaking: Change PrettyConfig so that new_line, indentor and separator are all Cow<'static, str> instead of String (#546)

Format Changes

  • [Non-API] Breaking: Treat Some like a newtype variant with unwrap_variant_newtypes (#465)
  • Allow parsing floating point literals with underscores (#481)
  • Format-Breaking: Switch from base64-encoded to Rusty byte strings, still allow base64 deserialising for now (#438)
  • Fix issue #241 and allow parsing numbers with explicit type suffixes, e.g. 1u8 or -1f32 (#481)
  • Add support for byte literals as strongly typed unsigned 8-bit integers (#438)
  • Fix issue #321 and allow parsing UTF-8 identifiers (#488)

Bug Fixes

  • Fix parsing r as a self-describing struct or variant name (and not the start of a raw string) (#465)
  • Fix serialising raw strings containing a literal backslash (#465)
  • Fix serialising None inside a stack of nested Options with #![enable(implicit_some)] enabled (#465)
  • Fix deserialising deserialising A('/') into a ron::Value (#465)
  • Fix issue #445 and allow parsing +unsigned as an unsigned int (#479)
  • Fix serialising reserved identifiers true, false, Some, None, inf[f32|f64], and Nan[f32|f64] (#487)
  • Disallow unclosed line comments at the end of ron::value::RawValue (#489)
  • Fix parsing of struct/variant names starting in None, Some, true, or false (#499)
  • Fix deserialising owned string field names in structs, allowing deserializing into serde_json::Values (#511)

Miscellaneous

  • Add CIFuzz GitHub action (#429)
  • Update the arbitrary fuzzer to check arbitrary serde data types, values, and ron::ser::PrettyConfigs (#465)
  • Add a benchmark for PRs that runs over the latest fuzzer corpus (#465)
  • Fuzz serde enum representation and flatten attributes and collect current limitations in ron and serde (#502)
  • Update base64 dependency to version 0.22 (#529)

[0.8.1] - 2023-08-17

  • Fix issues #277 and #405 with Value::Map IntoIter and extraneous item check for Value::Seq (#406)
  • Fix issue #401 with correct raw struct name identifier parsing (#402)
  • Fix issue #410 trailing comma parsing in tuples and Some (#412)
  • Error instead of panic when deserializing non-identifiers as field names (#415)
  • [Non-API] Breaking: Fix issue #307 stack overflow with explicit recursion limits in serialising and deserialising (#420)
  • Fix issue #423 deserialising an identifier into a borrowed str (#424)
  • Bump MSRV to 1.57.0 and bump dependency: base64 to 0.20 (#431)
  • Bump dependency base64 to 0.21 (#433)
  • Depend on serde_derive directly to potentially enable more compilation parallelism (#441)
  • [Non-API] Breaking: Bump bitflags dependency to 2.0, changes serde impls of Extensions (#443)
  • Add Map::retain method (#460)
  • Bump MSRV to 1.64.0 and bump dependency: indexmap to 2.0 (#459)

[0.8.0] - 2022-08-17

  • Bump dependencies: bitflags to 1.3, indexmap to 1.9 (#399)
  • Add integer128 feature that guards i128 and u128 (#304, #351)
  • Fix issue #265 with better missing comma error (#353)
  • Fix issue #301 with better error messages (#354)
  • Fix issue #337 by removing decimal_floats PrettyConfig option and unconditional decimals in floats (#363)
  • Fix issue #203 with full de error positioning (#356)
  • Expand the ron::Error enum to distinguish serde errors like NoSuchEnumVariant and MissingStructField with error positioning (#394)
  • Bump MSRV to 1.56.0 (#396)

[0.7.1] - 2022-06-15

  • Add struct_names option to PrettyConfig (#329)
  • Fix newtype variant unwrapping around enum, seq and map (#331)
  • Implement unwrap_newtypes extension during serialization (#333)
  • Implement unwrap_variant_newtypes extension during serialization (#336)
  • Add compact_arrays (#299) and separator options to PrettyConfig (#349)
  • Fix issue #338 value map roundtrip (#341)
  • Fix issue #289 enumerate_arrays comments (#344)
  • Report struct name in expected struct error (#342)
  • Add Options builder to configure the RON serde roundtrip (#343)
  • Fix issue #367 with eager implicit some (#368)
  • Fix issue #359 with DeserializeSeed support (#360)
  • Fix issue #370 with FromStr-equivalent float EBNF and Error::FloatUnderscore (#371)
  • Fix issue #374 extraneous .0 for small floats (#372)
  • Deprecate Serializer::new (#382)

[0.7.0] - 2021-10-22

  • Add unwrap_variant_newtypes extension (#319)
  • Change MSRV to 1.36

[0.6.6] - 2021-10-21

  • Fix serialization of raw identifiers (#323)

[0.6.5] - 2021-09-09

  • support serde renames that start with a digit

[0.6.3] - 2020-12-18

  • bump base64 dependency to 0.13

[0.6.2] - 2020-09-09

  • Added decimal_floats PrettyConfig option, which always includes decimals in floats (1.0 vs 1) (#237)
  • Fixed EBNF grammar for raw strings (#236, unsigned integers (#248), and nested comments (#272)
  • Added ser::to_writer_pretty (#269)
  • Sped up parsing using table predicates (#276)

[0.6.1] - 2020-07-14

Fixes

  • Fix array formatting regression (#260)

[0.6.0] - 2020-05-21

Additions

  • Implement integer support in Numbers (#210)
  • Port ser::Serializer to io::Write (#206)
  • Support i128 and u128 (#219)
  • Allow pretty ser to work with implicit-some extension (#182)
  • Make PrettyConfig future-proof (#173)
  • Use indexmap to preserve order (optional) (#172)
  • Add tests for different enum representations (#166)
  • Implement inf, -inf and NaN handling (#163)
  • Add VS code language tooling (#160)
  • Be smarter about integer deserialization (#157)

Fixes

  • Fix parsing of borrowed strings (#228)
  • Fix depth limit test for off-by-one fix (#225)
  • Remove deprecated uses of Error::description (#208)
  • Preserve ordering of map sequences (#197)
  • Remove unneeded Neg requirement for signed_integer (#193)
  • Ensure "Untagged tuple-like enum variants not deserializing correctly……" is fixed (#170)

Changes

  • Update serde requirement to 1.0.60 (#226)
  • Replace Travis with GitHub actions (#223)
  • Rename format_doc_comments to format_code_in_doc_comment
  • Update base64 requirement from 0.11 to 0.12 (#204)
  • Update base64 requirement from 0.10 to 0.11 (#195)
  • Update serde_bytes to 0.11 (#164)

[0.5.1] - 2019-04-05

Fixes

  • Increase source compability from Rust 1.34.0 to 1.31.0 by not relying on as _ imports (#156)

[0.5.0] - 2019-03-31

Additions

  • Don't insert new lines in empty arrays or maps (#150)

Changes

  • Transition to Rust 2018 (#149)

[0.4.2] - 2019-03-01

Additions

  • Add integer check for deserializer (#148)
  • Implement Value::into_rust (#146)

[0.4.1] - 2019-01-09

Additions

  • Allow underscores in integers (#135)
  • Added extension documentation (#130)

Changes

  • Move sublime text syntax to separate repo (#138)
  • Update base64 crate dependency to 0.10 (#137)

[0.4.0] - 2018-08-11

Fixes

  • Handle tuple deserialization in deserialize_any properly (#124)

Changes

  • Add raw string syntax to grammar (#125)
  • Reexport Value at root (#120)

[0.3.0] - 2018-06-15

Additions

  • serde_bytes fields to be encoded using base64. (#109)

Fixes

  • Allow raw string literals (#114)

Changes

  • Now depends on base64 0.9.2.

[0.2.2] - 2018-05-19

Fixes

  • Allow whitespace in newtype variants (#104)

[0.2.1] - 2018-05-04

Additions

  • Add multi-line comments (#98)

Fixes

  • Allow more whitespace inside newtypes (#103)

[0.2.0] - 2018-02-14

Additions

  • Limit the pretty depth (#93)
  • Add support for \x?? and improve unicode escapes (#84)

[0.1.7] - 2018-01-24

Additions

  • Deep array indexing (#88)
  • Pretty sequence indexing (#86)
  • Add unicode support for chars (#80)
  • Add support for hex, oct and bin numbers (#78)
  • Allow implicit Some (#75)
  • Add grammar specification (#73)
  • Add extension support and first extension, unwrap_newtypes (#72)

Fixes

  • Directly serialize f32 (#81)

[0.1.6] - 2018-01-24

Additions

  • Implement sequence indexing (#87)

Fixes

  • Remove ident variable from Sublime syntax (#71)

[0.1.5] - 2017-12-27

Additions

  • Allow creating a new serializer (#70)
  • Sublime syntax highlighter (#67)
  • Add support for integers (#65)
  • Implement Deserializer for Value (#64)

[0.1.4] - 2017-10-12

Additions

  • Add PrettyConfig (#61)
  • impl deserialize_ignored_any for id (#60)

Fixes

  • Fix deserializing of ignored fields (#62)

[0.1.3] - 2017-10-06

Fixes

  • Removed indentation from tuple variant pretty encoder (#57)

[0.1.2] - 2017-10-06

Fixes

  • Fix decoding of string literals (#56)
  • Add Value and implement deserialize_any (#53)

[0.1.1] - 2017-08-07

Fixes

  • Be more permissive wrt whitespace decoding (#41)

Additions

  • Add utility function to deserialize from std::io::Read (#42)

[0.1.0] - 2015-08-04

Changes

  • Reorganize deserialization modules (#30)
  • Rework deserializer not to require pom crate #27, (#38)
  • Dual license under Apache 2.0 and MIT (#26)

Fixes

  • Use CRLF for serializatio on Windows (#32)
  • Fix bors-ng to work with travis (#31)
  • Handle escapes (#23)

Additions

  • Improve error reporting (#29)
  • Allow decoding of comments (#28)
  • Add pretty option to serializer (#25)
  • Add roundtrip tests (#24)

[0.0.1] - 2015-07-30

Initial release