0.009   December 29, 2009

    * Refactored ScalarValue, ListValue, and BooleanValue and added a shared
      Value role. This unifies the values are represented. Some attributes have
      been eliminated and replaced with synonyms so the API has not drastically
      changed. (Though, it is probably not 100% compatible with 0.008.)
    * Updated documentation to better show register_implementation in use
    * Features may not modify attribute construction via the BuildAttribute role
    * Features may now modify control construction via the BuildControl role
    * A new fill_on_assignment control feature has been added
    * Make sure we warn about read-only attributes when is => bare as well as
      when is => ro.

0.008   December 12, 2009

    * It is now possible to extend interfaces, controls, features, and control
      features using your application interface. To do so you need to create a
      Form::Factory::<type>::Custom::<your-name> class which has a
      register_implementation class returning the name of the actual class.

0.007   December 11, 2009

    * Correcting Changes. I must have been half-asleep when I wrote up the
      change log for 0.006
    * Fixing the broken action inheritance test because some objects were sorted
    * Adds a test to find a bug related to running the clean() or
      check() or process() method on an action. If the "controls" parameter was
      not passed, it did not work correctly. It worked as if the changes to
      feature roles made in 0.006 had not been done. This has been corrected.

0.006   December 8, 2009

    * The feature role has been split into 5 roles:
        * Form::Factory::Feature is now mostly a marker class for features
          (still adds common attributes, such as result)
        * Form::Factory::Feature::Role::Clean requires the clean method
        * Form::Factory::Feature::Role::Check requires the check method
        * Form::Factory::Feature::Role::PreProcess requires the pre_process
        * Form::Factory::Feature::Role::PostProcess requires the post_process
    * Moved custom message handling for features into separate roles:
      Form::Factory::Feature::Role::CustomMessage and
    * Added a new type of feature, the build_attribute feature allows a control
      feature to modify attributes when the meta-class is being setup
    * Features should now set is_valid() explicitly for success and failure
    * Added more unit tests

0.005   December 6, 2009

    * Make sure get_all_features() in the meta class does not clobber feature
      config when a parent class uses the same feature with a different
      configuration. This might need some more tweaking since we do want to
      avoid running an identical feature multiple times.

0.004   December 3, 2009

    * The render_control() and consume_control() methods now return the control
      object rendered or consumed.
    * The Button control is now a boolean value rather than a preset value to
      make it much more useful
    * The CLI interface does not consume arguments from boolean values anymore,
      it just flips them on or off based on the fact they are present or not
    * Added unit tests for render_control() and consume_control()

0.003   December 3, 2009

    * Adding a consume_control() method to the Action role
    * Correcting a problem with how Form::Factory::Result returns messages when
      in scalar context (it was not stringifying properly before)
    * Adding more unit tests

0.002   November 30, 2009

    * Renamed Form::Factory::Factory to Form::Factory::Interface
    * Adding a CLI interface for developing command-line interfaces
    * Adding several helpful control roles: BooleanValue, HiddenValue,
      MultiLine, and PresetValue
    * Made the ScalarValue and ListValue control roles mutually exclusive
    * Control objects copy the original attribute's documentation attribute

0.001   November 29, 2009

    * Initial release includes the experimental API, basic controls, and a
      factory for rendering and consuming HTML forms