[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    KDE Developer's Checklist
From:       Jeff Tranter <tranter () pobox ! com>
Date:       2001-03-22 22:34:59
[Download RAW message or body]

There are a number of things that are easy to overlook when working on
KDE applications. I thought it would be useful to put together a checklist
of development items. My intention is to put this up on developer.kde.org
although it might make sense to put it in the KDE Developer's FAQ instead.
I'm looking for feedback on whether this is useful and if there are any more
items that should be added or corrections to be made.

["kde_developers_checklist.html" (text/html)]

<HTML>
<HEAD>
<TITLE>KDE Application Developer's Checklist</TITLE>
</HEAD>
<BODY>
<H1 ALIGN="center">KDE Application Developer's Checklist</H1>

<H1>Introduction</H1>

KDE developers, especially new ones, can easily overlook some tasks or
features when developing applications or making changes to existing
ones. KDE is a large system and, while much of the information exists
somewhere, there is no one comprehensive set of development standards.
This checklist attempts to summarize items to review before committing
code to the KDE CVS to help prevent overlooking something. It is broken
down into items for new applications, making changes to existing code,
and general practices that apply to all KDE development.

<H1>New Applications</H1>

These items apply primarily when initially creating a new application.

<UL>
<LI> make sure you aren't duplicating an existing application
<LI> provide a .desktop file
<LI> install MIME types, if applicable
<LI> provide application and toolbar icons
<LI> provide support for customizing toolbars and keybindings
<LI> implement Help/About box with authors and license information
<LI> write a manual
<LI> provide standard AUTHORS, ChangeLog, README, and TODO files
<LI> provide .lsm (Linux Software Map) file
<LI> put licensing information at the top of each source file
<LI> provide .spec file for RPM packaging
<LI> provide debian directory and configuration files for Debian packaging
<LI> list generated files in .cvsignore files
<LI> register application at freshmeat.net
<LI> follow the standard KDE application/document/view design pattern
<LI> use the XML-based user interface framework
<LI> implement tooltips and What's This? help
<LI> announce on the kde-announce mailing list
</UL>

<H1>Changes to Existing Applications</H1>

These items are applicable when making changes (enhancements or bug
fixes) to existing code.

<UL>
<LI> make sure you are working with the latest CVS source code
<LI> if you are not the maintainer, consider sending patches to
 the maintainer for review before being committed to CVS
<LI> if any files are changed or added, update packaging files in debian
 directory and RPM .spec file if required
<LI> make sure code compiles cleanly without errors or warnings
<LI> be aware of binary compatibility issues
<LI> close any relevant bugs in the KDE bug tracking system
<LI> increment application version string
<LI> update ChangeLog file
<LI> test your code before committing it
<LI> put meaningful text in the CVS commit message
</UL>

<H1>Best Practices</H1>

These are general items which apply to any coding done for KDE.

<UL>
<LI> follow KDE coding guidelines
<LI> follow KDE user interface style guide
<LI> watch for portability issues (KDE runs on multiple platforms, not
just Linux and x86)
<LI> put kdoc comments in source code
<LI> make sure all user visible text is localized
<LI> avoid duplicating facilities already in KDE or Qt libraries
<LI> support session management
<LI> implement features if applicable:
<UL>
<LI> panel system tray
<LI> drag &amp; drop
<LI> printing
<LI> kparts componentization
<LI> dcop
<LI> sound
</UL>
<LI> be aware of security issues due to sloppy coding. Be particularly
careful with programs that run as root or setuid
<LI> consider using Qt designer for dialog layout
<LI> consider using kdevelop as an integrated development environment
<LI> provide keyboard accelerators for all functions for accessibility
<LI> use standard actions
<LI> use standard icons
<LI> keep aware of new KDE developments and release schedules by
following mailing lists and news sites

</UL>

<H1>References</H1>

<OL>
<LI> <A HREF="http://developer.kde.org">KDE Developer's</A> web site
<LI> <A HREF="http://www.andamooka.org/reader.pl?section=kde20devel">
KDE 2.0 Development</A> book at Andamoooka
<LI> <A HREF="http://developer.kde.org/documentation/tutorials/howto/">
KDE Developer's HOWTO</A>
</OL>

</BODY>
</HTML>

>> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic