Skip to content

Releases: hacklanta/lift-formality

Lift-formality 1.1.0: Spit-shine and Lift 3

17 Jan 15:01
857fe47
Compare
Choose a tag to compare

Lift-formality has supported the Lift 3.0 series in snapshots for
a little while, but it wasn't public. We now have builds for 1.1.0 for
both Lift 3.0 and 3.1 series, and will be putting out a dot release
and build for the 3.2 series when that goes final soon.

Scala support is still at 2.11, but we should be putting out a dot
release soon to also add cross-compile for 2.12 (some test
dependencies need to be bumped and we wanted 1.1.0 out the
door first).

So what's changed?

  • #11 made it so fields that aren't sent to the server don't manifest
    as Failures by default; instead, you have to actively make them
    Failure in a boxed validation, otherwise they show up as Empty.
    This was a bug we ran into in our use of lift-formality at @elemica.
  • #23 allows textarea elements to have their default value set
    correctly. The API is unchanged, it just works now.
  • #23 also allows for empty default values for fields whose final type
    is not a String. You do this by providing an Empty when you want
    no default value for these fields.
  • Finally, #23 fixed defaults for checkboxes, which were not being
    passed through correctly into the markup.
  • #19 added the ability to call fieldGroup(".css-selector") to scope
    a field group to a given selector. Before, fieldGroup only existed
    with no parameters. The underlying code supported scoping, you
    just had to call the FieldGroup class constructor directly.

Enjoy the release!

Lift-formality 1.0.0: All done!

14 Nov 22:14
Compare
Choose a tag to compare

Not all done, but a first release!

@elemica is now formally using lift-formality in production, so
things are kicking up. 1.0.0 has some pretty extensive features,
which are detailed in the 1.0.0 README. Here's a few:

  • Define fields that deserialize to a particular type other than
    String in a defined way.
  • Define fields that consist entirely of CSS selector transforms,
    leaving the markup types entirely in HTML (e.g., the field types
    like number, range, etc).
  • Add validations to fields that operate on the deserialized type.
  • Group primitive and complex fields together into field groups,
    whose component parts can be composed into container types
    that make sense in your domain.
  • Handle the final success and failure states of a form in your domain
    data types.
  • Integrate with Lift's internal error reporting features.
  • Create forms that are defined in a functional way, with lift-formality
    handling all the statefulness behind the scenes.

I'm certain more needs will come up in the future and we'll deal with
them as they come---just file a note in the Github issues!

What's Not Included

Two big things aren't here:

  • Support for Lift 3.0.0. This should be forthcoming soon.
  • Support for Scala 2.12. Since Lift 2.6 and Lift 3.0 can't be compiled
    for Scala 2.12 yet, we're holding off on lift-formality as well. Once
    we can compile Lift for Scala 2.12 (hopefully in 2.12.1), we'll publish
    a version of lift-formality that works with it as well.