Difference between revisions of "Development/Software Engineering Framework"

Jump to: navigation, search
(Add info about the Dirkboard)
(Migrate to use the new SEFBox and group logically)
Line 6: Line 6:
  
  
== Source control ==
+
== Development Tools ==
=== Current Tool ===
+
{{SEFBox
 +
| name=Source Control
 +
| currentState=
 
[http://websvn.kde.org/ Subversion 1.4] is used for source control management in KDE.
 
[http://websvn.kde.org/ Subversion 1.4] is used for source control management in KDE.
 
+
| people=
=== People ===
+
 
[http://wire.dattitu.de/authors/2-Dirk Dirk Muller] and the kde sysadmin team maintain the KDE SVN servers.
 
[http://wire.dattitu.de/authors/2-Dirk Dirk Muller] and the kde sysadmin team maintain the KDE SVN servers.
 
+
| futureWork=
=== 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
There is interest in migrating to a distributed source control
+
management tool, such as GIT. Discussion of this is taking place on the
+
 
[http://mail.kde.org/pipermail/kde-scm-interest kde-scm-interest]
 
[http://mail.kde.org/pipermail/kde-scm-interest kde-scm-interest]
 
mailing list.
 
mailing list.
 
+
| altTools=
=== Alternative tools ===
+
 
* [http://git.or.cz/ git]  
 
* [http://git.or.cz/ git]  
 
* [http://bazaar-vcs.org/ bazaar]
 
* [http://bazaar-vcs.org/ bazaar]
 
* [http://www.selenic.com/mercurial/ mercurial]
 
* [http://www.selenic.com/mercurial/ mercurial]
 +
}}
  
== Bug tracking ==
 
=== Current tool ===
 
Bug tracking in KDE is managed using [http://bugs.kde.org Bugzilla 2.x].
 
  
=== People ===
+
{{SEFBox
[http://mattr.info:8080/blog/?s=bugzilla Matt Rogers] and the kde sysadmin team maintain the KDE bugzilla installation.
+
| name=Build System
 +
| currentState=
 +
* [http://www.cmake.org/ CMake] is the current KDE build tool.
 +
* [http://developer.kde.org/~dirk/dashboard/ Continuous build server] reports broken builds.
 +
* [http://www.cdash.org/CDash/index.php?project=kdelibs CDash build server] stores results of non-linux builds (Windows, MacOS, FreeBSD, etc) for kdelibs.
 +
| people=
 +
* [http://www.kdedevelopers.org/blog/531 Alexander Neundorf]
 +
* [http://wire.dattitu.de/authors/2-Dirk Dirk Mueller] maintains the dashboard
 +
| futureWork=
 +
There is interest in migrating to a distributed source control management tool, such as GIT. Discussion of this is taking place on the
 +
[http://mail.kde.org/pipermail/kde-scm-interest kde-scm-interest]
 +
mailing list.
 +
| altTools=
 +
* [http://git.or.cz/ git]
 +
* [http://bazaar-vcs.org/ bazaar]
 +
* [http://www.selenic.com/mercurial/ mercurial]
 +
}}
  
=== Future work ===
 
There is work being done on a transition to Bugzilla 3.0, which provides some additional features.
 
  
=== Alternative tools ===
+
{{SEFBox
* Launchpad.net offers bug tracking via bugs.launchpad.net
+
| name=Identifier search
 +
| currentState=
 +
http://lxr.kde.org is used for searching for existing use of classes in KDE.
 +
}}
  
== Patch review (pre commit) ==
+
 
=== Current tool ===
+
== Review ==
 +
{{SEFBox
 +
| name=Patch review (pre commit)
 +
| currentState=
 
* [http://reviewboard.vidsolbach.de/ 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.
 
* [http://reviewboard.vidsolbach.de/ 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.
 
* trunk/kdereview is used to review major new features and new applications prior to inclusion in KDE trunk.
 
+
| people=
=== People ===
+
 
David Solbach and the kde sysadmin team maintain the Plasma review-board installation.
 
David Solbach and the kde sysadmin team maintain the Plasma review-board installation.
 
+
| futureWork=
=== Future work ===
+
 
Review-board may be suitable for adoption by more of the KDE project, or by individual modules.
 
Review-board may be suitable for adoption by more of the KDE project, or by individual modules.
 +
| altTools=
 +
* Launchpad.net offers bug tracking via bugs.launchpad.net
 +
}}
 +
  
== Commit review (after commit) ==
+
{{SEFBox
=== Current tool ===
+
| name=Commit review (after commit)
 +
| currentState=
 
* [https://mail.kde.org/mailman/listinfo/kde-commits| kde-commits] mailing list records all commits to KDE svn.
 
* [https://mail.kde.org/mailman/listinfo/kde-commits| kde-commits] mailing list records all commits to KDE svn.
 
* The [http://commit-filter.org 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.
 
* The [http://commit-filter.org 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.
 +
| altTools=
 +
* Unknown
 +
}}
  
=== People ===
 
Unknown
 
  
=== Alternative Tools ===
+
{{SEFBox
Unknown
+
| name=Design Review
 
+
| currentState=
== Design review ==
+
=== Current process ===
+
 
Design review takes place on mailing lists/wikis and in face-to-face/BOF sessions at conferences and sprints.
 
Design review takes place on mailing lists/wikis and in face-to-face/BOF sessions at conferences and sprints.
 +
}}
  
  
== Technical documentation ==
+
== Documentation ==
=== Current tool ===
+
 
 +
{{SEFBox
 +
| name=Technical documentation
 +
| currentState=
 
techbase.kde.org is a mediawiki powered site used for collaborating on technical tasks such as tutorials, schedules, and project information.
 
techbase.kde.org is a mediawiki powered site used for collaborating on technical tasks such as tutorials, schedules, and project information.
 +
| people=
 +
* [[User:Danimo|Danimo]] is the mediawiki admin for techbase.kde.org.
 +
| futureWork=
 +
* More sysops for techbase  (http://daniel.molkentin.de/blog/archives/116-KDE-TechBase-in-Need-of-Admins.html)?
 +
}}
  
=== People ===
 
[[User:Danimo|Danimo]] is the mediawiki admin for techbase.kde.org.
 
  
=== Future work ===
+
{{SEFBox
* More sysops for techbase  (http://daniel.molkentin.de/blog/archives/116-KDE-TechBase-in-Need-of-Admins.html)?
+
| name=API documentation
 +
| currentState=
 +
meinproc is used to generate api documentation from documentation strings in code. It is generated nightly and hosted on http://api.kde.org.
 +
| people=
 +
* [http://www.kdedevelopers.org/blog/1451 Allen Winter] administers api.kde.org.
 +
}}
  
== Static code analysis ==
 
=== Current Tool ===
 
[http://www.englishbreakfastnetwork.org/krazy/ Krazy] hosted at EnglishBreakfastNetwork (EBN) is used for static code analysis.
 
  
=== People ===
+
{{SEFBox
[http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot] and [http://www.kdedevelopers.org/blog/1451 Allen Winter] maintain Krazy.
+
| name=User documentation
 +
| currentState=
 +
doxygen is used to generate user documentation from module doc/ folders and is hosted on http://docs.kde.org.
 +
}}
  
=== Future work ===
+
 
 +
== Testing and Quality ==
 +
 
 +
{{SEFBox
 +
| name=Bug tracking
 +
| currentState=
 +
Bug tracking in KDE is managed using [http://bugs.kde.org Bugzilla 2.x].
 +
| people=
 +
[http://mattr.info:8080/blog/?s=bugzilla Matt Rogers] and the kde sysadmin team maintain the KDE bugzilla installation.
 +
| futureWork=
 +
There is work being done on a transition to Bugzilla 3.0, which provides some additional features.
 +
| altTools=
 +
* Launchpad.net offers bug tracking via bugs.launchpad.net
 +
}}
 +
 
 +
 
 +
{{SEFBox
 +
| name=Static code analysis
 +
| currentState=
 +
[http://www.englishbreakfastnetwork.org/krazy/ Krazy] hosted at EnglishBreakfastNetwork (EBN) is used for static code analysis.
 +
| people=
 +
* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]
 +
* [http://www.kdedevelopers.org/blog/1451 Allen Winter]
 +
| futureWork=
 
Additional checks are always welcome for adding to Krazy. See http://websvn.kde.org/trunk/quality/.
 
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 ===
+
{{SEFBox
[http://www.kdedevelopers.org/blog/1451 Allen Winter] administers api.kde.org.
+
| name=Unit testing
 +
| currentState=
 +
[[Development/Tutorials/Unittests|Unit tests]] may be written with the QTest framework. Tests can be run with the command '<tt>make test</tt>'.
 +
| futureWork=
 +
Run the tests automatically. Possibly on EBN.
 +
}}
  
=== Future work ===
 
Unknown
 
  
== User documentation ==
+
{{SEFBox
=== Current tool ===
+
| name=Quality testing
doxygen is used to generate user documentation from module doc/ folders and is hosted on http://docs.kde.org.
+
| currentState=
 +
The early adopter/user community tests beta versions of KDE. Additionally some work is done by SQO-OSS on quality in KDE.
 +
| people=
 +
* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]
 +
* [http://hemswell.lincoln.ac.uk/~padams/index.php Paul Adams]
 +
| futureWork=
 +
It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc.
 +
}}
  
  
== Feature planning ==
+
{{SEFBox
=== Current tool ===
+
| name=Profiling and Optimizations
techbase.kde.org is currently used for feature planning, specifically [[Schedules/KDE4/4.1_Feature_Plan]] etc.
+
| currentState=
 +
* [http://mail.kde.org/mailman/listinfo/kde-optimize kde-optimize] mailing list coordinates optimizations in KDE.
 +
* Krazy also includes some optimization checks.
 +
| futureWork=
 +
Tutorials?
 +
}}
  
=== People ===
 
[https://mail.kde.org/mailman/listinfo/release-team The KDE release team]
 
  
=== Alternative tools ===
+
{{SEFBox
* Launchpad.net offers a blueprints system.
+
| name=Accessibility and Usability
 +
| currentState=
 +
* http://usability.kde.org/
 +
* http://openusability.org/projects.php
 +
* Season of usability
 +
| people=
 +
* [http://weblog.obso1337.org/ Celeste Lyn Paul]
 +
* [http://ellen.reitmayr.net/index.php/blog Ellen Reitmayr]
 +
}}
 +
 
 +
 
 +
{{SEFBox
 +
| name=Research
 +
| currentState=
 +
* http://research.kde.org
 +
| people=
 +
* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]
 +
}}
 +
 
 +
 
 +
== Marketing and Expectations ==
  
== Requirements gathering ==
+
{{SEFBox
=== Current process ===
+
| name=Requirements Gathering
 +
| currentState=
 
* Requirements come from user feedback on http://bugs.kde.org and from commercial interests.
 
* 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.
 
* Developers may do some research into requirements for applications based on User Research Profiles.
 +
}}
  
== Marketing and expectations ==
+
 
=== current process ===
+
{{SEFBox
 +
| name=Promotion
 +
| currentState=
 
* The [https://mail.kde.org/mailman/listinfo/kde-promo KDE marketing team] manage marketing and promotion from official kde sources.
 
* The [https://mail.kde.org/mailman/listinfo/kde-promo KDE marketing team] manage marketing and promotion from official kde sources.
 
* http://dot.kde.org is the community forum around promotional announcements.
 
* http://dot.kde.org is the community forum around promotional announcements.
 
* http://www.kde.org/announcements is the official source of promotional announcements regarding KDE.
 
* http://www.kde.org/announcements is the official source of promotional announcements regarding KDE.
 
* Design and maintenance of KDE websites is organised on the [https://mail.kde.org/mailman/listinfo/kde-www kde-www mailing list]
 
* Design and maintenance of KDE websites is organised on the [https://mail.kde.org/mailman/listinfo/kde-www kde-www mailing list]
 
+
| people=
=== People ===
+
 
* [http://wadejolson.wordpress.com/ Wade Olsen]
 
* [http://wadejolson.wordpress.com/ Wade Olsen]
 
* [http://troy-at-kde.livejournal.com/ Troy Unrau]
 
* [http://troy-at-kde.livejournal.com/ Troy Unrau]
 
* [http://nowwhatthe.blogspot.com/ Jos Poortvliet]
 
* [http://nowwhatthe.blogspot.com/ Jos Poortvliet]
 +
}}
  
 
== Release Scheduling ==
 
=== Current tool ===
 
The [https://mail.kde.org/mailman/listinfo/kde-release-team 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 ==
+
{{SEFBox
=== Current process ===
+
| name=Community management
[[Development/Tutorials/Unittests|Unit tests]] may be written with the QTest framework.
+
| currentState=
Tests can be run with the command '<tt>make test</tt>'.
+
 
+
=== 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 ===
+
[http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot] and [http://hemswell.lincoln.ac.uk/~padams/index.php 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.
 
A community management group is being worked on.
 
+
| futureWork=
=== Future work ===
+
 
* Moderation on some community portals.
 
* Moderation on some community portals.
 
* Mediation
 
* Mediation
 
* A code of conduct?
 
* A code of conduct?
 +
}}
  
== Artwork ==
 
=== Current process ===
 
The [http://mail.kde.org/mailman/listinfo/kde-artists kde-artists team] creates offical artwork for KDE. Additional contributed artwork is available on http://kde-look.org.
 
  
=== People ===
+
== Release ==
* [http://pinheiro-kde.blogspot.com/ Nuno Pinheiro]
+
  
=== Future work ===
+
{{SEFBox
Tutorials on how to create artwork for kde?
+
| name=Release Scheduling
 +
| currentState=
 +
The [https://mail.kde.org/mailman/listinfo/kde-release-team release team mailing list] is used for release planning, and release plans maintained on techbase at [[Schedules]].
 +
| people=
 +
[https://mail.kde.org/mailman/listinfo/release-team The KDE release team]
 +
}}
  
== Profiling and optimizations ==
 
=== Current tools ===
 
* [http://mail.kde.org/mailman/listinfo/kde-optimize kde-optimize] mailing list coordinates optimizations in KDE.
 
* Krazy also includes some optimization checks.
 
  
== Accessibility and Usability ==
+
{{SEFBox
=== Current tools ===
+
| name=Feature planning
* http://usability.kde.org/
+
| currentState=
* http://openusability.org/projects.php
+
techbase.kde.org is currently used for feature planning, specifically [[Schedules/KDE4/4.1_Feature_Plan]] etc.
* Season of usability
+
| people=
 +
[https://mail.kde.org/mailman/listinfo/release-team The KDE release team]
 +
| altTools=
 +
* Launchpad.net offers a blueprints system.
 +
}}
  
=== People ===
 
* [http://weblog.obso1337.org/ Celeste Lyn Paul]
 
* [http://ellen.reitmayr.net/index.php/blog Ellen Reitmayr]
 
  
== Build system ==
+
== Theming and Translations ==
=== Current tool ===
+
* [http://www.cmake.org/ CMake] is the current KDE build tool.
+
* [http://developer.kde.org/~dirk/dashboard/ Continuous build server] reports broken builds.
+
  
=== People ===
+
{{SEFBox
* [http://www.kdedevelopers.org/blog/531 Alexander Neundorf]
+
| name=Artwork
* [http://wire.dattitu.de/authors/2-Dirk Dirk Mueller] maintains the dashboard
+
| currentState=
 +
The [http://mail.kde.org/mailman/listinfo/kde-artists kde-artists team] creates offical artwork for KDE. Additional contributed artwork is available on http://kde-look.org.
 +
| people=
 +
* [http://pinheiro-kde.blogspot.com/ Nuno Pinheiro]
 +
| futureWork=
 +
Tutorials on how to create artwork for kde?
 +
}}
  
== Translation ==
+
 
=== Current tools ===
+
{{SEFBox
 +
| name=Translation
 +
| currentState=
 
* http://i18n.kde.org/ is used for level of completion of translations in KDE.
 
* http://i18n.kde.org/ is used for level of completion of translations in KDE.
 
* GNU gettext is used for translation in KDE.
 
* GNU gettext is used for translation in KDE.
Line 204: Line 270:
 
* A kde4 based translation client (lokalize) is being developed in kdesdk/.
 
* A kde4 based translation client (lokalize) is being developed in kdesdk/.
 
* Krazy includes sanity checks/plurals checking for translation.
 
* Krazy includes sanity checks/plurals checking for translation.
 
+
| altTools=
 
+
=== Alternative tools ===
+
 
launchpad.net features a web-based tool called rosetta, which allows for easier fly-by translations.
 
launchpad.net features a web-based tool called rosetta, which allows for easier fly-by translations.
 +
}}

Revision as of 13:15, 1 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  

Subversion 1.4 is used for source control management in KDE.

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

Get Involved   Alternative Tools  

n/a



Build System

Build System
Current State   People  
Get Involved   Alternative Tools  

n/a



Identifier search

Identifier search
Current State   People  

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

Unknown

Get Involved   Alternative Tools  

n/a

n/a



Review

Patch review (pre commit)

Patch review (pre commit)
Current State   People  
  • 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.

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

Get Involved   Alternative Tools  

n/a

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



Commit review (after commit)

Commit review (after commit)
Current State   People  

Unknown

Get Involved   Alternative Tools  

n/a

  • Unknown



Design Review

Design Review
Current State   People  

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

Unknown

Get Involved   Alternative Tools  

n/a

n/a



Documentation

Technical documentation

Technical documentation
Current State   People  

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

  • Danimo is the mediawiki admin for techbase.kde.org.
Get Involved   Alternative Tools  

n/a

n/a



API documentation

API documentation
Current State   People  

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

Get Involved   Alternative Tools  

n/a

n/a



User documentation

User documentation
Current State   People  

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

Unknown

Get Involved   Alternative Tools  

n/a

n/a



Testing and Quality

Bug tracking

Bug tracking
Current State   People  

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

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

Get Involved   Alternative Tools  

n/a

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



Static code analysis

Static code analysis
Current State   People  

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

Get Involved   Alternative Tools  

n/a

n/a



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

n/a



Quality testing

Quality testing
Current State   People  

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

Get Involved   Alternative Tools  

n/a

n/a



Profiling and Optimizations

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

Unknown

Get Involved   Alternative Tools  

n/a

n/a



Accessibility and Usability

Accessibility and Usability
Current State   People  
Get Involved   Alternative Tools  

n/a

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

n/a



Promotion

Promotion
Current State   People  
Get Involved   Alternative Tools  

n/a

n/a



Community management

Community management
Current State   People  

A community management group is being worked on.

Unknown

Get Involved   Alternative Tools  

n/a

n/a



Release

Release Scheduling

Release Scheduling
Current State   People  

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

The KDE release team

Get Involved   Alternative Tools  

n/a

n/a



Feature planning

Feature planning
Current State   People  

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

The KDE release team

Get Involved   Alternative Tools  

n/a

  • Launchpad.net offers a blueprints system.



Theming and Translations

Artwork

Artwork
Current State   People  

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

Get Involved   Alternative Tools  

n/a

n/a



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  

n/a

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