                              Rosetta
----------------------------------------------------------------------

2005-09-28   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.48.3 (SVN r878).

    * New code file versions are: Rosetta.pm and Validator.pm 0.48.3 and
    Rosetta/L/en.pm 0.19.2 and Validator/L/en.pm 0.14.2.

    * From now on, any ordinary 'use [|only ]Foo' statements that appear
    within *.pm files will be located in different places than before; the
    'use' statements for modules that do not export anything, particularly
    object oriented modules, will appear near the top of the file, above
    all package declarations, but just below the use-pragma statements; the
    'use' statements for modules whose exported functions we are using will
    be placed just below the declarations of each package in which the
    relevant exported functions are used.

    * Removed any line-trailing whitespace from all distribution files.

    * Reformatted all code by swapping various string quoting delimiters.

    * Reformatted Rosetta.pm and Validator.pm to un-cuddle all 'else' and
    'elsif' blocks.

    * Updated Rosetta.pm and Validator.pm and Framework.pod to replace all
    of their 'unless' conditionals with equivalent 'if' conditionals.

    * Updated Rosetta.pm and Validator.pm and Framework.pod to rename all
    of their 'foreach' loops to 'for'.

    * Updated Rosetta.pm and Validator.pm to move their collective 5 switch
    statement labels upwards to their own lines.

    * Updated Framework.pod to reformat all 3 regular expressions so that
    they use the /x flag.

    * Reformatted all code to change any "if( ... ) {" to "if (...) {".

    * Updated Validator.pm to reformat all 4 'while' like the 'if' were.

    * Added named constant $EMPTY_STR to Rosetta.pm and Validator.pm.

    * In Framework.pod, removed redundant leading '&' from sub invocations.

    * Updated Rosetta.pm, Validator.pm, Framework.pod to add labels to all
    un-labeled [next|last|redo] statements (3,1,2), and their innermost
    bounding loop controls (2,1,2).

    * Reformatted all code so that any uses of the named unary operators
    [defined|ref] no longer have parenthesis around their argument.

    * Updated Rosetta.pm to reformat 2 uses of 'delete' like with 'ref';
    likewise updated Framework.pod with 2 uses of 'hex'.

    * Removed 1 superfluous use of 'scalar' in each of Validator.pm and
    Framework.pod.

    * In Validator.pm, split up 7 multi-statement lines so each statement
    is on its own line.

    * Updated Rosetta.pm to replace 5 "<condition> and return ...;" each
    with "return ... if <condition>;".

    * Updated Rosetta.pm to replace 3 "<condition> or return ...;" each
    with "return ... if <complement-condition>;".  Likewise replaced 4 in
    Validator.pm and 1 in Framework.pod.

    * Updated Rosetta.pm and Validator.pm to replace (2,8) "<condition>
    [and|or] [next|last] ...;" with "[next|last] ... if ..." like with
    'return'.

    * Updated Framework.pod to replace 10 "if ... return ..." with their
    postfix-if equivalents; Validator.pm also had 1 such change.

    * Updated Validator.pm to rearrange 8 conditional 'die' statements so
    they have postfix-if conditionals.

    * Updated Rosetta.pm to rearrange 29 conditional '_throw...' statements
    so they have postfix-if conditionals.

    * Reformatted all code, in Rosetta.pm and Validator.pm and
    Framework.pod, so that any uses of the built-in operators or functions
    named [bless|chomp|join|pack|push|read|shift|split] no longer have
    parenthesis around their argument lists; either the parens were just
    removed, or they were moved to surround both the operator/function name
    and its arguments.

    * Updated Rosetta.pm to reformat all 3 uses of the honorary built-in
    function Scalar::Util::weaken() so it looks like a built-in; for each
    use, the package-name qualifier was removed, as were the parenthesis
    around its lone argument.  Since Scalar::Util exports nothing by
    default, added a 'qw( weaken )' suffix to its 'use' statement.

    * Added new external dependency on the honorary built-in function
    List::Util::first() to Rosetta.pm.  Then replaced a last-terminated
    for-loop in _prepare__call_engine() with an invocation of it.

    * Added new external dependency on the honorary built-in function
    Scalar::Util::openhandle() to both the set_trace_fh() method of
    Rosetta.pm and the main() function of Validator.pm; both of these can
    now reliably test if their [NEW|TRACE]_FH argument is a valid open file
    handle, and they will now throw an exception if not.  Correspondingly,
    added 'ROS_CLASS_METH_ARG_NO_FH' user text message to Rosetta/L/en.pm,
    and 'ROS_VAL_V_MAIN_ARG_TRACE_NO_FH' to Validator/L/en.pm.  Also
    updated the setup_[env|conn]() methods of Validator.pm to only
    conditionally invoke set_trace_fh(), since passing it undef now results
    in an exception toss by the latter.

    * Split up some long lines in both en.pm.

    * Updated any DEPENDENCIES documentation to reformat any indented
    sections as paragraphs, and show version ranges like 'only' takes them.

    * Reformatted all code so that every occurance of the string
    concatenation operator (.) has a space between the operator and each of
    its 2 arguments, rather than their all being in contact.  Also
    reformatted any lines that are split on this operator so the operator
    appears at the start of the second line, rather than the end of the
    first line.

    * Reformatted a few multi-line statements so that any [=|and|or] that
    are split on appear at the start of a line rather than the end of one.

    * Reformatted all of the code comments at the top of Rosetta.pm and
    Validator.pm, where its object property names, and constant values, are
    declared, so that all comment lines don't exceed the 75 character line
    length.

    * In Framework.pod, reformatted 1 cascading ternary statement into
    aligned columns.

    * Other miscellaneous code line alignments and splitting.

2005-09-14   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.48.2 (SVN r813).

    * New code file versions are: Rosetta.pm and Validator.pm 0.48.2.

    * Merged Details.pod into Rosetta.pm:  The Rosetta.pm main
    documentation section BRIEF FUNCTION AND METHOD LIST was deleted, and
    all of the significant content of Details.pod was placed in the same
    location.  These 23 main documentation sections were moved from
    Details.pod to Rosetta.pm: STRUCTURE, FEATURE SUPPORT VALIDATION,
    CONSTRUCTOR WRAPPER FUNCTIONS, INTERFACE OBJECT METHODS, INDIRECT
    APPLICATION OBJECT METHODS, plus [* CONSTRUCTOR FUNCTIONS, * OBJECT
    METHODS] where '*' is each of [APPLICATION, ENVIRONMENT, CONNECTION,
    CURSOR, LITERAL, SUCCESS, PREPARATION, ERROR], ENGINE OBJECT FUNCTIONS
    AND METHODS, DISPATCHER OBJECT FUNCTIONS AND METHODS.  These 5
    remaining Details.pod documentation sections were redundant and simply
    deleted with their now superfluous file: NAME, DESCRIPTION, SEE ALSO,
    AUTHOR, LICENSE AND COPYRIGHT.  Removed all references to Details.pod
    in all other distribution files.

    * Updated the BRIEF MODULE LIST of Framework.pod to remove the
    references to SQL::Routine::Details and Rosetta::Details, both of which
    no longer exist.

    * Updated Framework.pod to remove all references to possible versions
    of this library that are written in other languages, such as C or
    Parrot/Pugs/Perl 6.  A C version is unlikely to ever happen, or by that
    time these references would be severely out of date, and either way
    they are clutter now.  The Perl 6 version is happening now, but since
    that is a clone of the Perl 5 version, there's no point for its
    documentation to refer to itself as a potential future project. Removed
    the last STRUCTURE paragraph, which specified details about a C
    representation of Rosetta.  Removed the whole main documentation
    section AN ALTERNATIVE SECOND VERSION, which mentioned Parrot etc.

2005-09-12   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.48.1 (SVN r808).

    * New code file versions are: Rosetta.pm and Validator.pm 0.48.1 and
    Rosetta/L/en.pm 0.19.1 and Validator/L/en.pm 0.14.1.

    * Updated the BRIEF MODULE LIST of Framework.pod to reflect that
    SQL::Routine, Rosetta::Engine::Generic gained a few inner classes
    recently.

    * Updated all POD-containing files to re-wrap any non-indented POD
    paragraphs to a 75 character width, which is 5 less than the 80
    character width they were wrapped to before.  This change should make
    it easier to copy and paste a diff or patch of this documentation into
    an email message, where it is quoted at least once, without any line
    wrapping occurring.  Likewise, these standard documentation files were
    re-wrapped to 75 characters: ReadMe, INSTALL, LGPL|GPL, Changes, TODO.

    * Revised this Changes file to replace all detail entries for releases
    0.44 thru 0.48.0 with a significant release list for the same period;
    also added references to when all 'Rosetta developer release' (#s 1-3)
    were.

2005-09-08   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.48.0 (SVN r787), containing Rosetta 0.48.0 and
    Rosetta::Validator 0.48.0, was released on CPAN.  This is the first
    release of this distribution and its modules for which they had 3-part
    version numbers, rather than floating point version numbers.

    * These were the current versions cited by the public announcement for
    Rosetta/SQL-Routine developer release #3.

2005-09-01   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.47, containing Rosetta 0.47 and Rosetta::Validator
    0.47, was released on CPAN.  This is the first release of
    Rosetta::Validator following its merger with
    Rosetta::Utility::EasyBake.  This is the last release of this
    distribution and its modules for which they had floating point version
    numbers, rather than 3-part version numbers.

2005-07-07   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.46, containing Rosetta 0.46 and Rosetta::Validator
    0.46 and Rosetta::Utility::EasyBake 0.01, was released on CPAN.  This
    is the first release of any distribution to contain
    Rosetta::Utility::EasyBake, which was split off from Rosetta; this is
    the first release of Rosetta following that split.  This is the last
    release of Rosetta::Utility::EasyBake prior to its merger into
    Rosetta::Validator.

2005-05-13   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.45, containing Rosetta 0.45 and Rosetta::Validator
    0.45, was released on CPAN.  This is the last release of Rosetta prior
    to its split into itself and Rosetta::Utility::EasyBake.

2005-04-03   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.43, containing Rosetta 0.43 and Rosetta::Validator
    0.43, was released on CPAN.

    * These were the current versions cited by the public announcement for
    SQL-Routine/Rosetta developer release #2.

2004-10-26   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.37, containing Rosetta 0.37 and Rosetta::Validator
    0.37, was released on CPAN.  This is the first release for this
    distribution where Rosetta and Rosetta::Validator explicitly have
    matching version numbers.

2004-10-04   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.36, containing Rosetta 0.36 and Rosetta::Validator
    0.06, was released on CPAN.  This is the last release for this
    distribution where Rosetta and Rosetta::Validator do not explicitly
    have matching version numbers.

2004-08-16   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.33, containing Rosetta 0.33 and Rosetta::Validator
    0.03, was released on CPAN.  This is the first release for this
    distribution and Rosetta module where they both explicitly have
    matching version numbers, aside from the explicitly matched releases
    0.01 thru 0.061.

2004-08-12   Darren Duncan <perl@DarrenDuncan.net>

    Record update in the PAUSE modules database:

    description: [Rigorous database portability] was [Rigorous database portability framework]

    The resulting entry will be:

    Rosetta           cdpOg Rigorous database portability                DUNCAND

2004-08-12   Darren Duncan <perl@DarrenDuncan.net>

    Record update in the PAUSE modules database:

    description: [Rigorous database portability framework] was [Framework for RDBMS-generic apps and schemas]

    The resulting entry will be:

    Rosetta           cdpOg Rigorous database portability framework      DUNCAND

2004-08-06   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.32, containing Rosetta 0.16 and Rosetta::Validator
    0.02, was released on CPAN.  This is the last release for this
    distribution and Rosetta module where they both do not explicitly have
    matching version numbers.

    * These were the current versions cited by the public announcement for
    Rosetta/SQL-SyntaxModel developer release #1.

2004-07-07   Darren Duncan <perl@DarrenDuncan.net>

    Record update in the PAUSE modules database:

    statl: [p] was [h]

    The resulting entry will be:

    Rosetta           cdpOg Framework for RDBMS-generic apps and schemas DUNCAND

2004-07-05   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.31, containing Rosetta 0.15 and Rosetta::Validator
    0.01, was released on CPAN.  This is the first release of any
    distribution to contain Rosetta::Validator.

2003-04-27   Darren Duncan <perl@DarrenDuncan.net>

    Record update in the PAUSE modules database:

    statl: [h] was [p]

    The resulting entry will be:

    Rosetta           cdhOg Framework for RDBMS-generic apps and schemas DUNCAND

2003-04-16   Darren Duncan <perl@DarrenDuncan.net>

    Record update in the PAUSE modules database:

    statp: [g] was [p]

    The resulting entry will be:

    Rosetta           cdpOg Framework for RDBMS-generic apps and schemas DUNCAND

2003-04-15   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.07, containing Rosetta 0.062, was released on CPAN.
    This is the first release for this distribution and Rosetta module
    where they both do not explicitly have matching version numbers.

2003-03-09   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.061, containing Rosetta 0.061, was released on
    CPAN. This is the last release for this distribution and Rosetta module
    where they both explicitly have matching version numbers, aside from
    the explicitly matched releases 0.33 and later.

2003-01-27   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.02, containing Rosetta 0.02, was released on CPAN;
    this is the first release of the Rosetta distribution, which was
    renamed from DBIx-Portable.  This is the first release of any
    distribution to contain Rosetta, which at this time contains no
    executable code but for declaring a name and version.  Early versions
    of the design documentation that became the Rosetta distribution were
    included.

2003-01-21   Darren Duncan <perl@DarrenDuncan.net>

    The next version of the Module List will list the following module:

      modid:       Rosetta
      DSLIP:       cdpOp
      description: Framework for RDBMS-generic apps and schemas
      userid:      DUNCAND (Darren Duncan)
      chapterid:    7 (Database_Interfaces)
      enteredby:   ANDK (Andreas J. König)
      enteredon:   Tue Jan 21 08:20:47 2003 GMT

    The resulting entry will be:

    Rosetta           cdpOp Framework for RDBMS-generic apps and schemas DUNCAND

2003-01-05   Darren Duncan <perl@DarrenDuncan.net>

    * DBIx-Portable Release 0.01, containing DBIx::Portable 0.01, was
    released on CPAN; this is the only release of the DBIx-Portable
    distribution, which was subsequently renamed to Rosetta.  This is the
    only release of any distribution to contain DBIx::Portable, which at
    this time contains no executable code but for declaring a name and
    version.  This is the first release of any distribution to contain
    design documentation that became the Rosetta distribution.

2002-11-12   Darren Duncan <perl@DarrenDuncan.net>

    * Began development on the modules which became the Rosetta
    distribution as their own entity that is separate from my application,
    for open-source distribution on CPAN.  The modules were to comprise an
    RDBMS-generic DB framework for any application to use.

    * Modules based on a template created by h2xs 1.18.

2002-07-28

    * Posted the first significant update to the second prototype, which
    added an index or cache for data that was expensive to calculate for
    each page request, and involved rewriting about a fourth of the perl
    code.

2002-06-07

    * Posted to my website the second public prototype demo of the new
    self-proprietary database driven application, whose database schema,
    user interface, feature set, and Perl application code was almost
    completely rewritten. The new version explicitly had separate modules
    for database communication and the web interface logic, with
    MySQL-specific code and database generic or data dictionary code in
    separate files, and separate files for parts of the web interface.  The
    program used the same generic CPAN modules as in the first prototype,
    DBI/MySQL and CGI::Portable.

    * This is when I started writing self-contained code components that
    were explicitly designed to enable external code that used them to work
    seamlessly on multiple database products, and hence 2002 is the start
    of my declared copyright date range for Rosetta.

2001-11-24

    * Posted the last update to the first prototype.

2001-07-12

    * Posted to my website the first public prototype demo of a new
    self-proprietary database driven application, which is like a cross
    between a multimedia metadata catalogue and a repository for historical
    or genealogical data.  This application contained the first prototypes
    of code that ended up in these modules.  All of this application's
    code, for database communication and web interface logic, was situated
    in a single module, with the rest of the program being more generic
    CPAN modules like DBI (and DBD for MySQL) and CGI::Portable.

2000-05-17

    * Requested MySQL database privileges on my web host so I have
    something to start developing, testing and deploying database driven
    applications on.
