Edgewall Software

Changes between Version 5 and Version 6 of GenericTrac


Ignore:
Timestamp:
Sep 3, 2009, 3:22:10 PM (15 years ago)
Author:
Christian Boos
Comment:

refresh and restructure the page a bit (still "old" new model)

Legend:

Unmodified
Added
Removed
Modified
  • GenericTrac

    v5 v6  
    11= GenericTrac Data Model =
    22
    3 {{{
    4 #!div style="margin-top: .5em; padding: 0 1em; background-color: #ffd; border:1px outset #ddc;"
     3This page tries to define a new data model that could be suitable
     4for most Trac resources. The main benefits expected from the new model are:
     5 - simplification of the internals of Trac, especially for the ticket model,
     6   in which the storage of changes is quite cumbersome (see #454, #6466)
     7 - solve several desing problems with the current data model (#1890)
     8 - allow better code reuse
    59
    6 '''Note:''' This page was about an experimental branch which was never started.
    7 Instead, it will eventually be developed as an experimental fork of Trac, which
    8 will provide more freedom in making deep changes and make it possible to host
    9 the development separately.
    10 }}}
    11 
    12 The branch was meant to try out the various ideas exposed in the following proposals:
     10This stems from the following former proposals:
     11 - TracObjectModelProposal
    1312 - TracDev/Proposals/DataModel
    1413 - TracDev/Proposals/Journaling
     
    1817See also [googlegroups:trac-dev:8cf3f5fe0e476ce5 this mail].
    1918
    20 
    21 == Design Notes ==
    22 
    23 As this will be a major redesign of the data model, it will also be a good opportunity to tackle the ''[TracMultipleProjects multiple project support]'' in Trac (#130).
    24 
     19As this will be a major redesign of the data model,
     20it could also be a good opportunity to take the
     21''[TracMultipleProjects multiple project]'' considerations into account (#130).
    2522Each resource related table should probably get a `project` identifier field.
    2623
    27 == Current Status ==
     24Working on the generic aspect of Trac should also make it possible to implement various ''generic'' operations on Trac resources as plugins, mainly being able to (re-)implement TracCrossReferences as a plugin (see also #6543).
    2825
    29 === TODO ===
     26
     27=== Possible Implementation Plan ===
     28==== Milestone First ====
    3029 - modify the Milestone module so that it uses the new proposed datamodel. See [#TheMilestoneExample].
    3130 - experiment new tabbed view for the milestone (''View'', ''Discussion'', ''History''). See TracProject/UiGuidelines.
     
    3635Once this is complete, validate the genericity by promoting the components to be first class resources as well (#1233).
    3736
     37==== Ticket First ====
    3838
    39 Working on the generic aspect of Trac should also make it possible to implement various ''generic'' operations on Trac resources as plugins, mainly being able to (re-)implement TracCrossReferences as a plugin.
     39As the ticket module is by far the most complex, it might be worth to
     40try out the new model there first:
     41 - we could verify that we meet the expectations in terms of code simplification,
     42   solving open issues, etc.
     43 - we could detect early if there are no regressions or risk of losing current features
     44 - by redeploying the ticket infrastructure to the other components,
     45   we could spread the most benefits of tickets (comments,
     46   custom fields, queries, etc.) to other resources (milestone, wiki, component, ...)
    4047
    4148
    42 === DONE ===
    43  - ''Not yet started''
     49== The Model ==
    4450
    45 == The Milestone Example ==
     51=== The Milestone Example ===
    4652
    4753The proposed data model would be: