root/ext/Muldis-Rosetta/TODO

Revision 20273, 4.1 kB (checked in by Darren_Duncan, 9 months ago)

ext/Muldis-Rosetta/ : part 2 of renaming Muldis DB to Muldis Rosetta - most in-file changes

  • Property svn:mime-type set to text/plain; charset=UTF-8
  • Property svn:eol-style set to native
Line 
1                              Muldis::Rosetta
2---------------------------------------------------------------------------
3
4Following is a summary of things that still need doing.  It is specific to
5the Muldis-Rosetta core distribution only, and doesn't talk about things
6that would go in other distributions.  (But, look at
7lib/Muldis/Rosetta/SeeAlso.pod for a list of other related distributions
8that should be created.)
9
10The following list is loosely ordered by priority, but list items may
11actually be addressed in a different order.  There is no specific time
12table for these items; they are simply to be done "as soon as possible".
13
14* Generally speaking, make a new release to CPAN once every week, assuming
15the progress is non-trivial, so there are regular public snapshots with
16nicely rendered documentation.
17
18* Implement the Muldis D metamodel, that is, the catalog.  This is the main
19prerequisite for doing anything moderately more complex than what has
20already been done, including the support for user-defined data types,
21stored routines, constraints, virtual variables, and persisting databases.
22
23* Flesh out the user-input validation code in the Example Engine, as is
24appropriate, so that all bad input results in graceful failures rather than
25ungraceful ones.
26
27* Flesh out the various parts of the test suite.  There are currently 2
28main parts envisioned:  1.  Several t/*.t files that test support libraries
29of Example.pm in isolation.  2.  The Validator(|*).pm files which test
30Interface.pm and the Example Engine as a whole, as well as being reused for
31other Engine distributions.  Note that the core test suite should execute
32in the above given order, so consider renaming the Validate Example test to
33a higher number than 50 to make more room for others, such as to 80 or 90
34or 99.
35
36* Update the Example Engine to implement the rest of the relational
37algebra|calculus operators, as well as all the reasonable operators for
38other core data types: Bool, Int, Rat, Blob, Text.
39
40* Update the Example Engine to implement persisting databases.  For
41simplicity of implementation and learning, a whole depot will simply be one
42file containing serializations of all the relevant Perl data structures
43defining its catalog and data.  While this is very much non-scalable, the
44Example Engine is not intended to be scalable, just provide the correct
45semantics in the simplest way possible.  Other Engines will presumably do
46persistence in an intelligent and scalable (and more complicated) manner.
47
48* Update the Example Engine to implement the optional system-defined data
49types: temporal, spatial.
50
51* Optimize the Example Engine as can be done without making it too
52complicated for its primary use as an Engine reference implementation /
53learning tool.
54
55* Judiciously add external dependencies (besides Perl itself) to this core
56framework, at such times that a reasonable case can be made for it.
57
58* Applicable to the Perl 6 version only:  Exploit additional Perl 6
59features as they become implemented in Pugs and/or elsewhere, so to
60simplify our own code, which currently does manually what Perl 6 should do
61for us.  Examples being that if Perl actually enforces routine signatures,
62we won't have to manually check our arguments as much as we do, or at all.
63
64* Applicable to the Perl 5 version only:  Consider adding dependencies on
65version.pm and/or the Moose framework and/or Module::Build and/or some
66better exception handling module.  Consider raising the Perl version
67dependency to 5.10 from 5.8.1, to simplify further dependencies.
68
69* Applicable to the Perl 5 version only:  Consider lowering the Perl
70version dependency to 5.6 from 5.8.1, so that other projects which may
71become dependants of Muldis-Rosetta and already work under 5.6 won't have
72to force Perl core upgrades.  If this is done, the list of further
73dependencies will doubtless increase to include some things bundled with
74Perl 5.8, and/or Unicode may not work so well here.  Note that this may
75likely only happen if Moose was adopted, in which case the minimum Perl
76version we support is the same as the minimum that Moose supports.
77
78* Whatever else needs doing, such as, fixing bugs.
Note: See TracBrowser for help on using the browser.