Skip to content

Releases: quartiq/miniconf

miniconf-v0.11.0

02 May 22:50
Compare
Choose a tag to compare

What's Changed

Full Changelog: miniconf-v0.10.1...miniconf-v0.11.0

Miniconf v0.10.0

22 Apr 14:50
412fbeb
Compare
Choose a tag to compare

Changed

  • [breaking] Python lib signatures have changed (Miniconf.create(), discover())
  • Python lib discovery timeout has been optimized to work well for both slow
    connections (high RTT) and fast ones
  • [breaking] The MQTT client does not own the miniconf settings struct anymore.
  • [breaking] handled_update() has been removed from the MQTT client in favor of validator/getter/setter callbacks.
  • [breaking] The MQTT client has been split into its own miniconf_mqtt crate.
  • [breaking] The attribute syntax has changed from #[tree(depth(1))] to #[tree(depth=1)].
  • [breaking] The default depth is 0, also in the case where a #[tree()] without depth has been specified.
  • [breaking] The traverse_by_key callback also receives the number of indices at the given level.
  • The trait methods are now generic over Keys and not over Iterator<Item: Key>.
    A blanket implementation has been provided.
  • JsonCoreSlash::{set,get}_json_by_indices() removed in favor of {get,set}_json_by_key().
  • [breaking] Error::PostDeserialization renamed to Error::Finalization.
  • [breaking] json-core removed from default features.
  • [breaking] Bumped MSRV to 1.70.0

Added

  • Python MQTT lib: Support for clearing a retained setting
  • Python MQTT CLI: get() support
  • TreeKey::iter_indices() and iter_indices_unchecked()
  • Derive macros: Support for fallible getter/setter/validation callbacks
  • Support for bit-packed keys Packed and iter_packed()/iter_packed_unchecked()
  • A postcard feature and Postcard trait and blanket implementation
  • TreeKey::len()
  • The typ derive macro attribute

Full Changelog: v0.9.0...v0.10.0

miniconf-v0.10.1

22 Apr 15:41
Compare
Choose a tag to compare

Miniconf v0.9.0

01 Nov 14:17
d73adc4
Compare
Choose a tag to compare

Changed

  • The Miniconf trait has been split into TreeKey for the keys/path/indices and traversal,
    the TreeSerialize for serialization, and TreeDeserialize for deserialization.
    The derive macros have been split accordingly. A shorthand #[derive(Tree)] macro has been
    added to derive all three traits. The struct field attribute controlling
    recursion depth has been renamed to #[tree(depth(Y))].
  • [mqtt] The List command of the MqttClient now has a maximum correlation data length of 32 bytes
  • [mqtt] The MqttClient API has changed to support new Minimq versions
  • [mqtt] The Get command now only generates a single message in response to the provided
    ResponseTopic instead of a response type (with success) and a message on the original topic.
  • [mqtt] Handler function singatures now require Display instead of AsRef<str> types

Added

  • Deserializing with borrowed data is now supported.
  • [derive] Added #[tree(skip)] macro attribute to allow skipping entries.

Miniconf v0.8.0

03 Aug 13:50
d03726d
Compare
Choose a tag to compare

Added

  • Traversal by names or indices has been added through Miniconf::traverse_by_key().
  • The Miniconf derive macro supports (unnamed) tuple structs.

Removed

  • [breaking] The Array and Option newtypes have been removed. Instead in structs
    the desired Miniconf<N> recursion depth for a field is indicated by an attribute
    #[miniconf(defer(N))] where N is a usize literal. The depth is communicated
    via the trait. For [T;N] and Option the depth up to 8 has been implemented.
    For structs it is arbitrary.

Changed

  • [breaking] The Miniconf trait is now generic over the Deserializer/Serializer. It
    doesn't enforce serde-json-core or u8 buffers or / as the path hierarchy
    separator anymore.
  • [breaking] Miniconf::iter_paths() takes the path hierarchy separator and passes
    it on to Miniconf::path() and Metadata::separator().
  • [breaking] The Miniconf trait has been stripped of the provided functions that depended
    on the serde-backend and path hierarchy separator. Those have been
    moved into the JsonCoreSlash trait that has been implemented for all Miniconf
    to provide the previously existing functionality.
  • [breaking] set() and get() have been renamed to set_json() and get_json()
    respectively to avoid overlap.
  • [breaking] Paths now start with the path separator (unless they are empty).
    This affects the Miniconf derive macro and the Miniconf implementation pairs
    for Option/Array.
    Downstram crates should ensure non-empty paths start with the separator and
    expect next_path paths to start with the separator or be empty.
  • The main serialization/deserialization methods are now Miniconf::{set,get}_by_key()
    They are generic over the key iterator Iterator<Item: miniconf::Key>.
  • The only required change for most direct downstream users the Miniconf trait
    to adapt to the above is to make sure the JsonCoreSlash trait is in scope
    (use miniconf::JsonCoreSlash) and to rename {set,get}() -> {set,get}_json().
    The MqttClient has seen no externally visible changes.
  • [breaking] iter_paths() and iter_paths_unchecked() now don't need the state
    size anymore as it's computed exactly at compile time.
  • [breaking] iter_paths/PathIter is now generic over the type
    to write the path into. Downstream crates should replace iter_paths::<L, TS>() with
    e.g. iter_paths::<heapless::String<TS>>().
  • [breaking] Re-exports of heapless and serde-json-core have been removed as they
    are not needed to work with the public API and would be a semver hazard.
  • [breaking] Metadata is now computed by default without taking into account
    path separators. These can be included using Metadata::separator().

Miniconf v0.7.1

23 Jun 11:29
f69e916
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.7.1

Miniconf v0.7.0

22 Jun 09:42
681151e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.3...v0.7.0

v0.6.3

09 Dec 16:50
b60e8ec
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.2...v0.6.3

v0.6.2

09 Nov 09:48
a449acc
Compare
Choose a tag to compare

What's Changed

  • reorganize derive macro by @jordens in #116
  • rename derive_miniconf -> miniconf_derive, update categories, and release 0.6.2 by @jordens in #118

Full Changelog: v0.6.1...v0.6.2

v0.6.1

04 Nov 16:16
d63f68a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.6.1