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.
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
- [#835]:
macros: Fix somedefmtcrate name usage
v0.3.7 - 2024-05-13
- #831:
CI: Fix CI - [#830]:
book: Add section about feature-gated derive Format - #828:
defmt-decoder: Update togimli 0.29 - #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 - #800:
defmt-macros: Fix generic trait bounds in Format derive macro
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 - #783:
defmt-decoder: Move formatting logic toFormatter
- #784:
defmt-decoder: Preparedefmt-decoder v0.3.9release - #781:
defmt-decoder: Addpub struct Formattertodefmt_decoder::log - #778:
defmt-decoder: Add support for nested log formatting - #777:
defmt-decoder: Simplify StdoutLogger - #775:
defmt-decoder: Ignore AArch64 mapping symbols - #771:
defmt-macros: Ignore empty items in DEFMT_LOG - #769:
defmt-decoder: Add support for color, style, width and alignment to format
- #766
decoder::log: RenamePrettyLoggertoStdoutLogger - #765:
defmt-decoder: Add support for customizable logger formatting
v0.3.5 - 2023-06-19
- #760:
defmt-macros: Upgrade to syn 2 - #759: Release
defmt v0.3.5,defmt-macros 0.3.6anddefmt-print 0.3.8 - #758:
defmt-print: Tidy up - #757:
defmt-print: Allow reading from a tcp port - #756:
CI: Switch from bors to merge queue - #753:
demftAddFormatimpls forcore::ptr::NonNullandfn(Args...) -> Ret(up to 12 arguments)
- #754: Release
defmt-decoder v0.3.7,defmt-macros v0.3.5,defmt-parser v0.3.3,defmt-print v0.3.7 - #750: Add support for decoding wire format version 3
v0.3.4 - 2023-04-05
- #748: Release
defmt-v0.3.4,defmt-decoder-v0.3.6,defmt-print-v0.3.4and yank previous - #747: Bump wire version
v0.3.3 - 2023-03-29 (yanked)
- #745: Release
defmt-v0.3.3,defmt-decoder-v0.3.5,defmt-macros v0.3.4,defmt-parser v0.3.2,defmt-print v0.3.5andpanic-probe v0.3.1 - #744:
defmt-parser: Clean and simplify - #742:
defmt-decoder: Include crate name in symbol name - #743:
defmt-parser: Simplify tests withrstest - #741:
defmt-macros: Disable default-features forrstest - #740: Snapshot tests for
core::net - #739:
xtask: Clean up - #737:
panic-probe: Addhard_fault()for use indefmt::panic_handler - #733:
defmt: Add formatting forcore::netwith theip_in_corefeature - #603:
defmt: Raw pointers now print as0x1234instead of1234 - #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.
- #729: Release
defmt-decoder v0.3.4,defmt-print v0.3.4 - #726:
defmt-decoder: Remove difference in favor of dissimilar - #725:
defmt-decoder: Replace chrono with time - #719:
defmt-print: Fix panic - #715:
xtask: Updateclapto version4 - #710:
CI: Update CI - #706:
defmt,defmt-decoder,defmt-itm,defmt-macros,defmt-parser,defmt-print,defmt-test-macros: Satisfy clippy
- #704: Release
defmt-macros 0.3.3,defmt-print 0.3.3,defmt-rtt 0.4.0 - #703:
defmt-print: Update toclap 4.0. - #701:
defmt-rtt: Pre-relase cleanup - #695:
defmt-rtt: Refactor rtt [3/2] - [#689]:
defmt-rtt: Update to critical-section 1.0 - #692:
defmt-macros: Wrap const fn in const item to ensure compile-time-evaluation. - #690:
defmt-decoder,defmt-parser: Satisfy clippy - #688: Release
defmt-decoder 0.3.3 - #687:
CI: Re-enableqemu-snapshot (nightly)tests - #686:
CI: Temporarily disableqemu-snapshot (nightly) - #684:
defmt-macros: Fixsyndependency version. - #683:
defmt-rtt: Make sure the whole RTT structure is in RAM - #682:
defmt-print: exit when stdin is closed - #681:
defmt-decoder,defmt-parser:Make use of i/o locking being static since rust1.61. - #679:
CI: Add changelog enforcer - #678:
defmt,defmt-decoder,defmt-macros,defmt-parser: Satisfy clippy
v0.3.2 - 2022-05-31
- [#675]: Release
defmt 0.3.2and fixdefmt-macros-releated compile-error - [#669]: Refine docs for
--jsonflag
v0.3.1 - 2022-03-10
- #662:
#[derive(Format)]now accepts attribute fields to format fields using theDebug2Formatadapter instead of aFormatimplementation. - #661: Add tests for Cell types
- #656: Implement
defmt::FormatforCellandRefCell - #630: Add test instructions to README.md
- #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
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
u64as 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.xtov0.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
offpseudo-level in presence of nested logging directives - #611: Fix
cargo doc-warnings - #608:
decoder: Fix thatdefmt::println!shows leading space when timestamps are disabled - #601: Move crate
defmttodefmt/ - #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
Formatfor 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"
- #582: Release of
panic-probe v0.2.1 - #581: Add impl for
alloc::Layout - #579: defmt-rtt: fix check for blocking RTT
- #577: Fix typo in
cfgof encoding-feature-compile_error! - #578:
qemu: Allow dead code - #572:
defmt-decoder:impl TryFrom<Option<String>> for Encoding - #570: Support referring to
Selfin 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.6to0.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
- #549: Fix clippy warnings.
- #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
macroscrate - #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
µshint withus - #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.
v0.2.3 - 2021-06-17
- #499 Illustrate structure of the defmt crates
- #503 Add alternate hint ('#')
- #509
impl Format for NonZero*
- #488 Structure
impl Formats into multiple files - #496 Bump build-dep
semverto1.0 - #489 Structure lib
- #500 book: fix leftover old formatting syntax; typos
- #510
CI: Don't install MacOS dependency which is included by default
- #497
macros: match unused vars if logging is disabled
v0.2.2 - 2021-05-20
- #446 Add usage examples for
Debug2Format,Display2Format - #464
impl<T> Format for {*const, *mut} T where T: Format + ?Sized - #472
impl Format forthe core::{iter, ops, slice} structs - #473
impl Format forall theCows - #478 add
dbg!macro
- #477 Disable logging calls via conditional compilation when all defmt features are disabled
v0.2.1 - 2021-03-08
- #403 Add knurling logo to API docs
- #413 Fix docs-rs build, by disabling feature "unstable-test"
- #427 Drop outdated note about
defmt v0.2.0from book
v0.2.0 - 2021-02-19
- #284 Implement support for
i128andu128types - #291 Allows using
defmton x86 platforms by making the test suite use an internal Cargo feature - #293 Make
defmtattributes forward input attributes - #294 Permits
useitems inside#[defmt_test::tests]modules - #296 Allows skipping the
defmtversion check in order to make development easier - #302
derive(Format)now supports more than 256 variants - #304 impl
Formatforchars - #313 Add display hints
- #323 Merge
Uxx(u64)(Ixx(i64)) andU128(u128)(u128(i128)) data variants - #327
impl<T> Format for PhantomData<T> - #329 Document safety of implementation detail functions
- #335 Add the
defmt-itmcrate - #338 Add
defmt-loggeranddefmt-printcrates - #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
f64support - #376 Make
defmt-loggermore configurable, removeprobe-runstrings - #377
defmt-test: support returningResultfrom tests - #382
impl Format for Infallible - #391
impl Format for core::time::Duration
- #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
Formatteris now passed by value, i.e. consumed during formatting - #308 compile-fail test new
Formattermove semantics - #312
strfields in structs are now treated as a native type by the encoder instead of going through theFormattrait - #325 Update our UI tests to work with the latest stable release
- #331 Add more compile-fail tests
- #332 Improve
Formattrait docs - #333 Hide
Formatter'sinnerfield - #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::fmtadapters - #345 Reduce code size by avoiding 64-bit arithmetic in LEB encoding
- #350
panic-probenow usesdefmtsDisplay2Formatto 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
f64floating point numbers. - #355 Clarify docs on
Write::write. - #361, [#367] Make clippy happy by improving code quality
- #363 Improve test coverage on basic
defmtusage onstdrust - #364 Split firmware code into separate workspace
- #368
defmt-itm: Raise compile error onarmv6m - #369 Move
bors.tomlto.github/ - #371 Link to git version of
defmtbook - #372 Update
Printerssection indefmtbook - #373 Improve information in
Cargo.toml - #379 Make link to
defmtbook clickable - #380 Merge crates
elf2tableandloggerintodecoder - #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 loggertolog - make
fn parse_*,fn get_locations,fn decodemethods ofstruct Table - various simplifications and restructuring of internal code
- rename
- #387 CI: bump timeout to 20 minutes
- #389 defmt_decoder: Bump deps
objectandgimli
- #301 Fix the nightly builds after a
linked_list_allocatorfeature change - #310, #311 remove the runtime check (and matching tests) if the
write!macro was called multiple times as this can no longer happen sincewrite!now consumes theFormatterdue to #305. - #321 ASCII hint (
:a) is now respected when used together with theFormattrait (=?and=[?]). - #342 Fix a data corruption issue when using
bools inwrite! - #357 Fix issue preventing
defmtfrom compiling on MacOS.
v0.1.3 - 2020-11-30
- #290 fixed cross compilation to ARMv6-M and other targets that have no CAS (Compare-and-Swap) primitives when the "alloc" feature is enabled
v0.1.2 - 2020-11-26
- #263 #276 add and document
write!macro - #273 #280 add and document
unwrap!macro - #266 add
panic!-like andassert!-like macros which will log the panic message usingdefmtand then callcore::panic!(by default) - #267, #281 add
Debug2FormatandDisplay2Formatadapters - #279 started adding notes about feature availability (e.g. "defmt 0.1.2 and up")
- #257 code size optimizations
- #265 updated the 'how we deal with duplicated format strings' section of our implementation notes
- #264
probe-rundoesn't panic if log message is not UTF-8 - #269 fixes compiler error that was thrown when using
defmt::panicwithin e.g. a match expression - #272 braces in format args passed to the new
defmt::panic!anddefmt::assert!macros do not cause unexpected errors anymore
v0.1.1 - 2020-11-16
- #259 crates.io version of
defmtcrates no longer requiregitto be built
Initial release