rootcause 0.12.0

A flexible, ergonomic, and inspectable error reporting library for Rust
Documentation
# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.12.0] - 2026-02-07

### Added

- Added support for formatting the error sources for a context [#94]https://github.com/rootcause-rs/rootcause/pull/94.
  - This adds new fields to the `ContextFormattingStyle` and the `DefaultReportFormatter`.
- Added support for mutating attachments [#116]https://github.com/rootcause-rs/rootcause/pull/116.

### Fixed

- Fixed some issues with using rootcause-backtrace on windows [#118]https://github.com/rootcause-rs/rootcause/pull/94, [#120]https://github.com/rootcause-rs/rootcause/pull/120, [#121]https://github.com/rootcause-rs/rootcause/pull/121.

## [0.11.1] - 2026-01-03

### Added

- Added a `OptionExt` trait [#92]https://github.com/rootcause-rs/rootcause/pull/92
- Added a `rootcause::Result` type alias [#91]https://github.com/rootcause-rs/rootcause/pull/91
- Added methods to get the type name of contexts and attachments [#100]https://github.com/rootcause-rs/rootcause/pull/100
- Implements `Clone` for `Backtrace` and `Display` for `Location` [#100]https://github.com/rootcause-rs/rootcause/pull/100
- Added `ReportMut::attach` and `ReportMut::attach_custom` [#101]https://github.com/rootcause-rs/rootcause/pull/101
- Added a `rootcause-tracing` crate [#102]https://github.com/rootcause-rs/rootcause/pull/102

### Fixed

- Added `#[track_caller]` to two functions that were missing them [#89]https://github.com/rootcause-rs/rootcause/pull/89

## [0.11.0] - 2025-12-12

### Added

- Added a compatibility module for boxed errors [#70]https://github.com/rootcause-rs/rootcause/pull/70
- Added a compatibility module for error-stack v0.5 [#75]https://github.com/rootcause-rs/rootcause/pull/75
- Added a `ReportConversion` trait along with `context_to`, `context_transform` and `context_transform_nested` methods [#83]https://github.com/rootcause-rs/rootcause/pull/83

### Changed

- The default report formatter no longer uses ANSI colors [#74]https://github.com/rootcause-rs/rootcause/pull/74
- Re-organize the compatibility modules [#75]https://github.com/rootcause-rs/rootcause/pull/75
- The `dyn Any`-marker for type-erased reports was replaced with a custom `Dynamic` marker [#78]https://github.com/rootcause-rs/rootcause/pull/78
- Implement a new hook system [#80]https://github.com/rootcause-rs/rootcause/pull/80, [#81]https://github.com/rootcause-rs/rootcause/pull/81
- Moved backtrace support into the new `rootcause-backtrace` crate [#82]https://github.com/rootcause-rs/rootcause/pull/82

## [0.10.0] - 2025-11-24

### Fixed

- Fix issue [#64]https://github.com/rootcause-rs/rootcause/issues/64 and parts of [#63]https://github.com/rootcause-rs/rootcause/issues/63 by removing a lot of trait bounds [#67]https://github.com/rootcause-rs/rootcause/pull/67
- Implement `Unpin` for most types. This fixes the other half of [#63]https://github.com/rootcause-rs/rootcause/issues/63. [#68]https://github.com/rootcause-rs/rootcause/pull/68

## [0.9.1] - 2025-11-23

### Fixed

- Fixed the building of docs on docs.rs [#65]https://github.com/rootcause-rs/rootcause/pull/65

## [0.9.0] - 2025-11-22

### Added

- Added a new `compat` module added poulated it with `eyre` and `error-stack` compatibility [#55]https://github.com/rootcause-rs/rootcause/pull/55
- Added a `format_with_hook` method on reports to format a report using a specific hook [#57]https://github.com/rootcause-rs/rootcause/pull/57

### Changed

- Refactored the `anyhow_compat` module into the new `compat` module [#55]https://github.com/rootcause-rs/rootcause/pull/55

### Fixed

- Removed an unintentional dependency on triomphe with default-features turned on [#61]https://github.com/rootcause-rs/rootcause/pull/61

## [0.8.1] - 2025-11-20

### Added

- Added an `anyhow` feature which adds compatibility traits for going back and forth between anyhow [#51]https://github.com/rootcause-rs/rootcause/pull/51

## [0.8.0] - 2025-11-19

### Added

- More safety reasoning [#47]https://github.com/rootcause-rs/rootcause/pull/47

### Changed

- Change the formatting of Backtraces and Location and how they are customized [#44]https://github.com/rootcause-rs/rootcause/pull/44
- `ReportMut::reborrow` has been renamed to `ReportMut::as_mut` [#47]https://github.com/rootcause-rs/rootcause/pull/47
- Update the backtrace formatting [#48]https://github.com/rootcause-rs/rootcause/pull/48

## [0.7.0] - 2025-11-06

### Added

- More docs, examples, README [#40]https://github.com/rootcause-rs/rootcause/pull/40
- More docs, examples, README [#41]https://github.com/rootcause-rs/rootcause/pull/41

## [0.6.0] - 2025-10-29

### Fixed

- Fix the links in the CHANGELOG [#34]https://github.com/rootcause-rs/rootcause/pull/34

### Added

- More docs [#35]https://github.com/rootcause-rs/rootcause/pull/35, [#37]https://github.com/rootcause-rs/rootcause/pull/37, [#38]https://github.com/rootcause-rs/rootcause/pull/38
- The `report_attachment!()` macro [#35]https://github.com/rootcause-rs/rootcause/pull/35

### Changed

- Do more re-organization while it's free to do so [#37]https://github.com/rootcause-rs/rootcause/pull/37

## [0.5.0] - 2025-10-27

### Changed

- Add a report header [#19]https://github.com/rootcause-rs/rootcause/pull/19
- Make the `IteratorExt` trait more generic [#24]https://github.com/rootcause-rs/rootcause/pull/24
- Rename `with_handler` to `custom` in most places [#25]https://github.com/rootcause-rs/rootcause/pull/25

### Added

- Add a CHANGELOG [#27]https://github.com/rootcause-rs/rootcause/pull/27

## [0.4.3] - 2025-10-22

### Changed

- Change the logo [#17]https://github.com/rootcause-rs/rootcause/pull/17

### Added

- Add a discord badge [#16]https://github.com/rootcause-rs/rootcause/pull/16

## [0.4.2] - 2025-10-22

### Changed

- Use `rustc-hash` instead of `foldhash` in the internal hooks [#15]https://github.com/rootcause-rs/rootcause/pull/15

### Added

- Add the logo to the docs [#14]https://github.com/rootcause-rs/rootcause/pull/14

## [0.4.1] - 2025-10-22

### Added

- Add a logo [#13]https://github.com/rootcause-rs/rootcause/pull/13

## [0.4.0] - 2025-10-17

### Changed

- Various refactoring [#7]https://github.com/rootcause-rs/rootcause/pull/7

## [0.3.0] - 2025-10-15

### Added

- Add CI and more documentation

### Changed

- Various refactoring

## [0.2.0] - 2025-10-07

### Added

- Initial release

[Unreleased]: https://github.com/rootcause-rs/rootcause/compare/v0.12.0...HEAD
[0.12.0]: https://github.com/rootcause-rs/rootcause/compare/v0.11.1...v0.12.0
[0.11.1]: https://github.com/rootcause-rs/rootcause/compare/v0.11.0...v0.11.1
[0.11.0]: https://github.com/rootcause-rs/rootcause/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/rootcause-rs/rootcause/compare/v0.9.1...v0.10.0
[0.9.1]: https://github.com/rootcause-rs/rootcause/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/rootcause-rs/rootcause/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/rootcause-rs/rootcause/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/rootcause-rs/rootcause/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/rootcause-rs/rootcause/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/rootcause-rs/rootcause/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/rootcause-rs/rootcause/compare/v0.4.3...v0.5.0
[0.4.3]: https://github.com/rootcause-rs/rootcause/compare/v0.4.2...v0.4.3
[0.4.2]: https://github.com/rootcause-rs/rootcause/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/rootcause-rs/rootcause/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/rootcause-rs/rootcause/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/rootcause-rs/rootcause/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/rootcause-rs/rootcause/releases/tag/v0.2.0