Warning, /kdevelop/kdev-krazy2/HACKING is written in an unsupported language. File is not indexed.
0001 Design 0002 ------ 0003 The file Design.xmi, created using Umbrello, contains the design of the plugin 0004 in UML notation. There are several UML diagrams; one for the general design and 0005 others focused on specific areas of the plugin (like the analysis or the UI). 0006 Note that they do not contain every method and attribute of every class, but 0007 just the key elements needed to describe and understand the design. 0008 0009 0010 0011 Documentation 0012 ------------- 0013 Every class, attribute and method (even private ones) should provide API 0014 documentation in Doxygen format. The API documentation should explain what it 0015 does and, maybe, why it does that, although how it does that should be 0016 explained, if needed, in C++ comments in the code itself. 0017 0018 However, those are "guidelines" more than actual rules. A trivial element may 0019 not need to be documented (like a "setX" method), or the documentation of some 0020 element may contain implementation details. 0021 0022 0023 0024 Unit tests 0025 ---------- 0026 Unit tests should be provided for every new feature. When fixing a bug, a unit 0027 test exposing the bug should also be provided. 0028 0029 Again, these are "guidelines". Sometimes it is just too complex to write an 0030 automated test for something, or something just does not need a unit test. 0031 0032 The unit tests are written using QTest. For each unit test a memory test can be 0033 run using CTest, although some memory tests (those that create a KDevelop 0034 instance) are disabled by default, as they need too many resources to be run. 0035 They can be enabled uncommenting them in the tests/CMakeLists.txt and then 0036 running make again. 0037 0038 Finally note that, although listed as unit tests, there are some automated tests 0039 that are far from being unit tests. For example, Krazy2ViewTest is more akin to 0040 an acceptance test, and takes a lot of time to run (in my system, at the moment 0041 of this writing, 150 seconds). 0042 0043 0044 0045 Commit policies 0046 --------------- 0047 Please, if you change the design, update Design.xmi. If needed, document your 0048 changes. And if applicable, add unit tests for them (or update the ones that 0049 already exist). 0050 0051 Again, those are guidelines. At the very least, try to not commit changes that 0052 do not compile or do not pass the existing tests ;)