Projects/English Breakfast Network: Difference between revisions
< Projects
Bbroeksema (talk | contribs) No edit summary |
Bbroeksema (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
The [http://www.englishbreakfastnetwork.com English Breakfast Network (EBN)] is a site dedicated to KDE Quality, including: KDE API Documentation Validation, User Documentation Validation | The [http://www.englishbreakfastnetwork.com English Breakfast Network (EBN)] is a site dedicated to KDE Quality, including: KDE API Documentation Validation, User Documentation Validation and Source Code Checking. | ||
== Related Links == | |||
* [http://techbase.kde.org/Development/Tutorials/Code_Checking Krazy] | |||
* [http://techbase.kde.org/Development/Tutorials/Localization/i18n_Krazy i18nc checks] | |||
== Tools == | == Tools == | ||
=== Code Checking (Krazy) === | === Code Checking (Krazy) === |
Revision as of 20:03, 7 January 2009
The English Breakfast Network (EBN) is a site dedicated to KDE Quality, including: KDE API Documentation Validation, User Documentation Validation and Source Code Checking.
Related Links
Tools
Code Checking (Krazy)
- dpointers - Make sure that installed class headers have dpointers.
APIDOX
Doc Sanitizer
Coverage
Things To-do
- Web Pages and Server Stuff
- Krazy
- Web Stuff
- Say when the next update will be run
- Put the output 'krazy --list --explain --export=ebn' someplace?
- Tutorials http://techbase.kde.org/Development/Tutorials/Code_Checking
- Document .krazy files
- How to get the names of the plugins (in order to use //krazy:exclude=<plugin_name>)
- Krazy (the program)
- Krazyall
- Krazyebn
- Plugins
- General
- Ideas
- copyright
- look in kde-common/accounts to validate name and email address
- look in an AUTHORS file??
- spelling
- provide a list of possible alternatives
- rewrite the spellchecker to only look at strings and comments in C++ files
- license
- Adriaan's updated license checker
- Look in a COPYRIGHT file?
- classes
- there are cases where we want to require ctors and dtors, but it is complicated. (frerich,roberto)
- Check if all boolean members of a class are initialized in the constructor. See http://thread.gmane.org/gmane.comp.kde.cvs/540002
- qdisablecopy
- classes with non-pure virtual functions or derived from classes with non-pure virtual functions must have a Q_DISABLE_COPY(). in addition, all the other dpointer requirements are necessary to require Q_DISABLE_COPY().
- foreach
- a test that detects using foreach() with objects instead of pointers or const object references, i.e., something that detects "foreach (QModelIndex index, indexes)" (tsdgeos)
- includes
- the use of "foo.h" vs. <foo.h>
- if there is an include <kfoo.h>, check for the presence of KFoo:: or KFoo\s+\w or if one class inherits from KFoo. if none found then no need to include that file. (Gof)
- check if "include <kfoo.h>" would be better as "class KFoo" in a header.
- consistent about mixing indirect includes <QtCore/QString> and direct includes <qstring.h>
- <QtCore/QString> vs. <QString>
- constmethods
- check for methods that should be const, i.e methods that return a non-instrinic type and don't modify passed values. a partially working plugin exists in tplugins, but it needs some work
- check for constness of overloaded operators like ==, !=, <, >, >=, <=, +,-,hat,&,| (christoph4)
- cast syntax
- detect the "old cast" syntax: use static_cast<int>(p) instead of (int)p
- detect useless static_cast: void method(A* p) { x=static_cast<A*>(p);}
- functions
- check for reimplementing public-non-virtual-functions
- check whether reimplemented virtual functions have the same argument list as the function of the base class. Different arguments are probably always error and lead to unwanted results (the wrong virtual functions are called). See commit 672971 as an example. This needs very good support from the C++ parser.
- connect
- check whether the signals and slots in a connect() actually exist and match. Although this is also checked at runtime by Qt, rare code paths may still contain errors, especially after all the porting. This needs very good C++ parser support.
- Blacklist Methods
- QImage::depth() (fredrikh)
- calling QApplication::palette() in a class that inherits QWidget is just plain wrong. each widget has its own palette, and it should use that one.
- don't use the new mixColors() with the background color in the palette
- Blacklist certain KFoo classes (which ones?) in the public API
- inline
- complain for the classes that don't declare a ctor or dtor because that make them inline, implicitly. (Gof)
- Web Stuff
People
The EBN is operated by Adriaan de Groot and Allen Winter.
Authors/Maintainers of the individual quality tools can be found on the About page.