Difference between revisions of "Development/Software Engineering Framework"

Jump to: navigation, search
(Testing and Quality: add konq-bugs to the list)
(added Redmine (in addition to Trac) as an alternative bug tracking tool)
Line 196: Line 196:
 
* https://bugs.launchpad.net, [http://www.sourcecode.de/content/leonov-launchpad-desktop-client-first-coming Leonev]
 
* https://bugs.launchpad.net, [http://www.sourcecode.de/content/leonov-launchpad-desktop-client-first-coming Leonev]
 
* [http://trac.edgewall.org/ trac]
 
* [http://trac.edgewall.org/ trac]
 +
* [http://www.redmine.org/ Redmine] - kind of "Trac on Rails"
 
}}
 
}}
  

Revision as of 22:30, 27 July 2008

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

Development Tools

Source Control

Source Control
Current State   People  

The kde sysadmin team:

Get Involved   Alternative Tools  


Subversion 1.4 is currently used for source control management in KDE on a server hosted in Frankfurt. A separate server is used for access to the read-only mirror anonsvn.kde.org.

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.


Build System

Build System
Current State   People  
Get Involved   Alternative Tools  

n/a


CMake is the build tool currently used by KDE. It is Free Software developed by kitware inc and available on multiple platforms supported by KDE.

This tool was chosen as the buildsystem for the KDE4 series, and there are no plans currently to migrate away from it.


Identifier search

Identifier search
Current State   People  

http://lxr.kde.org

The kde sysadmin team:

Get Involved   Alternative Tools  

n/a

n/a


LXR indexes classes and methods used in KDE. This can be useful for finding examples of how to use a class, and finding all uses of a class while refactoring or updating API.

Review

Patch review (pre commit)

Patch review (pre commit)
Current State   People  
  • David Solbach and the kde sysadmin team maintain the Plasma review-board installation.
Get Involved   Alternative Tools  
  • Launchpad.net offers merge review/approval pre-merge [1] [2] [3]


In general KDE does not have a formal patch review policy for individual patches. Some patches do get reviewed prior to committing to svn by the relevant mailing lists. This is the case for particularly large patches or patches by new developers.

As an official policy kdereview is used to review new applications and new classes for kdelibs prior to inclusion in KDE trunk. A drawback of this system is that not all reviewers report that they have reviewed the new content. It may make sense to have a checklist for reviewers to use, eg,

  • All new classes documented [x]
  • Private classes and d-pointers used where appropriate [x]
  • Passes all krazy checks [ ]
  • No obvious security concerns [ ]
  • Designed well/maintainable [ ]
  • etc...


Commit review (after commit)

Commit review (after commit)
Current State   People  
  • Action mail generic.svg 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.
  • SVN CCMAIL: feature used to notify relevant mailing lists or individuals of specific commits.
  • SVN BUG: feature used to close bugs, and also notifies all bug subscribers of the commit.

Unknown

Get Involved   Alternative Tools  
  • Unknown


The commit filter is used by several projects to forward all commits to the relevant mailing list.


Design Review

Design Review
Current State   People  

Design review takes place on

  • mailing lists
  • project wikis
  • face-to-face/BOF sessions and sprints
  • kdereview

Unknown

Get Involved   Alternative Tools  

n/a


KDE does not have an offical design review process. Some design review takes place as part of the kdereview process. It may be possible to further formalise this or encourage design documentation.

Documentation

Technical documentation

Technical documentation
Current State   People  
  • Danimo is the MediaWiki admin for techbase.kde.org.
Get Involved   Alternative Tools  

n/a


techbase.kde.org is a MediaWiki powered site used for collaborating on technical tasks such as tutorials, schedules, and project information. wiki.kde.org is a tiki-wiki site with the same function. Both are actively used. It might make sense to merge the two sites.


API documentation

API documentation
Current State   People  
  • Doxygen is used to generate api documentation from documentation strings in code.
Get Involved   Alternative Tools  


KDE API doucmentation is generated nightly and hosted on http://api.kde.org. It is also possible to generate the same documentation locally for use in an IDE for example.


User documentation

User documentation
Current State   People  
  • meinproc is used to generate user documentation
  • Action mail generic.svg kde-docbook Records all SVN commits with the GUI magic word.

Unknown

Get Involved   Alternative Tools  

n/a


User documentation is generated from module doc/ folders and hosted on http://docs.kde.org.

meinproc is a KDE tool (written by Stephen Kulow which uses libxslt to transform docbook into (bzipped) html. At runtime kio_help opens that bzipped html and displays it to the user in khelpcenter.

Testing and Quality

Bug tracking

Bug tracking
Current State   People  
  • Matt Rogers and the kde sysadmin team maintain the KDE bugzilla installation.
Get Involved   Alternative Tools  


Bug tracking in KDE currently is managed using Bugzilla 2.0. There is work being done on a transition to Bugzilla 3.0, which provides some additional features.

Bugzilla can be difficult to use and daunting to newbies.


Static code analysis

Static code analysis
Current State   People  

Krazy hosted at EnglishBreakfastNetwork (EBN).

Get Involved   Alternative Tools  

n/a


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

Build testing

Build testing
Current State   People  
Get Involved   Alternative Tools  

n/a


There is interest in more build testing for KDE especially on non-linux platforms. Improvements include some standard ctest scripts that can be used to build and submit a dashboard result for kdelibs to CDash. This would be run on a cronjob for simplicity.

Builds are planned for the following platforms:

  • Windows
  • MacOS
  • FreeBSD 6 (gcc)
  • FreeBSD 7 (gcc)
  • Solaris (S10, S11) on SPARC and amd64


Unit testing

Unit testing
Current State   People  

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

Unknown

Get Involved   Alternative Tools  

n/a


It may be possible run run these tests automatically possibly on EBN or on Dirks dashboard.


Quality testing

Quality testing
Current State   People  
  • The early adopter/user community
  • SQO-OSS
Get Involved   Alternative Tools  

n/a



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


Profiling and Optimizations

Profiling and Optimizations
Current State   People  
  • Action mail generic.svg kde-optimize mailing list coordinates optimizations in KDE.
  • Krazy also includes some optimization checks.

Unknown

Get Involved   Alternative Tools  

n/a


Tutorials may be provided in the future to help developers optimize their code.


Accessibility and Usability

Accessibility and Usability
Current State   People  
Get Involved   Alternative Tools  

n/a



Research

Research
Current State   People  
Get Involved   Alternative Tools  

n/a

n/a


Marketing and Expectations

Requirements Gathering

Requirements Gathering
Current State   People  
  • 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.

Unknown

Get Involved   Alternative Tools  

n/a



Promotion

Promotion
Current State   People  
Get Involved   Alternative Tools  

n/a



Community management

Community management
Current State   People  

A community management group is being worked on.

Get Involved   Alternative Tools  
  • Action mail generic.svg kde-core-devel Discuss how KDE should approach community management.

n/a


Future work in this area will include

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


Communication

Communication
Current State   People  

Developers communicate with each other through

Developers communicate with users though

Get Involved   Alternative Tools  

n/a


Release

Release Scheduling

Release Scheduling
Current State   People  
Get Involved   Alternative Tools  

n/a



Feature planning

Feature planning
Current State   People  

The KDE release team

Get Involved   Alternative Tools  


Currently techbase is used for feature planning but there may be better alternatives.


Theming and Translations

Artwork

Artwork
Current State   People  

The Action mail generic.svg kde-artists team creates offical artwork for KDE.

Get Involved   Alternative Tools  

n/a


Additional contributed artwork is available on http://kde-look.org.

There may be a need to create tutorials on how to create artwork for kde.

Translation

Translation
Current State   People  
  • 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.

Unknown

Get Involved   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