ChangeLog
From CunningPlans
This is the version history of the Baldrick Application Framework. Recent versions are available at Downloads. Planned changes are at TODO
Major releases have version numbers divisible by .10 and may break config file compatibility with earlier releases.
[edit] 0.88 (planned) Aug 2008
- Baldrick::Dogsbody - req(), resp(), etc - more perlish function names.
- Baldrick::Turnip - getContentsAsList()
- Baldrick::Util - added basename(), dirname(), and depth option to webdump
- Baldrick::User - added getGravatar()
[edit] 0.87 - 20 Jul 2008
- added Baldrick::UserGroup class stub - to represent a user's group membership
- Dogsbody _done fix
- FileSession O_EXLOCK removed (Linux doesn't support it)
- InputValidator fix_numeric_nulls option
- SpecialTurnip: getFieldRules(), getMaximumFieldLength(), getBriefUpdateSummary()
- TemplateAdapter JSON dump
- Turnip: added onTransmogrify(), clearError()
- fixed UserLoader bug involving multiple users with same email address
- Baldrick::Util: added getArgs() for faster parsing of named function arguments; added chunkList(), setMailCommand(), hashkeys, hashvalues
[edit] 0.86 - 25 Mar 2008
- added Baldrick::DatabaseSession - fairly minimalist, little configurability, no cleanup
- added Baldrick::QueryBuilder - a class for creating multi-table SQL statements incrementally.
- added listToTree to Baldrick::Util
- added commandHandlers hashref to Dogsbody startup, giving a Dogsbody the ability to transmogrify into another.
- fix packaging problem with 0.85 - the version sent to CPAN would not install due to a faulty manifest
[edit] 0.85 - 17 Mar 2008
- major rewrite of Baldrick::SpecialTurnip to support joined tables and compound primary keys
- init() parameters: tablename/primarykey not used, instead use tableinfo structure
- metainfo parameter holds query, readonly flags - more later
- logging in saveChanges()
- getPrimaryKeys(), getFieldMap(), getFieldList()...
- readonly tables
- field can be declared as flags field, handleEdit() will look for multiple inputs and combine
- 'ignore' list in handleEdit()
- better debugging in Baldrick::Database
- removed a stringy eval in Baldrick::Util
- InputValidator fixes
- various 'ignore' parameters in Baldrick::Database functions
- added Baldrick::Response class, split off from Baldrick::Request and Baldrick::Dogsbody
- setDebug('U') becomes setDebug(9) because I'm tired of typing all those quotes
- Baldrick::Dogsbody - findTemplate() moved to TemplateAdapter, sendOutput() rewritten, Response split off
- fatalError() replaces abort() because abort() conflicts with POSIX
[edit] 0.84 - 14 January 2008
- parse foo=bar from @ARGV into request parameters
- moved some things from DBUserLoader to UserLoader
- SpecialTurnip fixes for multi-table turnips
- added args O, P, Q, etc. for Dogsbody handle functions
- added deprecated() in Baldrick::Util
- abort() deprecated (conflicts with POSIX); use fatalError() instead
- installer fixes for Windows
[edit] 0.83 - 10 November 2007
- renamed Baldrick::TemplateAdapterBase to Baldrick::TemplateAdapter
- renamed Baldrick::TemplateAdapterTT to Baldrick::TemplateAdapter::TemplateToolkit
- added Baldrick::TemplateAdapter::TextTemplate (uses Text::Template)
- added Baldrick::Examples::ExampleDogsbody
- minor changes in App to allow for minimalist config file and easier "Hello World" demo.
- modified Dogsbody dispatchRequest() to avoid stringy eval
- added baldrick.cfg.sample to distribution
- added userloader.cfg.sample to distribution
- made Makefile.PL interactive, prompting to install in cgi-bin directory.
[edit] 0.82 - 05 Nov 2007
- No programming changes.
- Distribution repackaged with ExtUtils::MakeMaker to be a proper CPAN-style module.
- First version to appear on CPAN.
[edit] 0.81 - 04 Nov 2007
- removed O_EXLOCK from FileSession - Linux doesn't like it
- improved Request::createURL()
- cookie expiration dates in Request, Session
- dynamicNew() becomes createObject(); loadClass() added to Baldrick::Util
- autosave and multi-table support added to Baldrick::SpecialTurnip
- minor fixes to avoid perl warnings
- First version to appear on FreshMeat.net
[edit] 0.80 - 23 Oct 2007
- added support for Apache mod_perl via Baldrick::Trousers module
- added env variables BALDRICK_BASE_DIRECTORY, BALDRICK_CONFIG_FILE, BALDRICK_CONFIG_PATH, to allow for setting these in Apache httpd.conf
- added timing to Baldrick::App and config file's timelog
- rewrote Baldrick::Stub to do timing, handle errors better.
[edit] 0.73 - 27 September 2007
- added session dumping to Request::saveInputs()
- added command line parsing via Getopt::Long
- reload of old request/session/environment using 'savedinputs' parameter
- rewrite App::init()
[edit] 0.72 - September 2007
- added transform-email, transform-username, transform-userid to Login section - allow scrubbing of user auth credentials before processing.
- added DungGatherer class and some basic pooling logic (however this does nothing useful until multi-request support is present)
- rewrote Baldrick::App::handleRequest()
- added App::sendToModule, Dogsbody::sendToModule
- rewrote Dogsbody::sendOutput() and Dogsbody::abort()
[edit] 0.71 - September 2007
- refactored UserLoader's doLoginLogout() as loadCurrentUser(), enhancing logic to determine if a user was logged in before the current page load.
- added onLogin() and onLogout() callbacks to User object - descendant classes can use these to take action when those activities occur (for example, recording last login date, checking banlists...)
- added deleteRows() and buildWhere() to Database
[edit] 0.70 - August 2007
- moved template initialisation to Dogsbody. Added support for multiple named template object configurations (template-adapter=LABEL), configurable template paths, variable expansions for template paths.
- allow for multiple session object configurations per installation using "session-manager=LABEL" and config sections "SessionManager LABEL"
- support UserAgent sections in config file to override module definition; this allows for robots to be dealt with appropriately
- moved most of Session creation to Session::factoryCreate()
- (version number jump from 0.66 to 0.70 indicates major change)
[edit] 0.65 - August 2007
- near complete rewrite of Session and FileSession. Moved much of FileSession into Session, refactored verification logic
- Session now can perform cleanup of its files automatically based on configuration options (session-cleanup-*)
[edit] 0.62 - initial public release - August 2007
[edit] 0.5x - private releases, 2006
0.5x, never released to the public, was in use on my own web sites beginning in the spring of 2006. Though its internal structure was less than ideal, it proved stable and reliable, with a shopping cart that utilised Baldrick handling several thousand dollars of transactions each day.
