Skip to content

Releases: metosin/malli

0.19.1

09 Jun 09:11
Compare
Choose a tag to compare

0.19.1 (2025-06-09)

  • Technical release

0.19.0

09 Jun 08:57
Compare
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
Compare
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
Compare
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
Compare
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'

0.16.3

05 Aug 06:42
Compare
Choose a tag to compare

0.16.3 (2024-08-05)

  • :-> added to default registry, see documentation.
  • New :sequable and :every schemas #1041, see docs
  • Fix OOM error with infinitely expanding schema #1069
  • Correctly form prop-less schemas that have map/nil as first child #1071
  • Support min/max on uncountables like eductions #1075
  • Fix clj-kondo can't parse config.edn written by (malli.dev/start!) #1083
  • unstrument before instrumenting #1081
  • Replace .entryAt with .valAt during validation #1079
  • Corrected DEPRECATED warning for m/-simple-schema #1077

0.16.2

30 Jun 15:49
Compare
Choose a tag to compare

0.16.2 (2024-06-30)

  • Experimental :-> for simpler function defintions (not available on default schema registry) #1027
[:-> :any] ; [:=> :cat :any]
[:-> :int :any] ; [:=> [:cat :int] :any]
[:-> [:cat :int] :any]  ; [:=> [:cat [:cat :int]] :any]
[:-> a b c d :any] ; [:=> [:cat a b c d] :any]

;; guard property
[:-> {:guard (fn [[[arg] ret]] ...)} :string :boolean]
; [:=> [:cat :string] :boolean [:fn (fn [[[arg] ret]] ...)]]
  • Fix mu/get-in for false-y keys #1065
  • Add :float #1055
  • Make clj-kondo dir configurable #1062
  • Improve doc for transformers #1058
  • :double generates Long if :min is Long #1034
  • Fix Swagger definitions collecting #1002

0.16.1

30 Apr 08:04
Compare
Choose a tag to compare

0.16.1 (2024-04-30)

  • Enabled Java8 tests back, no need to limit the version

0.16.0

20 Apr 12:27
582ade9
Compare
Choose a tag to compare

0.16.0 (2024-04-20)

  • BREAKING: minimum Java-version is now Java11
  • allow changing prefix of json-schema $refs via option :malli.json-schema/definitions-path #1045
  • Inline refs in non-:body swagger parameters #1044
  • Fix flaky test #1040
  • Utility to update entry properties: mu/update-entry-properties #1037
  • Fix actions cache #1036
  • Only humanize one of :min / :max when different #1032
  • Distinguish between symbols and strings in humanize #1031
  • Fix :map-of :min and unreachable generator, explain such-that failures #1029

0.14.0

16 Jan 17:19
Compare
Choose a tag to compare
  • Better development-time tooling
    • malli.dev/start! captures all malli-thrown exceptions, see README for details
    • does not log individual re-instrumentation of function vars
    • BREAKING: changes in malli.dev.virhe and malli.pretty extension apis, wee #980 for details
  • New m/deref-recursive to recursive deref all schemas (not :refs)
  • FIX: Malli generates incorrect clj-kondo spec for :fn schemas #836 via #987
  • Support for Var references #985, see guide for details.
  • BREAKING: m/coerce and m/coercer throw ::m/coercion instead of ::m/invalid-input
  • New Guide for Reusable Schemas
  • Less printing of Var instumentation
  • BREAKING: qualified symbols are valid reference types #984
  • Fixing mt/strip-extra-keys-transformer for recursive map encoding #963
  • Support passing custom :type in into-schema opt for :map and :map-of #968
  • mu/path->in works with :orn, :catn and :altn.