Skip to content

Releases: elastio/bon

v3.8.1

08 Oct 12:31
b1d7dde

Choose a tag to compare

Fixed

  • Fix clippy::wrong_self_convention warning for fields with is_ prefix etc. (#349). Thanks @nicmue for the contribution!

Internal

  • Add a regression test for clippy::wrong_self_convention (#350)

v3.8.0

04 Oct 20:41
09b719a

Choose a tag to compare

Lint Update Notice

This release brings some rustdoc improvements and no other visible API changes except that rustc and clippy will start reporting some more true-positive lints. For example builder methods defined via an impl block annotated with #[bon] will now be correctly reported as unused if they are not used. Also, using a private type in a public builder method will trigger a private_interfaces lint now.

This is all thanks to the updated span handling design researched and implemented by @Eisverygoodletter. It's not clear what other new lints the new span handling may trigger in other realworld codebases. If you see a lint from the code generated by bon that you think shouldn't be there, please, open an issue, and it'll be fixed as soon as possible!

Changed

  • Make rustdoc source links for the starting function reference original function (#341). Thanks @Eisverygoodletter for the contribution!
  • Make rustdoc source links for setters/getters reference original member (#345)

Internal

v3.7.2

02 Sep 11:34
bbd8b09

Choose a tag to compare

Fixed

  • Add missing lifetime replacement for generic param declarations on derive(IntoFuture) impl block (#337)
  • Set the lower bound requirement of rustversion to v1.0.19 (#336). Thanks @Fokko for the contribution!

v3.7.1

19 Aug 19:48
bc940a1

Choose a tag to compare

This is a small patch release to make bon easier to package for Debian.

Other

  • Add Copyright header to the MIT License (#331)

Internal

  • Fix MSRV tests and lints from nightly 13-08-2025 (#329)
  • Revert refactoring PR 320 to make code compatible with darling 0.20 (#332)

v3.7.0

09 Aug 19:28
532df99

Choose a tag to compare

Added

Fixed

  • Add missing where clause forwarding to #[builder(derive(Into))] (#325)

Internal

  • Make tests pass without the experimental-overwritable feature (#326)
  • Sunset financial support by Kindness (#324)
  • Fix clippy lints from nightly (2025-08-09) (#323)

v3.6.5

18 Jul 18:29
c1e0b24

Choose a tag to compare

This is a regular maintenance release with no essential API/behavior changes. Enjoy the stability 😄.

Docs

  • Add all 3 variations of builder syntax to the Basics guide pages (#315)

Internal

  • Update the dependency darling (crate for parsing the attributes) from 0.20 to 0.21 and other internal dependencies (#317, #320, #304)
  • Switch from iai to iai-callgrind for high-precision benchmarking of bon (#311). iai-callgrind is a better maintained alternative to iai, but in any case, both deserve a huge thanks for providing the benchmarking capabilities for bon!
  • Migrate to OIDC for trusted publishing. Huge thanks for this new crates.io feature to everyone who made it happen! (#318)
  • Fix clippy::or_fun_call lint from the nightly toolchain (#316)

v3.6.4

09 Jun 13:49
dea0c4a

Choose a tag to compare

Added

  • Improve error reporting when using the #[bon::builder] fully qualified attribute inside of impl blocks (#297)

v3.6.3

21 Apr 03:31
3a2907a

Choose a tag to compare

Fixed

  • Fix missing support for #[builder(field)] with #[builder(const)] (#291)

v3.6.2

20 Apr 22:47
8241061

Choose a tag to compare

Added

  • Propagate #[target_feature] attributes on #[builder]-generated finishing functions (#284). Thanks @Lilyyy411 for the contribution!

Fixed

  • Fix visibility and const token order in code generated by #[builder(const)] (#288)

v3.6.1

15 Apr 20:15
5b71e5a

Choose a tag to compare

Fixed

  • Propagate #[track_caller] to the generated finishing function from the underlying function/method (#282). Thanks @Lilyyy411 for the contribution!