source: trunk/docs/DOCS.txt @ 804

Last change on this file since 804 was 702, checked in by adrpo, 13 years ago
  • renamed all to .txt
File size: 6.2 KB
Line 
1THE MDT HACKING MANUAL
2
3� THESIS REPORT
4
5The thesis report will hopefully contain some usefull information for
6developers of MDT. Here someone will add a list of section to read there.
7
8� REPOSITORY STRUCTURE
9
10�� BACKGROUND BLURB
11
12This section describes the folder structure of the repository, where the things
13are stored and where they should be stored. The discussion starts at the root
14of the MDT subversion repository. Refer to the MDT website for the URL to
15the root of the repository.
16
17�� THE ROOT
18
19 (repository root)
20   + tags     release (and possiby other) tags
21      + 0.2   source code for 0.2 release of MDT
22   + trunk    the mainline brunch
23   + docs     general documentation on the project
24
25�� PROJECS
26
27Inside the trunk directory or root directory of any branch there is following
28structure:
29
30  (branch root)
31    + org.modelica.mdt.core       The core plugin project
32    + org.modelica.mdt.ui         the UI contributions of the MDT plugin
33    + org.modelica.mdt.omc        the OMC 'driver'
34    + org.modelica.mdt.test       the regression tests
35    + org.modelica.mdt.feature    the MDT feature that groups all plugins
36    + org.modelica.mdt.site       the MDT update site
37    + org.modelica.mdt.debug.core the MDT debug core plugin
38    + org.modelica.mdt.debug.ui   the MDT debug UI plugin
39
40All folders are Eclipse projects and can be checked out into the root of
41the eclipse workspace.
42
43� BUILDING SOFTWARE
44
45The only supported way to build mdt plugins, regression tests, feature and
46update site is through Eclipse. Normaly it is sufficient to import the
47projects into the workspace and let the eclipse autobuilders do the job.
48Building the feature and updatesite is a manul processdure and is documented
49in the 'Making a release' section in this manual.
50
51The only general requirment for all projects is Eclipse 3.* PDE environment.
52It should be noted that only Eclipse 3.1 and 3.1.1 have been tested and stuff
53may not work as prescribed in earlier versions.
54
55
56�� BUILDING REGRESSION TESTS
57
58To build (and run) the regression tests you need to download 'abbot for eclipse'
59version 1.0rc1 or later plugin. It is available from
60http://prdownloads.sourceforge.net/abbot/abbot_1.0-rc1-eclipse-3.0.zip?download
61
62�� PROJECTS FOR REGRESSION TESTS
63
64Many test cases need to create a projects to setup the environment for testing.
65Becouse all the tests are run in the same workspace there is a risk of
66conflicts in the projects namespace between different test cases. To avoid this
67and to simplify maintainance of the tests, following scheme should be used apon
68creation of guinnia pig projects.
69
70For each created project a constant PROJECT_NAME_n must be created. The constant
71should be assigned value of TestCaseName.class.getName() + "1". For example test
72case TestFoo, which will create two project will contain following constant
73declaration:
74
75public class TestFoo extends TestCase
76{
77    private static final String PROJECT_NAME_1 =
78        TestFoo.class.getName() + "1";
79
80    private static final String PROJECT_NAME_2 =
81        TestFoo.class.getName() + "2";
82   
83    // .....
84}
85
86� INSTRUMENTATION
87
88The org.modelica.mdt.omc plugin defines trace options. The options can be used
89to get an insite on what the plugin is up to. So far only tracing communication
90with OMC is implemented.
91
92The options can be enabled from the 'Run' dialog. Choose 'Run->Run...' from
93the top menu. In the 'Run' dialog make sure your Eclipse Application run
94configuration is selected, the tracing options are available in the 'Tracing'
95tab.
96
97�� org.modelica.mdt.omc/trace/omcCalls
98
99When enabled writes calls to and replys from OMC to the standard out. Calls
100are prefixed with ">>" and replyes are preseeded with "<<".
101
102Actually the calls which a logged are the arguments to function sendExpression()
103in the OMC which is called through the CORBA interface.
104 
105�� org.modelica.mdt.omc/trace/omcStatus
106
107Loggs the status of the connection to an OMC instance. So far only the code
108that sets up the OMC connection is covered.
109 
110� MAKING A RELEASE
111
112�� MOTIVATIONAL BLURB
113
114The intention of this section is to serve as both a cheat sheet while making a
115release and to formalize the release building process. A more formal release
116procedure should help avoid making stupid misstakes and hopefully improve the
117quality of the releases. All in all, doesn't everyone love processes?
118
119�� THE RELEASE PROCEDURE
120
121 * start with a clean workspace, e.g. use File->Switch Workspace and switch to
122   an empty folder
123   
124 * checkout (as Plugin-Projects) from whatever branch/revision you want to make
125   a release:
126   
127    - org.modelica.mdt.core
128    - org.modelica.mdt.omc
129    - org.modelica.mdt.ui
130    - org.modelica.mdt.feature
131    - org.modelica.mdt.site
132    - org.modelica.mdt.test
133    - org.modelica.mdt.debug.core
134    - org.modelica.mdt.debug.ui
135
136
137 * if you have trouble building do this:
138   - update classpath on core, omc, ui and test plugins
139     (PDE Tools -> Update classpath... from context menu on project node)
140   - make sure Java Compiler is set to version 5 (1.5) on projects or globaly
141   
142 * run the regression tests
143   If some of the tests fail, go back to the drawing board.
144
145 * update version number in:
146    org.modelica.mdt.core/plugin.xml
147    org.modelica.mdt.omc/plugin.xml
148    org.modelica.mdt.ui/plugin.xml
149    org.modelica.mdt.feature/feature.xml
150    org.modelica.mdt.debug.core/plugin.xml
151    org.modelica.mdt.debug.ui/plugin.xml
152
153
154* add the new version feature to the update site
155 
156 * run 'PDE tools'->'Build site' from the context menu of
157   org.modelica.mdt.site/site.xml
158
159 * export the update site to a test location on a webserver, use
160   'Export'->'File System' wizard. Make sure that both features and plugin
161   directories are exported.   
162   
163 * test with a clean eclipse installation that the MDT-plugin installs correctly
164   from the update site. Use the Help->'Software Updates'->'Find and Install...'
165   Check that it runs as expected.
166
167 * commit changes
168   
169 * upload the binaries to the offical update site
170
171 * make a version tag in <..>/tags folder in repository after the
172   relase is made public
173   
174 * enjoy the release party!
175 
Note: See TracBrowser for help on using the repository browser.