Policies: Difference between revisions
(add a link to the CMake Coding Style page) |
(Add link to Moderation page here in preparation for it being removed from the main page) |
||
(23 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
[[File:Mascot konqi-app-system.png|thumbnail|right|[[Konqi]] shows you how the gears work!]] | |||
== Introduction to Policies == <!--T:1--> | |||
<!--T:2--> | |||
There are a couple of written and unwritten rules KDE developers usually adhere to. The following documents summarize some of these policies. The list is still incomplete. If you are interested in helping out with formulating the KDE policies or would like to discuss them please use the [https://mail.kde.org/mailman/listinfo/kde-policies kde-policies mailing list] which was created for this purpose. | |||
== Policies for Developers == <!--T:3--> | |||
<!--T:4--> | |||
These policies apply to KDE developers and it is expected that all persons with a KDE Developer account follow these policies. The commit policy is the most important one. Persons working on libraries (kdelibs mostly, but central libraries in other source code repositores fall under this as well) should read the library documentation policy (and the apidox howto as well). | |||
;[[/ | <!--T:5--> | ||
;[[/Commit Policy/]] | |||
:Rules for commits to the KDE code repository. The three golden rules (make sure it compiles, follow existing coding style, use descriptive log messages) and 18 more rules to follow to make sure that your commits are the best they can be. | |||
<!--T:6--> | |||
;[[/Application Lifecycle/]] | |||
:Learn all about the Life Cycle of a KDE Application. Where you can upload new application, how to get in one of the main KDE modules and what to do when you give up maintainership of your application. | :Learn all about the Life Cycle of a KDE Application. Where you can upload new application, how to get in one of the main KDE modules and what to do when you give up maintainership of your application. | ||
<!--T:7--> | |||
;[[/Licensing Policy|Licensing Policy]] | ;[[/Licensing Policy|Licensing Policy]] | ||
:Files in KDE | :Files in KDE source code repositories cannot be arbitrarily licensed. This policy explains what licenses are allowed where in the repository. In short: use LGPL for libraries, GPL for everything else. | ||
<!--T:8--> | |||
;[[/Library Documentation Policy|Library Documentation Policy]] | ;[[/Library Documentation Policy|Library Documentation Policy]] | ||
:Libraries for (re)use should be completely documented. This policy explains why as well as how to document things, and what style to follow. The [[ | :Libraries for (re)use should be completely documented. This policy explains why as well as how to document things, and what style to follow. The [[Guidelines_and_HOWTOs/API_Documentation|ApiDox HowTo]] contains more technical information on writing documentation for libraries. | ||
<!--T:9--> | |||
;[[/Library Code Policy|Library Code Policy]] | ;[[/Library Code Policy|Library Code Policy]] | ||
:KDE Library API and Code should follow some conventions that are explained in this policy. | :KDE Library API and Code should follow some conventions that are explained in this policy. | ||
;[[/ | <!--T:10--> | ||
:This document describes the recommended coding style for | ;[[/Frameworks Coding Style|Frameworks Coding Style]] | ||
:This document describes the recommended coding style for KDE Frameworks. Nobody is forced to use this style, but to have consistent formatting of the source code files it is recommended to make use of it. | |||
<!--T:12--> | |||
;[[/New_KDE_Library_API_Policy|Adding New Classes to kdelibs]] | |||
:Recommendations on how to add new classes or libraries to kdelibs. | |||
<!--T:13--> | |||
;[[/CMake Coding Style|CMake Coding Style]] | ;[[/CMake Coding Style|CMake Coding Style]] | ||
:This document describes the recommended coding style for CMake files in KDE. | :This document describes the recommended coding style for CMake files in KDE. | ||
;[[/ | <!--T:14--> | ||
: | ;[[/CMake and Source Compatibility|CMake and Source Compatibility]] | ||
:Keeping future KDE releases CMake-compatible. | |||
<!--T:15--> | |||
;[[/CMake Commit Policy|CMake Commit Policies]] | |||
:Rules to follow when considering a change to the CMake buildsystem. | |||
;[[/ | <!--T:16--> | ||
: | ;[[/Binary Compatibility Issues With C++|Binary Compatibility Issues With C++]] | ||
:A quick overview of issues with binary compatibility with C++. Keep this in mind while altering the API of KDE libraries, Frameworks in particular. | |||
<!--T:17--> | |||
;[[/URI & XML Namespaces Policy|URI & XML Namespaces Policy]] | ;[[/URI & XML Namespaces Policy|URI & XML Namespaces Policy]] | ||
:Sometimes KDE technologies and applications needs URIs, such as for XML formats. This policy describes practices for that, and how to allocate URIs. | :Sometimes KDE technologies and applications needs URIs, such as for XML formats. This policy describes practices for that, and how to allocate URIs. | ||
<!--T:18--> | |||
;[[/API to Avoid|API to Avoid]] | ;[[/API to Avoid|API to Avoid]] | ||
:There are classes and functions in Qt or other places that should be avoided by KDE applications. | :There are classes and functions in Qt or other places that should be avoided by KDE applications. | ||
== Procedures == | == Procedures == <!--T:19--> | ||
<!--T:20--> | |||
Whereas policies are normative for individual developers -- that is, they describe how developers must behave -- procedures describe how 'the KDE project' as a whole has chosen to behave. We describe what we will do under certain circumstances and why. | Whereas policies are normative for individual developers -- that is, they describe how developers must behave -- procedures describe how 'the KDE project' as a whole has chosen to behave. We describe what we will do under certain circumstances and why. | ||
<!--T:21--> | |||
;[[/Security Policy|Security Policy]] | ;[[/Security Policy|Security Policy]] | ||
:How security problems can be reported to [mailto:[email protected] [email protected]] and how the security team responds to security issues. | :How security problems can be reported to [mailto:[email protected] [email protected]] and how the security team responds to security issues. | ||
<!--T:22--> | |||
;[[/Packaging Policy|Packaging Policy]] | ;[[/Packaging Policy|Packaging Policy]] | ||
:This describes KDE's viewpoint on binary packages and elaborates the statement 'KDE provides source.' | :This describes KDE's viewpoint on binary packages and elaborates the statement 'KDE provides source.' | ||
<!--T:23--> | |||
;[[/Minor_Point_Release_Policy|Point Release Policy]] | |||
:Discusses KDE policies for minor point releases. | |||
;[[Moderation]] | |||
:Information about how to to content moderation in chat channels, forums, and mailing lists. | |||
<!--T:24--> | |||
[[Category:Policies]] | [[Category:Policies]] |
Latest revision as of 22:48, 22 July 2023
Introduction to Policies
There are a couple of written and unwritten rules KDE developers usually adhere to. The following documents summarize some of these policies. The list is still incomplete. If you are interested in helping out with formulating the KDE policies or would like to discuss them please use the kde-policies mailing list which was created for this purpose.
Policies for Developers
These policies apply to KDE developers and it is expected that all persons with a KDE Developer account follow these policies. The commit policy is the most important one. Persons working on libraries (kdelibs mostly, but central libraries in other source code repositores fall under this as well) should read the library documentation policy (and the apidox howto as well).
- Commit Policy
- Rules for commits to the KDE code repository. The three golden rules (make sure it compiles, follow existing coding style, use descriptive log messages) and 18 more rules to follow to make sure that your commits are the best they can be.
- Application Lifecycle
- Learn all about the Life Cycle of a KDE Application. Where you can upload new application, how to get in one of the main KDE modules and what to do when you give up maintainership of your application.
- Licensing Policy
- Files in KDE source code repositories cannot be arbitrarily licensed. This policy explains what licenses are allowed where in the repository. In short: use LGPL for libraries, GPL for everything else.
- Library Documentation Policy
- Libraries for (re)use should be completely documented. This policy explains why as well as how to document things, and what style to follow. The ApiDox HowTo contains more technical information on writing documentation for libraries.
- Library Code Policy
- KDE Library API and Code should follow some conventions that are explained in this policy.
- Frameworks Coding Style
- This document describes the recommended coding style for KDE Frameworks. Nobody is forced to use this style, but to have consistent formatting of the source code files it is recommended to make use of it.
- Adding New Classes to kdelibs
- Recommendations on how to add new classes or libraries to kdelibs.
- CMake Coding Style
- This document describes the recommended coding style for CMake files in KDE.
- CMake and Source Compatibility
- Keeping future KDE releases CMake-compatible.
- CMake Commit Policies
- Rules to follow when considering a change to the CMake buildsystem.
- Binary Compatibility Issues With C++
- A quick overview of issues with binary compatibility with C++. Keep this in mind while altering the API of KDE libraries, Frameworks in particular.
- URI & XML Namespaces Policy
- Sometimes KDE technologies and applications needs URIs, such as for XML formats. This policy describes practices for that, and how to allocate URIs.
- API to Avoid
- There are classes and functions in Qt or other places that should be avoided by KDE applications.
Procedures
Whereas policies are normative for individual developers -- that is, they describe how developers must behave -- procedures describe how 'the KDE project' as a whole has chosen to behave. We describe what we will do under certain circumstances and why.
- Security Policy
- How security problems can be reported to [email protected] and how the security team responds to security issues.
- Packaging Policy
- This describes KDE's viewpoint on binary packages and elaborates the statement 'KDE provides source.'
- Point Release Policy
- Discusses KDE policies for minor point releases.
- Moderation
- Information about how to to content moderation in chat channels, forums, and mailing lists.