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.