TODO:
- maintenance: Switch to using inside-out objects (probably Class- or Object- InsideOut)
- maintenance: scripts/clearpress to auto-generate tests & fixture framework
- maintenance: Improve migrations
- maintenance: Improve test coverage (currently at 81%)
- maintenance: Add regression tests
- performance: Config caching
284 - Class::Singleton support moved from ClearPress::driver to
ClearPress::util. When running in a mod_perl environment
supporting multiple different ClearPress applications, the
driver would be a singleton per Apache child process, meaning
applications would mistakenly share whichever database
connection is first initialised. As drivers are not usually
subclassed per-application (only by database back-end platform)
the singleton support was moved into ClearPress::util. The util
is commonly subclassed for applications so this should be a
robust solution, particularly for shared environments.
278 - Support for posting XML
269 - Extended aspect handling:
/batches/released/cluster.xml routes to
app::view::batches::read_released_xml with a primary key of
'cluster' by default, but if
app::view::batches::list_released_cluster_xml exists that will
be preferred.
- Also fixed a niggle - /thing/15.xml;add mixed
aspect+file-extension would previously have failed but should
now be correctly routed to app::view::thing::add_xml
267 - Bugfix for aspect checking - previously 'update_*' aspects
(e.g. update_xml) would have been incorrectly identified as a 'create'
action. Similarly for 'delete_*' aspects.
- Added SQLite checks to failing tests
255 - A bunch of new functional tests
- Test-harness related stuff (t::request)
- Test data for dummy templates and results
252 - Fixed generation of warnings.tt2 & view::error in bin/clearpress
- Fixed Y/N on file overwrite in bin/clearpress
- Auto-generate application-specific util as it's required by the singleton if not passed explicitly to objects
- Fixed requestor->is_member_of authorisation check if is_member_of is not supported (default not authorised) in ClearPress::view
- Fixed auto-generation of multiple has_a and has_many (missing whitespace) in bin/clearpress
- Default RESTish methods (pass-through) for *_ajax and *_json to complement existing *_xml in ClearPress::view
- Moved scripts/clearpress to bin/clearpress as it's more usual
- Template caching
236 - driver support for bounded selects (currently basic string concatenation)
235 - Improved test resiliance w.r.t. optional dependencies
222 - ClearPress::driver is now a Class::Singleton. ** TAKE CARE ** if
your application makes multiple database handles of the same sort
- they need separate subclassing and will then be singletons
themselves.
174 - Maintenance release - added missing dependencies to Makefile.PL
173 - Improved tests & code coverage for relation accessors (has_a,
has_many, has_a_through, has_many_through etc), views and database
drivers.
- NEW BEHAVIOUR: database handling has started to be pushed into
ClearPress::driver:: subclasses. You will commonly see transaction
errors with applications built using older ClearPress which
implement their own 'dbh' methods in util.pm .
- NEW BEHAVIOUR: better handling of NULL/undef, zero and empty
string may cause issues on applications which previously didn't
check.
168 - Updated POD
- Generation script now makes use of has_a and has_many
friend-accessor-auto-constructors
157 - Improved error handling with some smarts about requested content
types
- 'packagemap' config section maps uri entity names to package
subclasses for exceptions to the systematic naming rules, e.g.
[packagemap]
array_feature=feature::array
135 - belongs_to_through now supported in the data model
- Added missing Config::IniFiles dependency. Hopefully more CPAN
tests will now pass
132 - has_many_through and belongs_to now supported.
- Easier access to template subsystem for streamed-output responses.
118 - Update now only saves fields which 'exist' in the object, meaning
you don't have to force $object->load() before updating.
- New hasa() and hasmany() for easier relationship definitions.
- Models can now render ->as_xml() and as_json()
- Tweaked route processing (action & aspect) to be safer and more
consistent
99 - reworked url/file-extension & HTTP Accept header handling
deprecated controller::process_uri in favour of process_request
87 - JSON response support
71 - Buffered output handling, better test coverage
12 - Added application builder in scripts/clearpress