Skip to content

Releases: metosin/malli

0.20.0 (2025-11-17)

17 Nov 07:57

Choose a tag to compare

  • Optimize -parent-child-transformer #1239
  • Robust :and parser, add :andn #1182
    • Correctly handle recursive schemas #1234
  • Add JDK 25 to CI #1233

0.20.0-alpha3 (2025-10-31)

31 Oct 10:37

Choose a tag to compare

Pre-release

Applies a fix to 0.20.0-alpha2 which caused a stack overflow in some cases

  • Robust :and parser, add :andn #1182
    • Correctly handle recursive schemas #1234
  • Add JDK 25 to CI #1233

0.20.0-alpha2 (2025-10-14)

14 Oct 05:28

Choose a tag to compare

Pre-release

This is a pre-release to gather feedback for a potentially breaking change. The unspecified behavior of transforming parsing and unparsing has been specified which may affect users' workflows. See more details in:

  • Robust :and parser, add :andn #1182

0.20.0-alpha1 (2025-10-14)

14 Oct 05:15

Choose a tag to compare

Pre-release
Update changelog

0.19.2

06 Oct 05:58

Choose a tag to compare

0.19.2 (2025-10-06)

  • Performance improvements in malli.transform/transformer #1220 and malli.core/-intercepting #1219
  • malli.clj-kondo/emit! saves to .clj-kondo/imports now as recommended by clj-kondo. #1216
  • malli.clj-kondo/emit! no longer deletes anything automatically. Use malli.clj-kondo/clean! to clean up.
  • Add malli.core/old-parse-format for converting output of parse to the pre-0.18.0 format. #1223
  • FIX: Malli dev-mode no longer throws java.lang.UnsupportedOperationException when printing out an #inst of type java.sql.Date #1214
  • Updated dependencies:
borkdude/edamame '1.4.30' to '1.4.32'
fipp '0.6.27' to '0.6.29'

0.19.1

09 Jun 09:11

Choose a tag to compare

0.19.1 (2025-06-09)

  • Technical release

0.19.0

09 Jun 08:57

Choose a tag to compare

0.19.0 (2025-06-09)

  • BREAKING FIX: json-transformer is now better at inferring en/decoders for :enum and :=. #1205
    • For example [:enum 1 2 3] gets encoded as a JSON number, not a string.
    • If you need the old behaviour, you can override the en/decoders using properties. See docs.
  • Value generation: :+ and :* now support generator directives :gen/min, :gen/max as well as :min and :max schema directives #1208
  • CLJS bundle size reduced #1211
  • FIX: :default/fn now works in map entry properties in addition to schema properties #1209

0.18.0

12 May 10:59

Choose a tag to compare

0.18.0 (2025-05-12)

  • BREAKING Output of parse now uses new malli.core.Tag and malli.core.Tags records for :orn, :multi, :altn, :catn etc. #1123 #1153
  • BREAKING Swagger and JSON-Schema outputs now use . instead of / (encoded as ~1) as the separator. #1183
    • This will only affect you if you rely on the exact name of the schema
  • Docs: elaborate optional-keys and required-keys #1117
  • JSON Schema for :tuple now uses "prefixItems" #1151
  • FIX: :path when explaining :ref errors #1106
  • FIX: don't instrument functions with primitive type hints (like ^double), instead, emit a warning #1176
  • FIX: :map-of and :map decode now retain the input map type (eg. sorted-map) #1189
  • FIX: schemas and into-schemas are printed to the console and the REPL in CLJS the same way as they are in CLJ. #1186
  • FIX: :merge and :union now work with 1 child. With no children, throw a clearer error. #1147
  • FIX: default-value-transformer for :refs inside :maps #1145
  • FIX: generator for empty? schema #1196

0.18.0-alpha1

12 May 10:53
c5d1963

Choose a tag to compare

0.18.0-alpha1 Pre-release
Pre-release

This is a test release to test our release automation.

0.17.0

08 Dec 16:08

Choose a tag to compare

0.17.0 (8.12.2024)

  • Don't output :definitions nil in swagger. #1134
  • BREAKING: :gen/fmap property requires its schema to create a generator.
    • previous behavior defaulted to a nil-returning generator, even if the schema doesn't accept nil
    • use :gen/return nil property to restore this behavior
  • Support decoding map keys into keywords for [:map schemas in json-transformer #1135
  • :not humanizer #1138
  • FIX: :seqable generates nil when :min is greater than 0 #1121
  • FIX: malli.registry/{mode,type} not respected in Babashka #1124
  • FIX: :float accepts doubles but never generates them #1132
  • FIX: :float missing humanizer #1122
  • Updated dependencies:
fipp/fipp '0.6.26' to '0.6.27'