Skip to content

Latest commit

 

History

History
1071 lines (818 loc) · 45.2 KB

CHANGELOG.md

File metadata and controls

1071 lines (818 loc) · 45.2 KB

Change Log

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.

We have several packages which live in this repository. Changes are tracked separately.

defmt

A highly efficient logging framework that targets resource-constrained devices, like microcontrollers

defmt-v0.3.10 (2024-11-29)

  • #902 Minor change to Format impl for core::panic::PanicInfo, eliding a lifetime specifier to satisfy Clippy 1.83.
  • #899 Pin the defmt-macro crate to avoid incompatible versions being used together

defmt-v0.3.9 (2024-11-27)

  • #889 Add script for book hosting
  • #887 Fix interning example in the book
  • #884 Upgrade dependencies: notify is now at v7, thiserror is now at v2
  • #883 Mark decoder and parser not as unstable anymore
  • #880 Merge function calls emitted by the macro to save space.
  • #874 defmt: Fix doc test
  • #872 defmt: Add expect! as alias for unwrap! for discoverability
  • #871 Set MSRV to Rust 1.76
  • #869 macros: Add missing type hints
  • #865 defmt: Replace proc-macro-error with proc-macro-error2
  • #858 defmt: Implement "passthrough" trait impls for *2Format wrappers
  • #857 Add an octal display hint (:o)
  • #856 defmt: Add a Format impl for PanicInfo and related types.
  • #852 CI: Update mdbook to v0.4.40
  • #848 decoder: add optional one-line format
  • #847 decoder: Fix log format width specifier not working as expected
  • #845 decoder: fix println!() records being printed with formatting
  • #843 defmt: Sort IDs of log msgs by severity to allow runtime filtering by severity
  • #822 CI: Run cargo semver-checks on every PR

defmt-v0.3.8 (2024-05-17)

  • #840 defmt: Support pre-1.77
  • #839 CI: Fix tests
  • #838 defmt: Switch to Cargo instruction compatible with older versions of Cargo

defmt-v0.3.7 (2024-05-13 (yanked))

  • #831 CI: Fix CI
  • [#830] book: Add section about feature-gated derive Format
  • #821 Clean up
  • #813 doc: add note for the alloc feature flag
  • #812 defmt: Add a feature to stop linking a default panic handler
  • #811 book: Add some examples for byte slice/array hints as well
  • #805 defmt: Drop ip_in_core feature and re-enable nightly snapshot tests

defmt-v0.3.6 (2024-02-05)

  • #804 CI: Remove mdbook strategy
  • #803 CI: Disable nightly qemu-snapshot tests
  • #789 defmt: Add support for new time-related display hints

defmt-v0.3.5 (2023-06-19)

  • #758 defmt-print: Tidy up
  • #757 defmt-print: Allow reading from a tcp port
  • #756 CI: Switch from bors to merge queue
  • #753 demft Add Format impls for core::ptr::NonNull and fn(Args...) -> Ret (up to 12 arguments)

defmt-v0.3.4 (2023-04-05)

  • #747 Bump wire version

defmt-v0.3.3 (2023-03-29 (yanked))

  • #744 defmt-parser: Clean and simplify
  • #743 defmt-parser: Simplify tests with rstest
  • #740 Snapshot tests for core::net
  • #739 xtask: Clean up
  • #737 panic-probe: Add hard_fault() for use in defmt::panic_handler
  • #733 defmt: Add formatting for core::net with the ip_in_core feature
  • #603 defmt: Raw pointers now print as 0x1234 instead of 1234
  • #536 defmt-parser: Switch to using an enum for errors, and add some help text pointing you to the defmt docs if you use the wrong type specifier in a format string.

defmt-v0.3.2 (2022-05-31)

  • [#669] Refine docs for --json flag

defmt-v0.3.1 (2022-03-10)

Added

  • #662 #[derive(Format)] now accepts attribute fields to format fields using the Debug2Format adapter instead of a Format implementation.
  • #661 Add tests for Cell types
  • #656 Implement defmt::Format for Cell and RefCell
  • #630 Add test instructions to README.md

Changed

  • #659 mark extern::acquire() and extern::release() as unsafe. this is not a breaking change; this is an internal API
  • #640 use crate critical-section in defmt-rtt
  • #634 update ELF parsing dependencies
  • #633 make RTT buffer size configurable
  • #626 Make errror message more meaningful in case of version-mismatch

defmt-v0.3.0 (2021-11-09)

  • #618 Support #[ignore] attribute in defmt_test
  • #621 Readme Diagram: Replace duplicate defmt-itm with defmt-rtt
  • #617 Add display hint to output u64 as ISO8601 time
  • #620 Tidy up: remove unused code and dependencies
  • #619 Update all crates to rust edition 2021! 🎉
  • #610 defmt-print: Log if malformed frame gets skipped
  • #547 Migration guide v0.2.x to v0.3.0
  • #604 defmt-test: #[cfg(test)] the #[defmt_test::tests] module
  • #616 Update user guide part of the book
  • #615 Document how to deal with backward compatibility breakage
  • #614 Bugfix: decoder breaks with pipe symbol
  • #605 Properly handle the off pseudo-level in presence of nested logging directives
  • #611 Fix cargo doc-warnings
  • #608 decoder: Fix that defmt::println! shows leading space when timestamps are disabled
  • #601 Move crate defmt to defmt/
  • #600 Run snapshot & backcompat tests in dev mode only
  • #519 Target-side env_logger-like env filter
  • #592 xtask: add backward compability test
  • #598 defmt-print: Recover from decoding-errors
  • #569 Add defmt println! macro
  • #580 Structure defmt::export
  • #594 panic-probe: use UDF instruction on nested panics
  • #591 Remove timestamps from snapshot test
  • #585 Add xtask option to run a single snapshot test by name
  • #589 Implement Format for arrays of any length
  • #587 Tweak inline attributes to remove machine code duplication
  • #574 Refactor rtt [1/2]
  • #584 Remove outdated doc "you may only call write! once"
  • #581 Add impl for alloc::Layout
  • #579 defmt-rtt: fix check for blocking RTT
  • #577 Fix typo in cfg of encoding-feature-compile_error!
  • #578 qemu: Allow dead code
  • #550 Added defmt::flush()
  • #570 Support referring to Self in bitflags constants
  • #568 Encoding docs.
  • #564 Make order of bitflags values deterministic
  • #561 Remove unused cortex-m-rt in panic-probe a=Dirbaio
  • #562 Remove call to fill in user survey from README
  • #560 Update cortex-m-rt crate from 0.6 to 0.7
  • #557 Add impl for TryFromSliceError
  • #556 Add impl for TryFromIntError
  • #551 Display git version & date to introduction section
  • #540 Separate "crate version" from "wire format version
  • #545 Revert "build.rs: Obtain version from macro; simplify"
  • #539 Add optional rzCOBS encoding+framing
  • #518 build.rs: Obtain version from macro; simplify
  • #543 CI: Temporarily drop backward-compatibility check
  • #542 snapshot-tests: Test alternate hint for bitfields
  • #538 Fix wrong bit count in comment.
  • #537 snapshot-tests: Delete :? hint without impact
  • #531 refactor the macros crate
  • #534 Attribute test progress message to the test in question;
  • #535 Don't print leading space when timestamp is absent
  • #529 Refactor user-guide of book
  • #528 Support bitflags
  • #533 Adds add for user survey into readme.
  • #527 book: Add logo and support text to introduction
  • #526 decoder: Simplify tests
  • #359 Implement precedence of inner display hint
  • #523 Minimize dependencies
  • #508 [5/n] Format trait v2
  • #522 Replace µs hint with us
  • #521 [3/n] Remove u24
  • #516 xtask: Only install additional targets for tests that require them
  • #512 Add overwrite option for xtask cross results.
  • #514 extend raw pointer implementation to include !Format types
  • #513 book/duplicates.md: discriminator -> disambiguator
  • #507 [2/n] - Remove code-size-costly optimizations
  • #505 [1/n] - Logger trait v2.

defmt-v0.2.3 (2021-06-17)

Added

  • #499 Illustrate structure of the defmt crates
  • #503 Add alternate hint ('#')
  • #509 impl Format for NonZero*

Changed

  • #488 Structure impl Formats into multiple files
  • #496 Bump build-dep semver to 1.0
  • #489 Structure lib
  • #500 book: fix leftover old formatting syntax; typos
  • #510 CI: Don't install MacOS dependency which is included by default

Fixed

  • #497 macros: match unused vars if logging is disabled

defmt-v0.2.2 (2021-05-20)

Added

  • #446 Add usage examples for Debug2Format, Display2Format
  • #464 impl<T> Format for {*const, *mut} T where T: Format + ?Sized
  • #472 impl Format for the core::{iter, ops, slice} structs
  • #473 impl Format for all the Cows
  • #478 add dbg! macro

Changed

  • #477 Disable logging calls via conditional compilation when all defmt features are disabled

defmt-v0.2.1 (2021-03-08)

Added

  • #403 Add knurling logo to API docs

Fixed

  • #413 Fix docs-rs build, by disabling feature "unstable-test"
  • #427 Drop outdated note about defmt v0.2.0 from book

defmt-v0.2.0 (2021-02-19)

Added

  • #284 Implement support for i128 and u128 types
  • #291 Allows using defmt on x86 platforms by making the test suite use an internal Cargo feature
  • #293 Make defmt attributes forward input attributes
  • #294 Permits use items inside #[defmt_test::tests] modules
  • #296 Allows skipping the defmt version check in order to make development easier
  • #302 derive(Format) now supports more than 256 variants
  • #304 impl Format for chars
  • #313 Add display hints
  • #323 Merge Uxx(u64) (Ixx(i64)) and U128(u128) (u128(i128)) data variants
  • #327 impl<T> Format for PhantomData<T>
  • #329 Document safety of implementation detail functions
  • #335 Add the defmt-itm crate
  • #338 Add defmt-logger and defmt-print crates
  • #343 Customizable timestamps
  • #347 Document the grammar of defmts current format parameter syntax
  • #351 Allow tools to distinguish user-controlled format strings from generated ones
  • #354 Add f64 support
  • #376 Make defmt-logger more configurable, remove probe-run strings
  • #377 defmt-test: support returning Result from tests
  • #382 impl Format for Infallible
  • #391 impl Format for core::time::Duration

Changed

  • #297 Improves the output formatting and includes a progress indicator
  • #299 Test embedded test runner (defmt-test) as part of our CI setup
  • #300 #[derive] now uses built-in primitive formatting for primitive references
  • #303 Employ the help of [bors]
  • #305 Formatter is now passed by value, i.e. consumed during formatting
  • #308 compile-fail test new Formatter move semantics
  • #312 str fields in structs are now treated as a native type by the encoder instead of going through the Format trait
  • #325 Update our UI tests to work with the latest stable release
  • #331 Add more compile-fail tests
  • #332 Improve Format trait docs
  • #333 Hide Formatter's inner field
  • #334 Fix dead link in parser docs
  • #337 Improve diagnostics on double write!
  • #339 Make leb64 encoding fully safe (while at the same time reducing its code footprint)
  • #340 Stream core::fmt adapters
  • #345 Reduce code size by avoiding 64-bit arithmetic in LEB encoding
  • #350 panic-probe now uses defmts Display2Format to log panic messages. In consequence, panic messages won't get truncated anymore.
  • #355 Clarify the docs on Write::write
  • #352 Do not display full version with --help. Thanks to [Javier-varez]!
  • #354 Support f64 floating point numbers.
  • #355 Clarify docs on Write::write.
  • #363 Improve test coverage on basic defmt usage on std rust
  • #364 Split firmware code into separate workspace
  • #368 defmt-itm: Raise compile error on armv6m
  • #369 Move bors.toml to .github/
  • #371 Link to git version of defmt book
  • #372 Update Printers section in defmt book
  • #373 Improve information in Cargo.toml
  • #379 Make link to defmt book clickable
  • #380 Merge crates elf2table and logger into decoder
  • #383 defmt-test: Modify attributes in place and handle #[cfg]
  • #384 pin unstable path dependencies
  • #385 defmt_decoder: Skip allocation of datastructure for raw symbols of the table entries in fn get_locations
  • #386, #392 Refactor decoder
    • rename mod logger to log
    • make fn parse_*, fn get_locations, fn decode methods of struct Table
    • various simplifications and restructuring of internal code
  • #387 CI: bump timeout to 20 minutes
  • #389 defmt_decoder: Bump deps object and gimli

Fixed

  • #301 Fix the nightly builds after a linked_list_allocator feature change
  • #310, #311 remove the runtime check (and matching tests) if the write! macro was called multiple times as this can no longer happen since write! now consumes the Formatter due to #305.
  • #321 ASCII hint (:a) is now respected when used together with the Format trait (=? and =[?]).
  • #342 Fix a data corruption issue when using bools in write!
  • #357 Fix issue preventing defmt from compiling on MacOS.

defmt-v0.1.3 (2020-11-30)

Fixed

  • #290 fixed cross compilation to ARMv6-M and other targets that have no CAS (Compare-and-Swap) primitives when the "alloc" feature is enabled

defmt-v0.1.2 (2020-11-26)

Added

  • #263 #276 add and document write! macro
  • #273 #280 add and document unwrap! macro
  • #266 add panic!-like and assert!-like macros which will log the panic message using defmt and then call core::panic! (by default)
  • #267, #281 add Debug2Format and Display2Format adapters
  • #279 started adding notes about feature availability (e.g. "defmt 0.1.2 and up")

Changed

Fixed

  • #264 probe-run doesn't panic if log message is not UTF-8
  • #269 fixes compiler error that was thrown when using defmt::panic within e.g. a match expression
  • #272 braces in format args passed to the new defmt::panic! and defmt::assert! macros do not cause unexpected errors anymore

defmt-v0.1.1 (2020-11-16)

Fixed

  • #259 crates.io version of defmt crates no longer require git to be built

defmt-v0.1.0 (2020-11-11)

Initial release

defmt-macros

Macros for defmt

defmt-macros-v0.4.0 (2024-11-29)

  • #899 Just a major version bump to stop it being used by older defmt versions.

defmt-macros-v0.3.9 (2024-05-14)

  • [#835] macros: Fix some defmt crate name usage

defmt-macros-v0.3.8 (2024-05-13)

defmt-macros-v0.3.7 (2024-03-05)

defmt-macros-v0.3.6 (2023-08-01)

defmt-macros-v0.3.5 (2023-05-05)

  • #750 Add support for decoding wire format version 3

defmt-macros-v0.3.4 (2023-03-29)

defmt-macros-v0.3.3 (2022-10-07)

defmt-macros-v0.3.2 (2022-03-10)

defmt-macros-v0.3.1 (2021-11-26)

defmt-macros-v0.3.0 (2021-11-26)

defmt-macros-v0.2.3 (2021-06-21)

defmt-macros-v0.2.2 (2021-06-01)

defmt-macros-v0.2.1 (2021-05-21)

defmt-macros-v0.2.0 (2021-02-19)

defmt-macros-v0.1.1 (2020-11-26)

defmt-macros-v0.1.0 (2020-11-30)

Initial release

defmt-print

A tool that decodes defmt logs and prints them to the console

defmt-print-v0.3.13 (2024-11-27)

  • #807 Add watch_elf flag to allow ELF file reload without restarting defmt-print
  • #855 defmt-print: Now uses tokio to make tcp and stdin reads async (in preparation for a watch elf flag)

defmt-print-v0.3.12 (2024-05-13)

defmt-print-v0.3.11 (2024-03-05)

defmt-print-v0.3.10 (2023-10-04)

defmt-print-v0.3.9 (2023-08-01)

defmt-print-v0.3.8 (2023-08-01)

defmt-print-v0.3.7 (2023-05-05)

  • #750 Add support for decoding wire format version 3

defmt-print-v0.3.6 (2023-04-05)

defmt-print-v0.3.5 (2023-03-29)

defmt-print-v0.3.4 (2023-01-24)

  • #719 defmt-print: Fix panic

defmt-print-v0.3.3 (2022-10-07)

  • #703 defmt-print: Update to clap 4.0.
  • #682 defmt-print: exit when stdin is closed

defmt-print-v0.3.2 (2022-03-10)

defmt-print-v0.3.0 (2021-11-10)

defmt-print-v0.2.2 (2021-06-21)

defmt-print-v0.2.1 (2021-05-21)

defmt-print-v0.2.0 (2021-02-19)

[defmt-print-v0.1.0] (2021-01-15)

Initial release

defmt-decoder

Decodes defmt log frames

  • #902 Minor change to impl StreamDecoder for Raw and Rzcobs, eliding a lifetime specifier to satisfy Clippy 1.83. No observable change.
  • #726 Remove difference in favor of dissimilar
  • #725 Replace chrono with time
  • #681 Make use of i/o locking being static since rust 1.61.

Initial release

defmt-parser

Parsing library for defmt format strings

defmt-parser-v0.4.1 (2024-11-27)

  • #897 Added its own README

defmt-parser-v0.4.0 (2024-11-27)

defmt-parser-v0.3.4 (2024-03-05)

defmt-parser-v0.3.3 (2023-05-05)

defmt-parser-v0.3.2 (2023-03-29)

defmt-parser-v0.3.1 (2022-03-10)

defmt-parser-v0.3.0 (2021-11-10)

defmt-parser-v0.2.2 (2021-06-21)

defmt-parser-v0.2.1 (2021-05-21)

defmt-parser-v0.2.0 (2021-02-19)

defmt-parser-v0.1.0 (2020-11-30)

Initial release

defmt-rtt

Transmit defmt log messages over the RTT (Real-Time Transfer) protocol

  • #902 Use core::ptr::addr_of_mut! instead of &mut on mutable statics. No observable change.
  • #901 defmt-rtt: Update to critical-section 1.2

defmt-rtt-v0.4.1 (2024-05-13)

defmt-rtt-v0.4.0 (2022-10-07)

  • #701 defmt-rtt: Pre-relase cleanup
  • #695 defmt-rtt: Refactor rtt [3/2]
  • #689 defmt-rtt: Update to critical-section 1.0
  • #683 defmt-rtt: Make sure the whole RTT structure is in RAM

defmt-rtt-v0.3.2 (2022-03-10)

defmt-rtt-v0.3.1 (2021-11-26)

defmt-rtt-v0.3.0 (2021-11-26)

defmt-rtt-v0.2.0 (2021-02-20)

defmt-rtt-v0.1.0 (2020-11-30)

Initial release

defmt-itm

Transmit defmt log messages over the ITM (Instrumentation Trace Macrocell) stimulus port

  • #902 Switch to using critical-section, and copy implementation over from defmt-rtt.

defmt-itm-v0.3.0 (2021-11-26)

defmt-itm-v0.2.0 (2021-02-20)

Initial release

defmt-semihosting

Transmit defmt log messages over the semihosting (Instrumentation Trace Macrocell) stimulus port

Initial release

panic-probe

Panic handler that exits probe-run with an error code

panic-probe-v0.3.2 (2024-05-13)

panic-probe-v0.3.1 (2023-03-29)

panic-probe-v0.3.0 (2021-11-26)

panic-probe-v0.2.1 (2021-09-17)

panic-probe-v0.2.0 (2021-02-20)

panic-probe-v0.1.0 (2020-11-30)

panic-probe-v0.0.0

Initial release

defmt-test

A test harness for embedded devices

defmt-test-v0.3.2 (2024-03-05)

defmt-test-v0.3.1 (2023-10-11)

defmt-test-v0.3.0 (2021-11-26)

defmt-test-v0.2.3 (2021-05-21)

defmt-test-v0.2.2 (2021-04-29)

defmt-test-v0.2.1 (2021-02-26)

defmt-test-v0.2.0 (2021-02-20)

defmt-test-v0.1.1 (2020-12-03)

defmt-test-v0.1.0 (2020-11-30)

Initial release

defmt-test-macros

Macros for defmt-test

Initial release

defmt-json-schema

JSON schema for defmt

Initial release

defmt-elf2table

Reads ELF metadata and builds a defmt interner table

Now defunct - lives in defmt-decoder

Initial release

defmt-logger

Now defunct - lives in defmt-decoder

defmt-logger-v0.1.0 (2021-01-15)

Initial release