CHANGES.md in reform-2.2.4 vs CHANGES.md in reform-2.3.0.rc1

- old
+ new

@@ -1,10 +1,32 @@ +## 3.0.0 + +[* Removed `Reform::Contract` ?] +[* Move Form#deserializer to Form::deserializer] + +## 2.3.0 + +You can upgrade from 2.2.0 without worries. + +* Require Representable 3.0.0 and **removed Representable 2.4 deprecation code**. +* Require Disposable 0.4.0 which fixes issues with `nil` field values, `sync {}` and dry-validation. +* Fix boolean coercion. +* Allow using `:populator` classes marked with `Uber::Callable`. +* Introduce `parse: false` as a shortcut for `deserialzer: { writeable: false}`. Thanks to @pabloh for insisting on this handy change. +* Memoize the deserializer instance on the class level via `::deserializer`. This saves the inferal of a deserializing representer and speeds up following calls by 130%. +* Deprecated positional arguments for `validation :default, options: {}`. New API: `validation name: :default, **`. +* Reform now maintains a generic `Dry::Schema` class for global schema configuration. Can be overridden via `::validation`. +* When validating with dry-validation, we now pass a symbolized hash. We also replaced `Dry::Validation::Form` with `Schema` which won't coerce values where it shouldn't. +* [private] `Group#call` API now is: `call(form, errors)`. +* Removed `Form#valid?`. + +* In `:if` for validation groups, you now get a hash of result objects, not just true/false. + + ## 2.2.4 -* Always require `disposable` >= 0.4.1. - - The only difference here is that `Form#sync`/`#save` with a block will include `nil` properties into the nested hash. -* Remove `uber` dependency. +* You can now use any object with `call` as a populator, no need to `include Uber::Callable` anymore. This is because we have only three types and don't need a `is_a?` or `respond_to?` check. +* Use `declarative-option` and loosen `uber` dependency. ## 2.2.3 * Add `Form#call` as an alias for `validate` and the `Result` object.