- Fix bug in
defschemawhich clobbered metadata, breakings/protocolin Clojure in 0.3.2.
- Fix
s/protocolin Clojure (didn't work properly with extends created later) - Fix ClojureScript (Closure) warning about reference to global RegExp object.
- Add
set-compile-fn-validation!function to turn off emission of validation globally, and turn off emission of validation code for non- ^:always-validate functions when assert is false.
- Fix Clojurescript compilation warnings/errors from accidental references to
clojure.data/diffandclassinside error messages.
- BREAKING increase minimum clojurescript version 2120 to support :include-macros
- Deprecate direct use of
schema.macrosin client code -- prefer canonical versions inschema.corein both Clojure and ClojureScript, using:include-macros truein cljs. - Deprecate old
^{:s schema}syntax for providing schemas. - Deprecate
*use-potemkin*flag and behavior to default to potemkin s/defrecords in Clojure; in future releases, you will have to provide your own potemkin and explicitly opt-in to this behavior. - (Hopefully) fix issues with AOT compilation, by removing dependence on potemkin/import-vars.
- Add
isaschema for Clojure hierarchies. - Preserve the types of maps (including Records) when coercing with map schemas.
- Smarter code generation in s/defrecord to avoid dead code warnings
- Fix printed form of s/Str in ClojureScript
- Make some internal fns public to simplify third-part schema extensions
- Walking records with map schemas preserves the record type
- Proper explain for s/Str
- Memoize walker computation, providing much faster checker compilation for graph-structured schemas
- Add
normalized-defn-argshelper fn for definings/defn-like macros. - Map schemas correctly validate against struct-maps
- Fixed an issue that could cause ClojureScript compilation to fail
- Generalize
s/recursiveto work on artibrary refs - Add
s/Symbolas a cross-platfor primitive
- Improved explains for primitives & primitive arrays
- More robust double coercions
- Fix cljs warning about extending js/Function
- Import schema.macros/defmulti in schema.core
- Add validated
s/def. - Add validated
s/defmethod. - Add
Boolcoercions.
- Add
Boolto cross-platform primitives - Fix several minor bugs
- Replace cljs-test with headless clojurescript.test.
- breaking change: Cross-platform leaves String and Number are now Str and Num (the former caused warnings and broke AOT).
- Replaced core Schema protocol method
checkwithwalker, for increased speed and versatility - Support for schema-driven transformations/coercion
- Schemas for primitive arrays (
longs, etc) - Schematized
letfn
- Remove non-dev dependency on cljx
- Support for pre/postcondition maps in
s/defn - Support for recursive schemas in Clojure
- Fixes for sm/defn and sm/defrecord with cljs advanced compilation
- Works with advanced compilation in cljs (at least sometimes)
- More small bugfixes
- Better validation error messages in cljs
- Minor bugfixes (thanks various contributors)
- Extend schema protocol to regex (thanks AlexBaranosky).
- Add
:never-validatemeta option
- Fix regression in primitive handling introduced in 0.1.4
- Added Regex, Inst, and Uuid as primitive schema types (thanks jwhitlark)
- Add annotated arglists to functions defined with
s/defn(thanks danielneal) - Add
set-fn-validation!to schema.core, to globally turn validation on or off. - Add
:always-validatemetadata on fn/defn name to unconditionally use validation.
- Fix compatibility with Clojurescript 1889 (removal of format)
- Validate returns the value on success
- Sequence schemas only match sequential? things, to match map and set
- Implementation of
defschemaputs name in metadata, rather than generating named schema - Improved error messages and stack traces for
s/defn
- Bugfix: with-fn-validation persisting after Exception
- Initial release