Development/Software Engineering Framework

< Development
Revision as of 23:46, 30 June 2008 by Winterz (Talk | contribs)

Jump to: navigation, search

This page is intended to be a summary of the tools used by the KDE project for Software Engineering tasks, i.e. everything around coding work. This includes bugfixing, review, testing, documentation, requirements etc.

The current tool used by KDE should be listed along with the extent of its use, known alternatives, and advantages/disadvantages.


Contents

Source control

Current Tool

Subversion 1.4 is used for source control management in KDE.

People

Dirk Muller and the kde sysadmin team maintain the KDE SVN servers.

Future work

There is interest in migrating to a distributed source control management tool, such as GIT. Discussion of this is taking place on the kde-scm-interest mailing list.

Alternative tools

Bug tracking

Current tool

Bug tracking in KDE is managed using Bugzilla 2.x.

People

Matt Rogers and the kde sysadmin team maintain the KDE bugzilla installation.

Future work

There is work being done on a transition to Bugzilla 3.0, which provides some additional features.

Alternative tools

  • Launchpad.net offers bug tracking via bugs.launchpad.net

Patch review (pre commit)

Current tool

  • Review-board used by plasma project. In KDE in general this process does not take place, except for some specific patches which may be sent to the relevant mailing list.
  • trunk/kdereview is used to review major new features and new applications prior to inclusion in KDE trunk.

People

David Solbach and the kde sysadmin team maintain the Plasma review-board installation.

Future work

Review-board may be suitable for adoption by more of the KDE project, or by individual modules.

Commit review (after commit)

Current tool

  • kde-commits mailing list records all commits to KDE svn.
  • The commit filter is used to filter relevant commits based on path of the commit. This is used by several projects to forward commits to the relevant mailing list.

People

Unknown

Alternative Tools

Unknown

Design review

Current process

Design review takes place on mailing lists/wikis and in face-to-face/BOF sessions at conferences and sprints.


Technical documentation

Current tool

techbase.kde.org is a mediawiki powered site used for collaborating on technical tasks such as tutorials, schedules, and project information.

People

Danimo is the mediawiki admin for techbase.kde.org.

Future work

Static code analysis

Current Tool

Krazy hosted at EnglishBreakfastNetwork (EBN) is used for static code analysis.

People

Adriaan de Groot and Allen Winter maintain Krazy.

Future work

Additional checks are always welcome for adding to Krazy. See http://websvn.kde.org/trunk/quality/.

API documentation

Current tool

doxygen is used to generate api documentation from documentation strings in code. It is generated nightly and hosted on http://api.kde.org.

People

Allen Winter administers api.kde.org.

Future work

Unknown

User documentation

Current tool

doxygen is used to generate user documentation from module doc/ folders and is hosted on http://docs.kde.org.


Feature planning

Current tool

techbase.kde.org is currently used for feature planning, specifically Schedules/KDE4/4.1_Feature_Plan etc.

People

The KDE release team

Alternative tools

  • Launchpad.net offers a blueprints system.

Requirements gathering

Current process

  • Requirements come from user feedback on http://bugs.kde.org and from commercial interests.
  • Developers may do some research into requirements for applications based on User Research Profiles.

Marketing and expectations

current process

People


Release Scheduling

Current tool

The release team mailing list is used for release planning, and release plans maintained on techbase at Schedules.

Identifier search

Current tool

http://lxr.kde.org is used for searching for existing use of classes in KDE.


Unit testing

Current process

Unit tests may be written with the QTest framework. Tests can be run with the command 'make test'.

Future work

Run the tests automatically. Possibly on EBN.

Quality testing

Current process

The early adopter/user community tests beta versions of KDE. Additionally some work is done by SQO-OSS on quality in KDE.

People

Adriaan de Groot and Paul Adams work on SQO-OSS and quality in KDE.

Future work

It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc.

Community management

Current process

A community management group is being worked on.

Future work

  • Moderation on some community portals.
  • Mediation
  • A code of conduct?

Artwork

Current process

The kde-artists team creates offical artwork for KDE. Additional contributed artwork is available on http://kde-look.org.

People

Future work

Tutorials on how to create artwork for kde?

Profiling and optimizations

Current tools

  • kde-optimize mailing list coordinates optimizations in KDE.
  • Krazy also includes some optimization checks.

Accessibility and Usability

Current tools

People

Build system

Current tool

CMake is the current KDE build tool.

People

Alexander Neundorf

Translation

Current tools

  • http://i18n.kde.org/ is used for level of completion of translations in KDE.
  • GNU gettext is used for translation in KDE.
  • .po files are edited directly in KDE svn to update translations.
  • A kde4 based translation client (lokalize) is being developed in kdesdk/.
  • Krazy includes sanity checks/plurals checking for translation.


Alternative tools

launchpad.net features a web-based tool called rosetta, which allows for easier fly-by translations.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal