Rosetta-Engine-Generic
----------------------------------------------------------------------

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

    * Rosetta-Engine-Generic Release 0.21.0.

    * New code file versions are: Generic.pm v0.21.0 and en.pm v0.13.0.

    * Updated external dependencies on Rosetta to v0.48.0 and on
    SQL::Routine::SQLBuilder to v0.21.0 and on SQL::Routine::SQLParser to
    v0.2.0.

    * From now on, if the minimum Perl version that this distribution depends on
    (currently 5.008001) comes bundled with a satisfactory version of a module
    that we have a dependency on, then we will no longer specify any version
    number when referring to said module.  An example of such is Test::More.

    * Converted every distribution file to use indentations composed of space 
    characters (4 spaces per indentation level) rather than tab characters.

    * Updated all files containing POD (*.pm, *.pod) to re-order some POD
    sections.  Now all of the POD is after all of the code, rather than that
    being mostly true but for a bit of POD before most of the code.  The 'NAME'
    POD has been moved to just above the 'SYNOPSIS'. The 'DEPENDENCIES' has been
    moved to just above the 'SEE ALSO'.  Any 'BUGS' and 'CAVEATS' have been
    moved to just below the 'SEE ALSO'.  The 'COPYRIGHT AND LICENSE' has been
    moved to the very end of the file, except that any 'CREDITS' have been moved
    below that.  Also updated the ReadMe file to move the 'CREDITS' below the
    'COPYRIGHT AND LICENSE'.  There were zero changes to the content of any POD
    sections, and no new POD sections were added or existing ones removed,
    except for those explicitly listed below.

    * Updated all files containing POD:  Deleted the 'SYNTAX' section, whose
    value was dubious, from any files that had one.  Renamed 'COPYRIGHT AND
    LICENSE' to 'LICENCE AND COPYRIGHT', and added a new 'AUTHOR' section just
    above it.  Renamed 'CREDITS' to 'ACKNOWLEDGEMENTS' in any files that had
    one.  COPYRIGHT and CREDITS were likewise renamed in the ReadMe file.

    * Updated the POD in all *.pm files:  Added a new 'VERSION' section, which
    appears just below the 'NAME'.  Added a new 'INCOMPATIBILITIES' section,
    which appears just below 'DEPENDENCIES'.  Renamed and/or merged any 'BUGS'
    and 'CAVEATS' sections into a single 'BUGS AND LIMITATIONS' section, and
    added that section to any files lacking its predecessors.  Rewrote the
    'DEPENDENCIES' into a new paragraph-resembling format that specifies where
    each dependency is, such as bundled with perl, or bundled with the current
    distribution, or available on CPAN; also rewrote the ReadMe file version.

    * Updated all *.pm files to add a new external dependency on the 'version'
    module, which has core-like functionality but isn't yet bundled with Perl;
    all 'our $VERSION' declarations were changed to qv-wrapped three-part format
    from floating point format; likewise, updated the *_00_Compile.t file to use
    'version', and also changed the tests for expected module versions to be
    performed by is() rather than cmp_ok().

    * Updated Generic.pm and Rosetta_Engine_Generic.t to add a new external dependency on the 'only' 
    module, which has core-like functionality but isn't yet bundled with Perl;
    all "use Foo N.NN" statements were changed to three-part format and now look 
    like "use only 'Foo' => 'N.N.N-'".

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

    * Rosetta-Engine-Generic Release 0.20.

    * New code file versions are: Generic.pm v0.20.

    * Updated external dependencies on Rosetta to v0.47 and on
    SQL::Routine::SQLBuilder to v0.20.

    * Added a new main title to this Changes file that matches the ReadMe file.

    * Rewrote the documentation section KEEPING UP TO DATE in the ReadMe file.

    * Corrected an oversight from release 0.19; added a 'Changes' file paragraph
    concerning the added Generic.pm classes and constructor wrapper methods.

    * Updated Generic.pm to retain compatability with changes made in
    SQL::Routine v0.66; one can no longer straight compare two SRT Node or
    Container objects to determine their equivalence, since they are now
    interfaces over a shared storage object.  Updated the Generic.pm method
    build_perl_declare_cx_conn() to use the new SQL::Routine method
    get_self_id() instead of the straight comparisons.

    * Updated Rosetta_Engine_Generic.t to retain compatibility with
    Rosetta::Validator v0.47, which has the old Rosetta::Utility::EasyBake
    merged into it.

    * Updated Generic.pm to retain compatability with changes made in
    SQL::Routine v0.69; replaced all invocations of the Node methods
    [get|clear|set]_[literal|enumerated|node_ref]_attribute[|s]() with
    invocations of [get|clear_set]_attribute[|s]().

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

    * Rosetta-Engine-Generic Release 0.19.

    * New code file versions are: Generic.pm v0.19 and en.pm v0.12.

    * Updated external dependencies on Rosetta to v0.46 and on
    SQL::Routine::SQLBuilder to v0.19.

    * This release is primarily to retain compatability with multiple other 
    distributions' recent updates; very little was changed besides this.

    * Added new external dependency on SQL::Routine::SQLParser v0.01; this
    module will be used by Generic.pm's schema reverse-engineering facility in
    the future, though at present it isn't actually used for anything, as is
    also still the case with SQL::Routine::SQLBuilder.

    * Updated all files in this distribution that display the physical address
    of the Free Software Foundation, Inc. so it uses their current address of
    "51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA" rather than their
    previous address of "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA";
    this affects every COPYRIGHT AND LICENSE statement in the core files and the
    'ReadMe' file, plus any 'GPL' or 'LGPL' license file.

    * Updated the INSTALL file so that it is more generic, and all of my
    distributions now use an identical copy of it.

    * Updated the main heading in the ReadMe file to state the distribution's
    name rather than a terse description of it.

    * Corresponding to a recent SQL::Routine::SQLBuilder update, replaced the
    Engine Configuration Option 'delim_ident' with a different 'ident_style'
    option, which affected the srtn_catalog_open() method, and also rewrote half
    of the related documentation.  Likewise updated t_setup.pl to invoke the new
    option in place of the old one.

    * Corresponding to a Rosetta change where execute() now invokes a same-named
    Engine function, and the Interface no longer stores a Perl closure for the
    Engine, added new Generic method execute() and new property 'prep routine';
    also updated new() to declare the property and prepare() to set it.  Also 
    renamed any $routine method variables to $prep_routine.

    * Removed the destroy() method since Rosetta Interface objects can now
    auto-destruct, and they will no longer invoke it.

    * Replaced all tests on an Interface's "interface type" property with tests
    on the Interface's class name, since the Rosetta Interface class was thus
    split into multiple classes and the property is gone.

    * Removed the routine_source_code() method, since no Interface method exists 
    any more that will call it.

    * Updated _throw_error_message() to use more descriptive argument names.

    * Updated prepare() and build_perl_routine() so that now only routines that
    are direct children of an 'application' Node can be externally invoked; if
    one wants to invoke a 'schema' routine now, they must do so within an
    'application' routine; previously, only inner routines of other routines 
    could not be invoked.

    * Following that Rosetta's new_*_interface() methods will now create their
    own Engine object for the new Interfaces rather than taking them as
    arguments, updated these Generic methods so they use that Engine object for
    setting properties of rather than making their own: prepare(),
    build_perl_routine(), build_perl_declare_cx_conn(), srtn_catalog_list().

    * Following that Rosetta now has 2 alternate parent/child trees (by-creation
    vs by-context), replaced any single or double-chained invocations of
    get_parent_interface() with single
    get_parent_by_[creation|context]_interface() invocations; these methods were
    updated: get_[env|conn|curs]_cx_e_and_i(), srtn_catalog_open().

    * Updated these methods to pass the alternate "parent interface" arguments
    to new_*_interface(): build_perl_declare_cx_conn().

    * Renamed any get_srt_node() Interface method calls with one of the
    following: get_app_inst_node(), get_link_prod_node(), get_routine_node(); it
    affected these methods: build_perl_declare_cx_conn(),
    srtn_catalog_[list|open|close]().

    * Added new constructor functions, a different one for each Interface type
    that an Engine backs, following that the Rosetta core now expects to invoke
    them rather than new(): new_*_engine where * is one of environment,
    connection, cursor, literal, preparation.  Added 5 mew class declarations,
    that currently subclass Rosetta::Engine::Generic but don't add any
    properties or methods: Rosetta::Engine::Generic::* where * is one of
    Environment, Connection, Cursor, Literal, Preparation.

    * Updated Rosetta_Engine_Generic.t, and the en.pm SYNOPSIS, to add
    'SQL::Routine::SQLBuilder::L::' to the Translator Sets list, following that
    SQL::Routine::SQLBuilder v0.19+ can throw its own (localized) exceptions.
    Likewise added 'SQL::Routine::SQLParser::L::' to both files.  Just Generic.t
    also had 'Rosetta::Utility::EasyBake::L::' added, since that is now used by
    Rosetta::Validator.

    * This distribution also had a few other minor changes and fixes.

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

    * Rosetta-Engine-Generic Release 0.18.

    * New code file versions are: Generic.pm v0.18 and en.pm v0.11.

    * Updated external dependencies on Rosetta to v0.45 and on
    SQL::Routine::SQLBuilder to v0.18.

    * Added explicit external dependency on Rosetta::Validator v0.45 to the
    Makefile.PL and ReadMe, for the test suite, just in case that dependency
    implicity defined by the requirement of Rosetta v0.45 wasn't sufficient.

    * Updated every instance of the COPYRIGHT AND LICENSE documentation in this
    distribution to correct the declared date range in which the core
    Rosetta::Engine::Generic files were created.  The new dates are 2002 thru
    2005, which is when I actually committed documentation describing or code
    implementing what became the Rosetta::Engine::Generic core.  The old dates
    were 1999 thru 2005, which goes back to the time that I started conceiving a
    larger project which the aforementioned module started out being related to;
    however, those earlier years did not contain any work on what specifically
    became the aforementioned module, so they are now excluded.

    * Updated every instance of the COPYRIGHT AND LICENSE documentation in this
    distribution so that you may now choose between licensing it under the GPL
    version 2 or any later GPL version, rather than only under version 2.

    * Renamed the "LICENSE" file to "GPL", and correspondingly updated all
    references to it in this distribution, most of them being in COPYRIGHT AND
    LICENSE statements.  This change was made to reduce user confusion in
    situations where files from this distribution may be aggregated with other
    files that have different licenses; the old name was too generic.

    * Updated Generic.pm to remain compatible with a recent SQL::Routine change
    such that Nodes now always live in Containers.  Updated make_srt_node() and
    make_child_srt_node() so they now invoke new_node() with 3 arguments rather
    than that method plus set_node_id() and put_in_container() each with 1.

    * Updated Rosetta_Engine_Generic.t to add 4 new tests at the top; 2 of these
    use Test::More's use_ok() function to cleanly test that the 2 core modules
    will load without errors; 2 of these test, with cmp_ok(), that the 2 core
    modules are of the correct versions.  Before this change, the original test
    script would simply die without any ok/not ok if the core modules were
    missing.  The total test count is now 10, up from 6.  Also removed function 
    print_message() plus its two invocations.  Also a minor update to 2 warnings 
    so they lead with a '#' rather than '--', as Test::More tends to do.

    * Renamed this file to 'Changes' from 'ChangeLog'; the new name is more
    descriptive to its free-form structure, and more consistent with CPAN (which
    uses both names but 'Changes' seems to be more common these days).  Also
    truncated this Changes file to remove all detail entries for releases v0.01
    thru v0.17; in their place was added a change summary for releases v0.01
    thru v0.17 that mainly just said what the names and versions of all the
    predecessor distributions and modules are.

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

    * Rosetta-Engine-Generic Release 0.17, containing Rosetta::Engine::Generic
    0.17, was released on CPAN.

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

    * Rosetta-Engine-Generic Release 0.16, containing Rosetta::Engine::Generic
    0.16, was released on CPAN; this is the first release of the
    Rosetta-Engine-Generic distribution.  This is the first release for this
    module where it explicitly has a version number matching its distribution.

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

    * Rosetta-Extensions Release 0.15, containing Rosetta::Engine::Generic 0.12,
    was released on CPAN; this is the last release of the Rosetta-Extensions
    distribution.  This is the last release for this module where it does not
    explicitly have a version number matching its distribution.

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

    * Rosetta-Extensions Release 0.07, containing Rosetta::Engine::Generic 0.04,
    was released on CPAN.  This is the first release of Rosetta::Engine::Generic
    following its merger with Rosetta::Engine::GenericAC.

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

    * Rosetta-Extensions Release 0.06, containing Rosetta::Engine::Generic 0.03
    and Rosetta::Engine::GenericAC 0.01, was released on CPAN.  This is the last
    release of those 2 modules prior to their merger with each other.  This is
    the first release of any distribution to contain Rosetta::Engine::GenericAC.

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

    * Rosetta-Extensions Release 0.01, containing Rosetta::Engine::Generic 0.01,
    was released on CPAN; this is the first release of the Rosetta-Extensions
    distribution.  This is the first release of any distribution to contain
    Rosetta::Engine::Generic.  This is the first release of any distribution for
    which some of the existing work that became the Rosetta-Engine-Generic
    distribution was in the form of executable code, and not just design
    documentation.

2004-03-25   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.29 was released on CPAN.  This is the last release of
    any distribution for which all of the existing work that became the
    Rosetta-Engine-Generic distribution was purely in the form of design
    documentation, without executable code of any kind.

2004-03-21   Darren Duncan <perl@DarrenDuncan.net>

    * Rosetta Release 0.27 was released on CPAN.  This is the first release of
    any distribution where the proposal documentation for
    Rosetta::Engine::Generic uses that name for it; it was also the first
    proposal to contain mention of such a module that is specifically generic to
    cover any DBI-supported database product; previously, the nearest thing
    proposed was a separate Engine module for each database product.

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

    * Rosetta Release 0.02 was released on CPAN; this is the first release of
    the Rosetta distribution.  Early versions of the design documentation that
    became the Rosetta-Engine-Generic distribution were included.

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

    * DBIx-Portable Release 0.01 was released on CPAN; this is the only release
    of the DBIx-Portable distribution.  This is the first release of any
    distribution to contain design documentation that became the
    Rosetta-Engine-Generic distribution.

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

    * Began development on the modules which became the Rosetta-Engine-Generic
    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::Engine::Generic.

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.