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]().
* 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.