Changes between Version 5 and Version 6 of GenericTrac
- Timestamp:
- Sep 3, 2009, 3:22:10 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GenericTrac
v5 v6 1 1 = GenericTrac Data Model = 2 2 3 {{{ 4 #!div style="margin-top: .5em; padding: 0 1em; background-color: #ffd; border:1px outset #ddc;" 3 This page tries to define a new data model that could be suitable 4 for 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 5 9 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: 10 This stems from the following former proposals: 11 - TracObjectModelProposal 13 12 - TracDev/Proposals/DataModel 14 13 - TracDev/Proposals/Journaling … … 18 17 See also [googlegroups:trac-dev:8cf3f5fe0e476ce5 this mail]. 19 18 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 19 As this will be a major redesign of the data model, 20 it could also be a good opportunity to take the 21 ''[TracMultipleProjects multiple project]'' considerations into account (#130). 25 22 Each resource related table should probably get a `project` identifier field. 26 23 27 == Current Status == 24 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 (see also #6543). 28 25 29 === TODO === 26 27 === Possible Implementation Plan === 28 ==== Milestone First ==== 30 29 - modify the Milestone module so that it uses the new proposed datamodel. See [#TheMilestoneExample]. 31 30 - experiment new tabbed view for the milestone (''View'', ''Discussion'', ''History''). See TracProject/UiGuidelines. … … 36 35 Once this is complete, validate the genericity by promoting the components to be first class resources as well (#1233). 37 36 37 ==== Ticket First ==== 38 38 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. 39 As the ticket module is by far the most complex, it might be worth to 40 try 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, ...) 40 47 41 48 42 === DONE === 43 - ''Not yet started'' 49 == The Model == 44 50 45 == The Milestone Example==51 === The Milestone Example === 46 52 47 53 The proposed data model would be: