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 ;)