2003-03-04 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.05.
* Created new file lib/Rosetta/Schema/DataType.pm which implements the
class Rosetta::Schema::DataType (v0.01); this is the first module to be
coded, and it is complete as of its first version. The already written POD
for this class that was in Rosetta::Framework under the section MODULE
DETAILS has been removed from that file and put in the new file instead,
with updates.
* Added new file t/Rosetta-Schema-DataType.t, to completely test the newly
coded module.
* Updated lib/Rosetta.pm (now at v0.05) and t/Rosetta.t to add the "use
warnings" pragma at the top of each file beside "use strict"; the
previously mentioned two new files also have the added pragma, which should
save users from having to put -w on the command line for these modules.
* Updated Rosetta::Framework further, in the STRUCTURE and BRIEF MODULE
LIST sections, to add references to a new set of core modules,
Rosetta::Locale::*. These are to function as constant data resources,
mainly holding user-readable text such as database error messages and so
forth, so that this text is separate from normal module code and easy to
edit. This is a set of files partly so that each file can have a different
localization; adding a new user language is as easy as adding another file.
The set of text strings being stored should be comprehensive enough that
any Driver module can use them, and therefore not need their own Locale
files for displaying error messages. All strings are mapped to short codes
(eg: 'R001372'); these codes are what the normal module code uses to
display a particular message.
2003-02-10 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.04.
* The file Documentation.pod was renamed to Framework.pod; that file's
internal name as declared in the POD is Rosetta::Framework; the file was
also moved into lib/Rosetta/; any references to this file in other files
were updated accordingly.
* In Framework.pod, updated BRIEF MODULE LIST to replace
Rosetta::Driver::Null with Rosetta::Driver::Native. The plan is that this
will be a fully-functional RDBMS implementation, and 100% Perl code; it
will implement all database features that the Rosetta core can interface
to, even if some real databases can't. This includes transactions,
locking, foreign keys, stored procedures, multiple 'users', and more. That
said, it is intended mainly for testing the Rosetta core, and will be
developed simultaneously with the latter. While Rosetta::Driver::Native is
fully functional, it is completely RAM-based for simplicity (nothing is
stored on disk, except perhaps by means of explicit freeze/thaw or the
like), and probably won't scale to more than a few thousand records
(namely, it will hold just whatever can all fit in RAM at once). It also
won't be designed with multi-threaded environments in mind, due to its
intent for testing (usually done by one person at a time); if you plan to
use it for more, you will need to serialize access yourself. Also, the
EXPANDED MODULE LIST :: DRIVER MODULES now describes the new module.
* In Framework.pod, moved section SCHEDULE FOR DEVELOPMENT down below BRIEF
MODULE LIST (leaving STRUCTURE right after DESCRIPTION). Some list items
in the moved section were also moved to be handled earlier.
2003-02-09 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.03.
* The most significant change in this release is that the file "Rosetta.pm"
has been split into itself and the new file "Documentation.pm". The latter
file now has all of the main Rosetta framework POD documentation. The
former now is very small and contains just module-specific documentation.
The new folders "lib" and "t" were also added to the distribution. As of
this release, Rosetta still consists entirely of documentation.
* Note that, as soon as module code starts being written, Rosetta will be
released as multiple distributions. This current distribution will contain
the framework core, mainly all of the Schema and Engine modules, and the
generic base class for Drivers, and continue under its existing name. A
new distribution named "Rosetta-Drivers" will contain most of the Driver
modules, and this is the only distribution that would have DBI and DBD::*
as prerequisites. Another distribution named "Rosetta-Emulators" will
contain the Emulator modules. Sample and utility applications will be in
yet another distribution, such as "Rosetta-Applications".
* Updated several parts of ReadMe file, particularly the Preface.
* Makefile.PL now hard-codes the distribution VERSION; this file now has
the authoritative VERSION for the distribution or framework itself.
* These were the main Documentation.pod sections with updates other than
from the file split (which removed PREFACE from both files):
- DEPENDENCIES - changed to "none" (from DBI) since core has no dependencies
- SCHEDULE FOR DEVELOPMENT - moved to later date stored Views and Pub Syn
- SYNTAX - removed section; content merged into STRUCTURE
- STRUCTURE - removed "Parser" from structure, made relationship graph complete
- BRIEF MODULE LIST - grouped modules by their distributions, added Driver::Null
- ROSETTA NATIVE DATA DICTIONARY STRUCTURE - separated Table, Select definitions
* Note that other POD sections are out of date and will need updating.
2003-01-27 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.02.
* This is the second release. The release and root-level module are now
called "Rosetta", which it was renamed to from "DBIx::Portable". It still
consists entirely of documentation in POD format, and all of that is in the
file Rosetta.pm.
* The documentation was significantly updated, with up to half of it being
rewritten. This release has a completed SYNOPSIS (the previous release
left out some significant parts due to time constraints), and several new
sections on framework design. In particular, the structure of the
internally used "schema" was fleshed out.
* These were the main sections with updates:
- ABSTRACT - new section
- SYNOPSIS - expanded to a complete Perl script with config file
- DESCRIPTION - several more paragraphs added
- SCHEDULE FOR DEVELOPMENT - rewritten from and replaces PROGRESS
- STRUCTURE - new section (not related to same-named old version section)
- BRIEF MODULE LIST - new section
- EXPANDED MODULE LIST - canibalized from the previous versions STRUCTURE
- ROSETTA NATIVE DATA DICTIONARY STRUCTURE - new section
- A BASIC TABLE STRUCTURE FOR STORING ROSETTA SCHEMAS - new section
- MODULE DETAILS
* These other sections had little or no updates:
- NAME
- PREFACE
- DEPENDENCIES
- SYNTAX
- MODULE DETAILS
- AUTHOR
- SEE ALSO
* Generally speaking, this release should be a lot better than the previous
one, although there are still large gaps or sections needing improving.
Subsequent releases will probably start including a code implementation,
with further documentation updates happening at the same time.
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. Knig)
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 thru 2003-01-19 Darren Duncan <perl@DarrenDuncan.net>
* On January 5th, a module registration request was sent to
modules@perl.org for "DBIx::Portable", which was to be the namespace root
for this distribution in release 0.01. But it was not registered. During
the following few days, both Tim Bunce and Brian D Foy replied (but no one
else), and alternate names were suggested instead, which I discussed
further with them. The general consensus was, being that I was making a
framework, my modules should have a unique root level namespace of their
own, which could be "brandable"; they should not be under the DBIx
namespace, or have the characters "DBI" in their root name. I came up with
some new ideas, and in doing so had rethought on part of the focus or
uniqueness of my framework. It was thought that using "Portable" or
"Abstract" were too generic sounding. My first new favorite, "Cipher", was
thought too easily confused with cryptography even though actually has a
wider meaning that was applicable. My other favourite suggestion of
"Rosetta" seemed to meet with Tim's approval.
* On January 9th, a module registration request was sent to
modules@perl.org for "Rosetta".
* On January 19th, a follow up to that request was sent which had a much
better description of what the framework would do, taken from its brand
new "ABSTRACT" POD, part of 0.02 in development.
2003-01-05 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.01.
* This is the initial release. It contains only documentation, and all of
that is in the file Portable.pm. This documentation isn't complete, but it
should be enough for a first version, and I am keeping strictly to a Jan 5
release date regardless of completeness.
2002-12-14 Darren Duncan <perl@DarrenDuncan.net>
* Began creating this new Perl distribution package for CPAN, using an
initial title of DBIx-Portable-0.01, including ReadMe and ChangeLog files.
2002-11-12 Darren Duncan <perl@DarrenDuncan.net>
* Began development on these modules as their own entity that is separate
from the application, which will be distributed open-source on CPAN, using
initial titles of DBIx::Portable and DBIx::Portable::*. The modules are to
comprise an RDBMS-generic DB framework for any application to use. This
development effort was discussed with the victoria.pm Perl Mongers group.
* 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.
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.