Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – /trunk/doc/outlineplan – Rev 6

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 7u83 1
Outline Plan for Forthcoming Restructuring
2
==========================================
3
 
4
For context: I shall be keeping notes and plans in plain-text, while
5
making architectural or design decisions. I plan to be spending some
6
time working out things here; I'd rather keep them archived in SVN and
7
have them archived than lost.
8
 
9
There is currently no documentation of high-level design or other
10
developer documentation, aside from the grammars and formats of the
11
various tools in use. I'm planning to restructure the source somewhat,
12
and would like to make these things clear.
13
 
14
Eventually, this information will make its way to the TenDRA website
15
in the form of developer documentation, along with block diagrams and
16
other such things.
17
 
18
I'm separating my voice here: "I" refers to me personally (Katherine),
19
where I am not speaking on behalf of the entire project; "we" refers
20
to the project as a whole.
21
 
22
I'd like to build upon the vast amount of work Jeroen has put into the
23
project, and rather than discard his efforts, to make use of them -
24
without which, I don't believe this next stage for TenDRA would happen.
25
 
26
 
27
Stages
28
------
29
 
30
An overview of intended stages during restructuring:
31
 
32
 1. Lay out goals for the project.
33
 
34
    I've sketched out a list of these (at higher resolution than the
35
    three overseeing principles, which I don't want to change), and
36
    grouped them into sections.
37
 
38
    These are prioritised into chronological stages, and will form a
39
    guide for a marketing plan - whilst we are non-commercial, we can
40
    still use ideas from the commercial world for organising
41
    ourselves.
42
 
43
    This includes laying out phases for deployment, and identifying
44
    what demographics are attracted to each stage. For example, right
45
    now, the focus is on development, and so the project needs to be
46
    made more attractive to developers.
47
 
48
 2. Document existing High-Level design.
49
 
50
    This is documentation of block diagrams, and information flow
51
    within and between programs, at various levels of detail.
52
 
53
    The purpose of this is to assist in decisions for restructuring
54
    (which, currently, are estimates only), and to provide a stable
55
    base of documentation from which the developer resources may grow.
56
 
57
 3. Restructure directories. (More about this below)
58
 
59
    In accordance with the current goal of being made attractive to
60
    developers, and - perhaps more importantly - understandable by
61
    developers, I'm going to split the TenDRA code base up into formally
62
    separated units.
63
 
64
    Currently the code is kept roughly separate, as with any decently
65
    organised code base. However, I'd like the distinction to be visible
66
    to the developer in the form of concretely-defined APIs, and
67
    entirely separate build trees.
68
 
69
    With this split, the source becomes more digestible, but, more
70
    importantly, it will appeal to a wider audience. For example, a
71
    person interested in working with TDF may not be interested in the
72
    rest of the compiler. Previously, I suspect they were scared off
73
    from using it by the other unrelated things - and this applies to
74
    people interested in the other things, but not TDF!
75
 
76
    It is important to note that the information flow within each
77
    program will not change here: this is splitting up and formalising
78
    the divisions, not refactoring processes within each program.
79
 
80
 4. Bring the source tree to conform to a directory layout style guide.
81
 
82
    This is not a code style guide; it's a higher level up. This means
83
    that each directory should identify its purpose, and relate itself
84
    to a high-level design, for a conceptual overview.
85
 
86
    This is partially done (to great effect) with README files: I'd like
87
    to formalise this, and correlate it with a new overview.
88
 
89
    I suspect we're recreating documentation which did originally
90
    exist, and has been long-lost. I can only assume that developer
91
    documentation was not released when TenDRA was open-sourced.
92
 
93
    Meanwhile, after the directory restructuring, we'd need to recreate
94
    these anyway.
95
 
96
    This will break the build: I'm more concerned about getting things
97
    in the right place, than keeping it continuously buildable.
98
 
99
 5. Fix up build system.
100
 
101
    A lot of work has been done here, replacing the original build
102
    system with a newer one. After restructuring the directories, this
103
    will have broken drastically, and needs re-creating for each
104
    individual program.
105
 
106
    Here I'd also like to start on making the system continuously
107
    buildable; from this point, commits should not break the build,
108
    unless they are multistage architectural changes.
109
 
110
Work past this point is beyond the scope of this document.
111