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.