This tool was chosen as the buildsystem for the KDE SC 4 series, and there

+

are no plans currently to migrate away from it.

{{SEFBox

{{SEFBox

| name=Identifier search

| name=Identifier search

| currentState=

| currentState=

−

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

+

http://lxr.kde.org

| people=

| people=

−

* sysadmin@kde.org

+

The kde sysadmin team:

+

* [http://wire.dattitu.de/authors/2-Dirk Dirk Müller]

+

* [http://www.kdab.net/~dfaure/ David Faure]

}}

}}

+

[http://en.wikipedia.org/wiki/LXR_Cross_Referencer 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 ==

== Review ==

Line 46:

Line 65:

| name=Patch review (pre commit)

| name=Patch review (pre commit)

| currentState=

| 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.

+

−

* trunk/kdereview is used to review major new features and new applications prior to inclusion in KDE trunk.

+

* [https://projects.kde.org/projects/kdereview KDE Review Module]

+

* [[Development/Review_Board|KDE Review Board]]

| people=

| people=

−

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

+

| getInvolved=

−

| futureWork=

+

* {{KDEML|kde-core-devel}}: Discuss KDE patch review and tools

−

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

+

}}

}}

+

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 or on the Review Board. 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. See [[Policies/Application_Lifecycle#Stage_2:_Stable|Application Lifecycle]] for some more details.

+

+

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...

+

+

This was discussed to some extent [http://thread.gmane.org/gmane.comp.kde.devel.core/54213 here], but has not yet been refined into a techbase page.

Bug tracking in KDE currently is managed using Bugzilla 3.0. Work was recently merged on a transition to Bugzilla 3.0 from Bugzilla 2.16. There is still cleanup work going on but most features of the previous Bugzilla installation already work.

+

+

Bugzilla can be difficult to use and daunting to newbies.

{{SEFBox

{{SEFBox

| name=Static code analysis

| name=Static code analysis

| currentState=

| currentState=

−

[http://www.englishbreakfastnetwork.org/krazy/ Krazy] hosted at EnglishBreakfastNetwork (EBN) is used for static code analysis.

* [http://www.coverity.com/ Coverity] is used to find possible sources of defects and suggested optimizations. Results are displayed per module as part of [http://ktown.kde.org/~dirk/dashboard/ Dirks Dashboard builds].

| people=

| people=

−

* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]

+

* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]

−

* [http://www.kdedevelopers.org/blog/1451 Allen Winter]

+

* [http://www.kdedevelopers.org/blog/1451 Allen Winter]

−

| futureWork=

+

| getInvolved=

−

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/.

* Bill Hoffman is involved with the CDash service provided by Kitware.

+

* http://www.cdash.org/mailinglist.html

}}

}}

+

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

{{SEFBox

{{SEFBox

Line 142:

Line 238:

| currentState=

| currentState=

[[Development/Tutorials/Unittests|Unit tests]] may be written with the QTest framework. Tests can be run with the command '<tt>make test</tt>'.

[[Development/Tutorials/Unittests|Unit tests]] may be written with the QTest framework. Tests can be run with the command '<tt>make test</tt>'.

−

| futureWork=

+

| getInvolved=

−

Run the tests automatically. Possibly on EBN.

+

* [[Development/Tutorials/Unittests|Techbase Unit tests tutorial]]

}}

}}

+

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

{{SEFBox

{{SEFBox

| name=Quality testing

| name=Quality testing

| currentState=

| currentState=

−

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

* [http://www.kde.org/code-of-conduct/ Code of Conduct] Based on the Ubuntu Code of Conduct, documents guidelines for acceptable behaviour within the community. Can be summarized as 'Be Excellent to Eachother'.

−

* Moderation on some community portals.

+

* http://community.kde.org. In development website.

−

* Mediation

+

| people=

−

* A code of conduct?

+

* Anne Willson

+

* [http://jucato.org Juan Carlos Torres]

+

* [http://lydiapintscher.de Lydia Pintscher]

+

* Martin Fitzpatrick

+

* [http://omat.nl Tom Albers]

+

| getInvolved=

+

* Send an e-mail to community-wg@kde.org

}}

}}

+

{{SEFBox

+

| name=Communication

+

| currentState=

+

Developers communicate with each other through

+

* [http://lists.kde.org/ mailing lists]

+

* [http://searchirc.com/irc-kde-1 IRC]

+

* [http://planetkde.org Blogs]

+

* Conferences

+

Developers communicate with users though

+

* [http://planetkde.org Blogs] to some extent (mainly early adopting users).

+

* [http://forum.kde.org Forums] to some extent where the developer chooses to.

+

* [http://dot.kde.org News announcements]

+

Users communicate with each other and developers through

+

* [http://forum.kde.org Forums]

+

* {{KDEML|kde}} mailing list

+

* #kde irc channel.

+

| people=

+

* [http://c133.org/blog/ Chris Lee] administers planetkde.org

+

| getInvolved=

+

* Add your blog to planet kde if you contribute to KDE in some way, including development, testing, advocacy, translation, documentation etc.

+

}}

== Release ==

== Release ==

−

{{SEFBox

{{SEFBox

| name=Release Scheduling

| name=Release Scheduling

| currentState=

| 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]].

* A kde4 based translation client (lokalize) is being developed in kdesdk/.

+

* A kde4 based translation client ([http://userbase.kde.org/Lokalize Lokalize]) is being developed in kdesdk/.

* Krazy includes sanity checks/plurals checking for translation.

* Krazy includes sanity checks/plurals checking for translation.

| altTools=

| altTools=

−

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. This is considered not to be useful as fly-by translators often do not follow guidelines or consistency rules when translating.

+

| getInvolved=

+

* {{KDEML|kde-i18n-doc}}

+

}}

+

+

== Legal And Support ==

+

{{SEFBox

+

| name=KDE e.v. - Representative Legal Entity

+

| currentState=

+

* [http://ev.kde.org KDE e.v.] is a registered non-profit organization that represents the KDE Project in legal and financial matters.

+

| getInvolved=

+

* [http://ev.kde.org/getinvolved/ KDE e.v. membership]

+

* [http://jointhegame.kde.org/ Join the Game]

+

}}

+

+

{{SEFBox

+

| name=Resolving licencing issues.

+

| currentState=

+

* A [http://ev.kde.org/announcements/2008-08-22-fsfe-welcomes-fla.php Fiduicary Licence Agreement] is available, which will allow KDE developers to optionally assign copyright of their contributions to KDE e.v. This would allow easier relicencing of contributors content in the event that KDE needs to move to another licence. It also allows the e.v. to more easily represent the work in the unlikely event of a court dispute involving KDE code.

* [[Projects/KDE_Relicensing|Projects/KDE_Relicensing]] Effort to relicence KDE code to use version 3 of GNU GPL and LGPL. This work is unfinished but not still being performed. Many contributors are no longer contactable.

* [http://ev.kde.org/getinvolved/supporting-members.php Become a supporting member]

}}

}}

Revision as of 17:13, 4 November 2012

This page is intended to be a summary of the tools and processes 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.

Review

Patch review (pre commit)

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 or on the Review Board. 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. See Application Lifecycle for some more details.

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...

This was discussed to some extent here, but has not yet been refined into a techbase page.

Bug tracking in KDE currently is managed using Bugzilla 3.0. Work was recently merged on a transition to Bugzilla 3.0 from Bugzilla 2.16. There is still cleanup work going on but most features of the previous Bugzilla installation already work.

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'.

launchpad.net features a web-based tool called rosetta, which allows for easier fly-by translations. This is considered not to be useful as fly-by translators often do not follow guidelines or consistency rules when translating.

Legal And Support

KDE e.v. - Representative Legal Entity

KDE e.v. - Representative Legal Entity

Current State

People

KDE e.v. is a registered non-profit organization that represents the KDE Project in legal and financial matters.

Resolving licencing issues.

Resolving licencing issues.

Current State

People

A Fiduicary Licence Agreement is available, which will allow KDE developers to optionally assign copyright of their contributions to KDE e.v. This would allow easier relicencing of contributors content in the event that KDE needs to move to another licence. It also allows the e.v. to more easily represent the work in the unlikely event of a court dispute involving KDE code.

KDE licencing policy allows commercial and non-commercial development and proprietry and non-proprietry development.

Projects/KDE_Relicensing Effort to relicence KDE code to use version 3 of GNU GPL and LGPL. This work is unfinished but not still being performed. Many contributors are no longer contactable.