Jamaica roadmap brainstorming

"[email protected]" <[email protected]> Fri, 01 May 2009 10:01:46 +0200
Newsgroups gmane.comp.cms.xaraya.devel
Organization Xaraya
Message-ID <[email protected]>
The following is a first cut of ideas for a Jamaica roadmap. These 
roadmap ideas focus on "tracks", rather than versions. The track idea 
lets us look at different developent areas simultaneously, inasmuch as 
each track addresses one or more areas fairly distinct from the others. 
This means that releases can in theory be drawn from any track as it 
reaches its milestones. The numbers in each track may be fleshed out to 
actual releases at some point, but below they are just for reference, 
and in particular don^t represent any foreseen order of releases.

Track A

2.0
Work will be based on the current core.jamaica repository as described 
in previous emails. In addition to the usual bugfixes that accumulate, 
there will be a review and cleanup of the code in the core modules, as 
well as templates if time permits.
We should also arrive at a reasonable coverage of the API through units 
tests, which will make faclitate fixing things going forward. Some of 
the more globally useful dataproperties in modules can also be moved to 
the core modules (for the time being, see 2.5 below). Core Module 
overviews need to be rewriten.

2.1
In this phase the BL2 compiler will reach a "completed" state. A 
mechanism will be implemented for installing custom tags. MLS support 
for attributes may or may not be implemented.

2.2
Integration of the core.unstable.tableddl scenario. The focus here is on 
making it possible to manage the data tables via the UI. The code for 
tables in the core modules and the core is removed, and XML files are 
used instead.

2.3 Integration of the core.unstable.newblocks scenario. This reduces 
the number of blocks tables. Convert blocks to an object tree akin to 
the dataproperties in DD. Integration of the core.jamaica.blockmasks 
scenario. This introduces anonymous masks for blocks. Other enhancements 
are still to be discussed.

2.4 Privileges rework, we need a clearer concept of how security checks 
are applied in different situations. The privileges UI also needs to 
become simpler. Look at the data manager concept and decide if/how to 
implement this in some form.

2.5 Finalize and implement a file structure based on the proposals 
already on hand. This should make it possible to centralize definitions 
for things such as dataproperties or libarary plugins.

2.6 Creation of a component manager (initially probably as a module) 
based on propel or something similar. The manager should make it 
possible to update sites with the latest release automatically. It 
should also manage module installs in an easy and automatic manner, a la 
joomla. For this, a completed file structure design is a requirement for 
this work.


Track B

3.0 This track may be based on developent work in the 
core.jamaica.singleds scenario (not yet in the official repositories). 
It scales back dynamicdata to support only certain types of data stores, 
and in particular only one store per object. Data sources are all 
defined in the objects, and each automatically  assembles its dataquery 
when it is created. In this way the querying of the database becomes 
transparent to the developer. Specific features include automatic 
one-to-one multitable support and one-to-many support. The subitems 
property from my math module repository can also be added (to the base 
module?).
In this development track we also need to review the status of Creole, 
whether or not to replace it and with what. This is not because Creole 
considers itself dead. The main question is whether Creole can support 
the new dd concept of datastorage.


Track C

4.0 This track will focus on client side enhancements to the UI, in 
first order AJAX and one or more JS frameworks. Support for both XML and 
JSON for AJAX is likely to be needed, but we could do with XML for 
starters. A good JS-PHP library would be helpful, since we probably 
don't want to write one ourselves. A major question is therefore to what 
degree we want to expose one or more javascript APIs in the codebase, 
or, seen from a different angle: do future Xaraya core or module 
developers need to know javascript in addition to the already long list 
of skills needed?

Additions and ideas welcome!