Project:
rmtoo
Code Location:
git://rmtoo.git.sourceforge.net/gitroot/rmtoo/rmtoomaster
Readme-Hacking.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
This file is not completed now - any might be in future. * Development Environment ** Tools *** Mandatory There are some mandatory tools to do development for rmtoo: Debian 6: $ apt-get install make graphviz texlive-latex-extra ** Eclipse For development of the source code, eclipse is used. This has some advantages about the emacs / vi approach - especially automated style and lint checking. *** OpenJDK Install the openjdk to use for eclipse - only JRE is needed. Debian 6: $ apt-get install openjdk-6-jre *** Eclipse Goto http://www.eclipse.org/ and install latest version. Be sure to use the non Java, non C++ version. *** PyDev Goto http://pydev.org and install the latest version. *** PyLint Install pylint Debian 6: $ apt-get install pylint In Eclipse goto: Preferences -> PyDev -> PyLint and enable pylint. *** PyUnit In Eclipse goto: Preferences -> PyUnit and choose Nose Test runner. * Ideas ** Use python iterator / self made iterator for GenericTreeModel There was an attempt to use the GenericTreeModel: use the object data structure which is already implemented and use this (by some glue - iterator objects) as a GenericTreeModel. The result was: o Impossible to use the available standard iterators from the different containeers. o too complicated (need a own class at each level) o introduced what should be avoided: during creating the iterator, some container must be created which is a copy (at least of references) to the real objects. This is one thing which should be avoided choosing this kind of implementation: that two or more containers must be held in sync. Because of this, the 'standard' TreeView is used - with some utility functions to access the values and synchronize data. * Testing ** Comparing XML There are many files containing XML data. These files are either generated directly inside the rmtoo's output module or with the help of an external library. *** History For some time (until version 19) an external library was used to compare XML files. This library called xmldiff has a major drawback: because it tries to generate the diff (what is much more than really needed) it is very time consuming for bigger files. The manual page of xmldiff notes that you can typically diff documents with about 100 nodes with the help of this library. Because the runtime of the comparison which was about 20 minutes for some bigger document xmldiff was dropped and an own function for comparing XML documents was established. *** Directly Generated Files Directly generated files are generated with the help of an output module directly. In this case a simple compare should be enough. It is defined that not only the (sub-) nodes should be equal but also the order in which they appear. *** External Libraries For some outputs external libraries are used. **** odfpy-svn20100810 This is the currently used version. This is the latest known working version which works with OpenOffice using the automatic generated odf documents. The problem with this library is, that the order of (sub-)nodes is arbitrary and even some (intermediate) nodes can be named different when using another computer. Therefore it is mostly not possible to do a simple xml comparison to check if documents are equal. **** odfpy-0.9.3 This version does not support creating ODF files which are generated by OpenOffice 3.2 (which is somewhat strange). *** Current 'solution' Because of the problems comparing automated created XML documents, the check is only done for the directly generated files. Local Variables: mode:outline End:
