Revision history for UR 0.29 2011-03-07 query/iteration engine now solves n+1 in the one-to-many case as well as many-to-one query optimization where the join table is variable across rows in a single resultset automated manual page creation for commands reduced deps (removed UR::Time) 0.28 2011-01-23 fix to the installer which caused a failure during docs generation improvements to man page generation 0.27 2011-01-22 updated build process autogenerates man pages 0.26 2011-01-16 yet another refactoring to ensure VERSION appears on all modules fixes for tests which fail only in the install harness 0.25 2011-01-15 Updated docs. 0.24 2011-01-15 Updated deps to compile fully on a new OSX installation (requires XCode). 0.22 2011-01-12 VERSION refactoring for cleaner uploads 0.20 2011-01-11 faster compile (<.5s) faster object creation faster install documentation polish 0.19 2010-12-24 faster compile faster query cache resolution leaner meta-data less build deps, build dep fixes hideable commands fixes for newer sqlite API revamped UR::BoolExpr API new command tree 0.18 2010-12-10 Bugfix for queries involving subclasses without tables Preliminary support for building debian packages Bugfixes for queries with the 'in' and 'not in' operators Object cache indexing sped up by replacing regexes with direct string comparisons 0.17 2010-11-10 Fixed bug with default datasources dumping debug info during queries. Deprecated old parts of the UR::Object API. Bugfixes for MySQL data sources with handling of between and like operators, and table/column name case sensitivity MySQL data sources will complain if the 'lower_case_table_names' setting is not set to 1 Bugfixes for FileMux data sources to return objects from iterators in correct sorted order File data sources remember their file offsets more often to improve seeking Bugfixes for handling is_many values passed in during create() New class for JSON-formatted Set views More consistent behavior during evaluation of BoolExprs with is_many values and undef/NULL values Bugfixes for handling observers during software transaction commit and rollback Addition of a new UR::Change type (external_change) to track non-UR entities that need undo-ing during a rollback 0.16 2010-09-27 File datasources build an on-the-fly index to improve its ability to seek within the file Initial support for classes to supply custom logic for loading data Compile-time speed improvements Bug fixes for SQL generation with indirect properties, and the object cache pruner 0.15 2010-08-03 Improved 'ur update classes' interaction with MySQL databases Integration with Getopt::Complete for bash command-line tab completion 0.14 2010-07-26 Metadata about data source entities (tables, columns, etc) is autodiscovered within commit() if it doesn't already exist in the MetaDB The new View API now has working default toolkits for HTML, Text, XML and XSL. The old Viewer API has been removed. Smarter property merging when the Context reloads an already cached object and the data in the data source has changed Added a built-in 'product' calculation property type Calculated properties can now be memoized subclassify_by for an abstract class can now be a regular, indirect or calculated property New environment variable UR_CONTEXT_MONITOR_QUERY for printing Context/query info to stdout SQLite data sources can initialize themselves even if the sqlite3 executable cannot be found Test harness improvements: --junit and --color options, control-C stops tests and reports results 'use lib' within an autoloaded module stays in effect after the module is loaded 0.13 2010-02-21 Circular foreign key constraints between tables are now handled smartly handled in UR::DataSource::RDBMS. New meta-property properties: id_class_by, order_by, specify_by. Updated autogenerated Command documentation. Formalized the __extend_namespace__ callback for dynamic class creation. New Command::DynamicSubCommands class makes command trees for a group of classes easy. The new view API is available. The old "viewer" API is still available in this release, but is deprecated. 0.12 2009-09-09 'ur test run' can now run tests in parallel and can submit tests as jobs to LSF Command modules now have support for Getopt::Complete for bash tab-completion Bugfixes related to saving objects to File data sources. Several more fixes for merging between database and in-memory objects. Property names beginning with an underscore are now handled properly during rule and object creation 0.11 2009-07-30 Fix bug in merge between database/in-memory data sets with changes. 0.10 2009-07-22 Updates to the UR::Object::Type MOP documentation. Other documentation cleanup and file cleanup. 0.9 2009-06-19 Additional build fixes. 0.8 2009-06-17 David's build fixes. 0.7 2009-06-10 Fix to build process: the distribution will work if you do not have Module::Install installed. 0.6 2009-06-07 Fixed to build process: actually install the "ur" executable. 0.5 2009-06-06 Updates to POD. Additional API updates to UR::Object. 0.4 2009-06-04 Updates to POD. Extensive API updates to UR::Object. 0.3 2009-05-29 Fixed memory leak in cache pruner, and added additional debugging environment variable. Additional laziness on file-based data-sources. Updated lots of POD. Switched to version numbers without zero padding! 0.02 2009-05-23 Cleanup of initial deployment issues. UR uses a non-default version of Class::Autouse. This is now a special file to prevent problems with the old version. Links to old DBIx::Class modules are now gone. Updated boolean expression API. 0.01 2009-05-07 First public release for Lambda Lounge language shootout.