Skip to content

Releases: taoensso/truss

v2.0.0 (2025-02-27)

27 Feb 14:36
Compare
Choose a tag to compare

This is a major rewrite of Truss that expands the library's scope, and modernises its implementation. There are breaking changes to the ex-data produced by the 4x assertion macros (have, have?, have!, have!?) in Truss and Encore.

This is a non-breaking update for folks not using assertion ex-data.

Apologies for any inconvenience! - Peter Taoussanis 🙏

CHANGES since v1.x

Deprecated assertion API

Changes to assertion ex-data

The ex-data included in assertion failures has changed!

Old ex-data:

:pred ------ (Unchanged) Predicate form
:arg ------- (Unchanged) {:keys [form value type]}

:dt -------- `js/Error` or `java.util.Date`
:loc ------- {:keys [ns line column]}
:data ------ {:keys [arg dynamic]}

:env ------- {:keys [elidable? *assert*]}
:msg ------- String
:err ------- Error thrown during pred check

New ex-data:

:pred ------ (Unchanged) Predicate form
:arg ------- (Unchanged) {:keys [form value type]}

:inst ------ `js/Error` or `java.time.Instant`
:ns -------- Namespace string
:coords ---- [line column]
:data ------ Optional `:data` value (replaces :data/arg)
:truss/ctx - `truss/*ctx*` value (replaces :data/dynamic)

:msg ------- REMOVED (use `ex-message` instead)
:error ----- REMOVED (use `ex-cause`   instead)
  • You can customise ex-data by modifying *failed-assertion-handler*.
  • You can keep the old ex-data by setting the taoensso.truss.legacy-assertion-ex-data JVM property to true.

New since v1.x

v1.12.0 (2024-09-07)

07 Sep 10:55
Compare
Choose a tag to compare

📦 Available on Clojars, uses Break Versioning.

This is a non-breaking minor maintenance release that improves some docstrings and updates some internal code. Thank you!

- Peter Taoussanis

1.11.0 (2023-07-31)

31 Jul 11:28
Compare
Choose a tag to compare

📦 Available on Clojars

This is a maintenance + feature release, and should be a non-breaking upgrade.

New since 1.10.1

  • f42b81b [mod] Improve invariant violation output
  • 02c027e [new] Add cljdoc.edn config (improve cljdoc output)

Other improvements since 1.10.1

  • 9ff9d55 [nop] More reliable predicate parsing

1.10.1 (2023-07-15)

15 Jul 16:05
Compare
Choose a tag to compare

📦 Available on Clojars

This is a hotfix release, please upgrade if you're using 1.10.0.

Fixes since 1.10.0

  • 46b2f69 [fix] Prevent get-source from throwing for JAR resources

1.10.0 (2023-07-07)

07 Jul 12:29
Compare
Choose a tag to compare

📦 Available on Clojars

This is a minor feature release, and should be a non-breaking upgrade.

New since 1.9.0

  • 9855aa9 [new] Add :column and :file to :loc data for invariant violations
  • 042eb78 [nop] Add tests for GraalVM compatibility

1.9.0 (2023-03-15)

15 Mar 18:16
Compare
Choose a tag to compare
[com.taoensso/truss "1.9.0"]

This is a feature release. Should be non-breaking.
See here for a tip re: general recommended steps when updating any Clojure/Script dependencies.

Since 1.8.0

  • 4bbab6b [new] Add unevaluated arg :form info to invariant violations
  • 9a572b1 [new] Add :instance?, :satisfies? special predicate forms
  • e644631 [new] Experimental alternative workaround for CLJ-865

v1.8.0 - 2022 Dec 13

13 Dec 12:14
Compare
Choose a tag to compare
[com.taoensso/truss "1.8.0"]

This is a maintenance release. Should be non-breaking.
See here for a tip re: general recommended steps when updating any Clojure/Script dependencies.

Since v1.7.2

  • e1a1fa6 [new] Document and provide workaround for CLJ-865
  • 2e3fa98 [fix] [#12] Fix issue with duplicate side effects when using within another macro

v1.7.2 - 2022 Nov 20

16 Nov 21:14
Compare
Choose a tag to compare
[com.taoensso/truss "1.7.2"]

This is a maintenance release. Changes may be BREAKING for some users, see relevant commits referenced below for details.
See here for a tip re: general recommended steps when updating any Clojure/Script dependencies.

Changes since v1.6.0

  • 67093d9 [mod] [BREAKING] Simplify default error output
  • 09779a4 [mod] [DEPRECATE] Shorten names of dynamic assertion utils
  • [nop] Update from .cljx to .cljc
  • [nop] Remove unused Cljs macros

v1.6.0 - 2020 Aug 29

29 Aug 17:50
Compare
Choose a tag to compare
[com.taoensso/truss "1.6.0"]

Minor feature release. Should be non-breaking.
See here for a tip re: general recommended steps when updating any Clojure/Script dependencies.

Identical to 1.6.0-RC1.

New since 1.5.0

  • [New] Add special cardinality predicates: :n=, :n>=, :n<=

Changes since 1.5.0

  • [#9] Return verbatim input/s on successful :in
  • Micro optimization: avoid unnecessary vector creation for multi-x have?

Fixes since 1.5.0

  • have? should return true during elision

v1.6.0-RC1 - 2019 Mar 22

29 Aug 13:36
Compare
Choose a tag to compare
Pre-release
[com.taoensso/truss "1.6.0-RC1"]
  • [New] Add special cardinality predicates: :n=, :n>=, :n<=
  • [Change] [#9] Return verbatim input/s on successful :in
  • [Fix] have? should return true during elision
  • [Implementation] Micro optimization: avoid unnecessary vector creation for multi-x have?