@@ -14,9 +14,11 @@ We use [Break Versioning][breakver]. The version numbers follow a `<major>.<mino
14
14
15
15
Malli is in well matured [ alpha] ( README.md#alpha ) .
16
16
17
- ##
17
+ ## UNRELEASED
18
18
19
19
* Docs: elaborate optional-keys and required-keys [ #1117 ] ( https://github.com/metosin/malli/pull/1117 )
20
+ * ** BREAKING** Output of ` parse ` now uses new ` malli.core.Tag ` and ` malli.core.Tags ` records for ` :orn ` , ` :multi ` , ` :altn ` , ` :catn ` etc. [ #1123 ] ( https://github.com/metosin/malli/issues/1123 ) [ #1153 ] ( https://github.com/metosin/malli/issues/1153 )
21
+ * See [ Parsing] ( #parsing-values ) and [ Unparsing] ( #unparsing-values ) for docs.
20
22
21
23
## 0.17.0 (2024-12-08)
22
24
@@ -109,9 +111,9 @@ borkdude/edamame '1.4.25' to '1.4.27'
109
111
110
112
``` clojure
111
113
; ; function of arg:int -> ret:int, where arg < ret
112
- [:=>
113
- [:cat :int ]
114
- :int
114
+ [:=>
115
+ [:cat :int ]
116
+ :int
115
117
[:fn (fn [[[arg] ret]] (< arg ret))]]
116
118
```
117
119
@@ -144,20 +146,20 @@ borkdude/edamame 1.3.23 -> 1.4.25
144
146
* Support for Var references [ #985 ] ( https://github.com/metosin/malli/pull/985 ) , see [ guide] ( README.md#var-registry ) for details.
145
147
* ** BREAKING** : ` m/coerce ` and ` m/coercer ` throw ` ::m/coercion ` instead of ` ::m/invalid-input `
146
148
* New Guide for [ Reusable Schemas] ( docs/reusable-schemas.md )
147
- * Less printing of Var instumentation
148
- * ** BREAKING** : qualified symbols are valid reference types [ #984 ] ( https://github.com/metosin/malli/pull/984 )
149
+ * Less printing of Var instumentation
150
+ * ** BREAKING** : qualified symbols are valid reference types [ #984 ] ( https://github.com/metosin/malli/pull/984 )
149
151
* Fixing ` mt/strip-extra-keys-transformer ` for recursive map encoding [ #963 ] ( https://github.com/metosin/malli/pull/963 )
150
152
* Support passing custom ` :type ` in into-schema opt for ` :map ` and ` :map-of ` [ #968 ] ( https://github.com/metosin/malli/pull/968 )
151
153
* ` mu/path->in ` works with ` :orn ` , ` :catn ` and ` :altn ` .
152
154
153
155
## 0.13.0 (2023-09-24)
154
156
155
- * ** BREAKING** Fallback to use result of first branch when decoding ` :or ` and ` :orn ` , [ #946 ] ( https://github.com/metosin/malli/pull/946 )
157
+ * ** BREAKING** Fallback to use result of first branch when decoding ` :or ` and ` :orn ` , [ #946 ] ( https://github.com/metosin/malli/pull/946 )
156
158
* ** BREAKING** : ` decode ` for ` :double ` and ` double? ` in cljs doesn't allow trailing garbage any more [ #942 ] ( https://github.com/metosin/malli/pull/942 )
157
159
* Faster generators for ` :map ` , [ #948 ] ( https://github.com/metosin/malli/pull/948 ) & [ #949 ] ( https://github.com/metosin/malli/pull/949 )
158
160
* FIX: ` :altn ` can't handle just one child entry when nested in sequence schema [ #945 ] ( https://github.com/metosin/malli/pull/945 )
159
161
* Officially drop Clojure 1.10 support. Tests haven't passed for some time with Clojure 1.10, but this was not noticed due to a faulty CI setup.
160
- * Use type inferrer when encoding enums [ #951 ] ( https://github.com/metosin/malli/pull/951 )
162
+ * Use type inferrer when encoding enums [ #951 ] ( https://github.com/metosin/malli/pull/951 )
161
163
* Use ` bound-fn ` in ` malli.dev/start! ` to preserve ` *out* ` [ #954 ] ( https://github.com/metosin/malli/pull/954 )
162
164
* FIX: Malli generates invalid clj-kondo type spec for [ : map [ : keys [ :+ : keyword ]]] [ #952 ] ( https://github.com/metosin/malli/pull/952 )
163
165
* FIX: ` malli.experimental.describe ` descriptions of ` :min ` and ` :max ` are backwards [ #959 ] ( https://github.com/metosin/malli/pull/959 )
@@ -264,7 +266,7 @@ borkdude/edamame 1.0.0 -> 1.1.17
264
266
265
267
## 0.10.0 (2023-01-12)
266
268
267
- * New optional time-schemas for the JVM on top of ` java.time ` :
269
+ * New optional time-schemas for the JVM on top of ` java.time ` :
268
270
* ` :time/duration ` , ` :time/instant ` , ` :time/local-date ` , ` :time/local-date-time ` , ` :time/local-time ` , ` :time/offset-date-time ` , ` :time/offset-time ` , ` :time/zone-id ` , ` :time/zone-offset ` , ` :time/zoned-date-time ` , see [ README] ( README.md#malliexperimentaltime )
269
271
* automatic type inferring with ` :enum ` and ` := ` with ` malli.transform ` and ` malli.json-schema ` - detects homogenous ` :string ` , ` :keyword ` , ` :symbol ` , ` :int ` and ` :double ` ), [ #782 ] ( https://github.com/metosin/malli/pull/782 ) & [ #784 ] ( https://github.com/metosin/malli/pull/784 )
270
272
* New ` malli.core/coercer ` and ` malli.core/coerce ` to both decode and validate a value, see [ Docs] ( README.md#coercion )
@@ -394,8 +396,8 @@ borkdude/edamame 0.0.18 -> 1.0.0
394
396
:address {:street string?
395
397
:city string?
396
398
:zip (l/optional int?)
397
- :lonlat [:tuple double? double?]}}
398
- ```
399
+ :lonlat [:tuple double? double?]}}
400
+ ```
399
401
400
402
* updated deps:
401
403
@@ -469,7 +471,7 @@ fipp/fipp 0.6.24 -> 0.6.25
469
471
```clojure
470
472
mvxcvi/arrangement 1.2 .0 -> 2.0 .0
471
473
borkdude/edamame 0.0 .11 -> 0.0 .18
472
- org.clojure/test.check 1.1 .0 -> 1.1 .1
474
+ org.clojure/test.check 1.1 .0 -> 1.1 .1
473
475
```
474
476
475
477
## 0.7 .4 (2021-12-18 )
@@ -620,7 +622,7 @@ New optimized map-syntax to super-fast schema creation, see [README](README.md#m
620
622
; :value {:type :map,
621
623
; :keys {:x {:order 0
622
624
; :value {:type boolean?}},
623
- ; :y {:order 1
625
+ ; :y {:order 1
624
626
; :value {:type int?}
625
627
; :properties {:optional true}}}}}}}
626
628
@@ -700,7 +702,7 @@ No need to play with Compiler options or JVM properties to swap the default regi
700
702
; ; 164ns -> 28ns
701
703
(let [valid? (m/validator [:and [:> 0 ] [:> 1 ] [:> 2 ] [:> 3 ] [:> 4 ]])]
702
704
(cc/quick-bench (valid? 5 )))
703
-
705
+
704
706
; ; 150ns -> 30ns
705
707
(let [valid? (m/validator [:map [:a :any ] [:b :any ] [:c :any ] [:d :any ] [:e :any ]])
706
708
value {:a 1 , :b 2 , :c 3 , :d 4 , :e 5 }]
@@ -723,7 +725,7 @@ No need to play with Compiler options or JVM properties to swap the default regi
723
725
:type " food"
724
726
:address {:street " hämeenkatu 14"
725
727
:lonlat [61 23.7644223 ]}}]
726
-
728
+
727
729
; ; 920ns => 160ns
728
730
(cc/quick-bench
729
731
(decode json)))
@@ -745,7 +747,7 @@ No need to play with Compiler options or JVM properties to swap the default regi
745
747
* Collection Schemas emit correct JSON Schema min & max declarations
746
748
* humanized errors for `:boolean` & `:malli.core/tuple-limit`
747
749
* predicate schema for `fn?`
748
- * `malli.util/transform-entries` passes in options [#340 ]/(https://github.com/metosin/malli/pull/340 )
750
+ * `malli.util/transform-entries` passes in options [#340 ]/(https://github.com/metosin/malli/pull/340 )
749
751
* BETA: humanized errors can be read from parent schemas (also from map entries), fixes [#86 ](https://github.com/metosin/malli/issues/86 ):
750
752
751
753
```clojure
@@ -833,7 +835,7 @@ No need to play with Compiler options or JVM properties to swap the default regi
833
835
* FIX: Schema vizualization is not working for `[:< ...]` like schemas, [#370 ](https://github.com/metosin/malli/issues/370 )
834
836
* Ensure we use size 30 for generator (for more variety), [#364 ](https://github.com/metosin/malli/pull/364 )
835
837
* Set JSON Schema types and formats for numbers properly [#354 ](https://github.com/metosin/malli/pull/354 )
836
- * -memoize actually memoized. easily 100 x faster now [#350 ](https://github.com/metosin/malli/pull/350 )
838
+ * -memoize actually memoized. easily 100 x faster now [#350 ](https://github.com/metosin/malli/pull/350 )
837
839
* Fix interceptor composition, [#347 ](https://github.com/metosin/malli/pull/350 )
838
840
* `malli.util`: add a rename-keys utility, similar to clojure.set [#338 ](https://github.com/metosin/malli/pull/338 )
839
841
* Let `mu/update` accept plain data schemas, [#329 ](https://github.com/metosin/malli/pull/329 )
@@ -845,7 +847,7 @@ No need to play with Compiler options or JVM properties to swap the default regi
845
847
* **BREAKING**: `m/-coder` and `m/-chain` are replaced wih `m/-intercepting`
846
848
* **BREAKING**: `m/-fail!` is now `miu/-fail!`
847
849
* **BREAKING**: `m/-error` is now `miu/-error`
848
-
850
+
849
851
## 0.2 .1 (2020-10-22 )
850
852
851
853
* fix `:sequential` decoding with empty sequence under `mt/json-transformer`, fixes [#288 ](https://github.com/metosin/malli/issues/288 )
@@ -885,8 +887,8 @@ Merged
885
887
; [:map [:y :int]]]
886
888
887
889
(m/deref Merged)
888
- ; [:map
889
- ; [:x :string]
890
+ ; [:map
891
+ ; [:x :string]
890
892
; [:y :int]]
891
893
892
894
(m/validate Merged {:x " kikka" , :y 6 })
@@ -929,7 +931,7 @@ First stable release.
929
931
* new mandatory Protocol method in `m/Schema`: `-type-properties`
930
932
* 1.9 .2020
931
933
* `m/children` returns 3 -tuple (key, properties, schema) for `MapSchema`s
932
- * `m/map-entries` is removed, `m/entries` returns a `MapEntry` of key & `m/-val-schema`
934
+ * `m/map-entries` is removed, `m/entries` returns a `MapEntry` of key & `m/-val-schema`
933
935
* 4.8 .2020
934
936
* `:path` in explain is re-implemented: map keys by value, others by child index
935
937
* `m/-walk` and `m/Walker` uses `:path`, not `:in`
@@ -946,7 +948,7 @@ First stable release.
946
948
* 18.7 .2020
947
949
* big cleanup of `malli.transform` internals.
948
950
* 12.7 .2020
949
- * `malli.mermaid` is removed (in favor of `malli.dot`)
951
+ * `malli.mermaid` is removed (in favor of `malli.dot`)
950
952
* 10.7 .2020
951
953
* `[metosin/malli " 0.0.1-20200710.075225-19" ]`
952
954
* Visitor is implemented using a Walker.
@@ -957,6 +959,6 @@ First stable release.
957
959
* new `-children` method in `Schema`, to return child schemas as instances (instead of just AST)
958
960
* 17.6 .2020
959
961
* change all `malli.core/*-registry` defs into `malli.core/*-schemas` defns to enable DCE for clojurescript
960
- * 9.6 .2020
962
+ * 9.6 .2020
961
963
* `malli.core/name` & `malli.core/-name` renamed to `malli.core/type` & `malli.core/-type`
962
964
* `malli.generator/-generator` is renamed to `malli.generator/-schema-generator`
0 commit comments