Archive:Development/Software Engineering Framework (zh CN): Difference between revisions

From KDE TechBase
No edit summary
No edit summary
Line 24: Line 24:
}}
}}


Subversion 1.4 is currently used for source control management in KDE on
Subversion 1.4是目前用于KDE的源代码管理系统,服务器位于法兰克福。另一个只读镜像位于anonsvn.kde.org。
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
There is interest in migrating to a distributed source control
Line 39: Line 37:
| currentState=
| currentState=
* [http://www.cmake.org/ CMake 2.6.0]
* [http://www.cmake.org/ CMake 2.6.0]
* [http://api.kde.org/cmake/modules.html Custom CMake module documentation]
* [http://api.kde.org/cmake/modules.html 定制CMake模块文档]
| getInvolved=
| getInvolved=
* {{KDEML|kde-buildsystem}}
* {{KDEML|kde-buildsystem}}
Line 46: Line 44:
}}
}}


CMake is the build tool currently used by KDE. It is Free Software
CMake是目前KDE使用的构建工具。他是由[http://www.kitware.com/ kitware inc]开发的自由软件,可用于多个KDE平台。
developed by [http://www.kitware.com/ kitware inc] and available on
multiple platforms supported by KDE.


This tool was chosen as the buildsystem for the KDE4 series, and there
该工具被用于KDE4系列的联编,目前还没有替换的计划。CMake 2.6.2版本就是用来联编KDE 4.2的。
are no plans currently to migrate away from it. CMake version 2.6.2 will be required to build KDE 4.2 final.




Line 64: Line 59:
}}
}}


[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.
[http://en.wikipedia.org/wiki/LXR_Cross_Referencer LXR]为KDE中的类和方法作出索引。他可以用来方便的找出适合使用一个类,并且找到他在整个程序里是如何被使用的。通常在重构是很有用。


== 审阅 ==
== 审阅 ==
Line 70: Line 65:
| name=审阅补丁(递交前)
| name=审阅补丁(递交前)
| currentState=
| currentState=
* [http://reviewboard.vidsolbach.de/ Review-board] used by plasma project.
* [http://reviewboard.vidsolbach.de/ Review-board]用于Plasma项目。
* trunk/kdereview
* trunk/kdereview
| people=
| people=
Line 98: Line 93:
* 等等
* 等等


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.
这些议题在[http://thread.gmane.org/gmane.comp.kde.devel.core/54213 这里]有所讨论,但目前还没有一个定稿。所以没有提现在这里。


{{SEFBox
{{SEFBox
Line 111: Line 106:
* {{KDEML|kde-commits}}
* {{KDEML|kde-commits}}
| altTools=
| altTools=
* Unknown
* 未知
}}
}}


Line 173: Line 168:
* {{KDEML|kde-docbook}} Records all SVN commits with the <tt>GUI</tt> magic word.
* {{KDEML|kde-docbook}} Records all SVN commits with the <tt>GUI</tt> magic word.
| getInvolved=
| getInvolved=
* http://userbase.kde.org Create tutorials and tips.
* http://userbase.kde.org 创建教程和提示.
* {{KDEML|kde-doc-english}} Used to coordinate user documentation.
* {{KDEML|kde-doc-english}} 用于协调用户文档。
* {{KDEML|kde-docbook}} Help update documentation after GUI changes.
* {{KDEML|kde-docbook}} 用于更新图形界面变更后的文档.
}}
}}


Line 203: Line 198:
* 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"
* [http://www.redmine.org/ Redmine] - 类似"Trac on Rails"的工具
}}
}}


Line 223: Line 218:
}}
}}


Additional checks are always welcome for adding to Krazy. See http://websvn.kde.org/trunk/quality/.
欢迎添加更多Krazy检查。详见http://websvn.kde.org/trunk/quality/.


{{SEFBox
{{SEFBox
Line 242: Line 237:
Builds are planned for the following platforms:
Builds are planned for the following platforms:


* Windows
* 微软视窗
* MacOS
* 苹果OS
* FreeBSD 6 (gcc)
* FreeBSD 6 (gcc)
* FreeBSD 7 (gcc)
* FreeBSD 7 (gcc)
* Solaris (S10, S11) on SPARC and amd64
* Solaris (S10, S11);SPARC和AMD64上




Line 254: Line 249:
[[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>'.
| getInvolved=
| getInvolved=
* [[Development/Tutorials/Unittests|Techbase Unit tests tutorial]]
* [[Development/Tutorials/Unittests|Techbase单元测试教程]]
}}
}}


Line 300: Line 295:
| getInvolved=
| getInvolved=
* {{KDEML|kde-usability}}
* {{KDEML|kde-usability}}
* [[Projects/Usability/HIG KDE Human interaction Guidelines]].
* [[Projects/Usability/HIG KDE人机交互指南]].
}}
}}


Line 314: Line 309:
* [http://www.kdedevelopers.org/blog/2904 Sebastian Trueg] leads the kde-nepomuk project.
* [http://www.kdedevelopers.org/blog/2904 Sebastian Trueg] leads the kde-nepomuk project.
| getInvolved=
| getInvolved=
* [http://lists.semanticdesktop.org/mailman/listinfo/nepomuk-kde Nepomuk KDE mailing list]
* [http://lists.semanticdesktop.org/mailman/listinfo/nepomuk-kde Nepomuk KDE 邮件列表]
}}
}}


== Marketing and Expectations ==
== 市场和开拓期望 ==


{{SEFBox
{{SEFBox
Line 350: Line 345:


{{SEFBox
{{SEFBox
| name=Community management
| name=社区管理
| currentState=
| currentState=
* The Community Working Group helps with community advice when needed
* The Community Working Group helps with community advice when needed
Line 362: Line 357:
* [http://omat.nl Tom Albers]
* [http://omat.nl Tom Albers]
| getInvolved=
| getInvolved=
* Send an e-mail to community-wg@kde.org
* 给community-wg@kde.org发邮件
}}
}}


Line 404: Line 399:


{{SEFBox
{{SEFBox
| name=Feature planning
| name=功能计划
| currentState=
| currentState=
* [[Schedules/KDE4/4.1_Feature_Plan]]
* [[Schedules/KDE4/4.1_Feature_Plan]]
Line 414: Line 409:
* [http://wiki.pentaho.com/display/OpenScrum/Home Scrum in Open Source Projects]
* [http://wiki.pentaho.com/display/OpenScrum/Home Scrum in Open Source Projects]
| getInvolved=
| getInvolved=
* {{KDEML|kde-core-devel}} - Discuss the KDE approach to feature planning.
* {{KDEML|kde-core-devel}} - 讨论KDE趋势和发展计划。
}}
}}


Line 428: Line 423:




== Theming and Translations ==
== 主题和翻译==


{{SEFBox
{{SEFBox
| name=Artwork
| name=美工
| currentState=
| currentState=
* The {{KDEML|kde-artists|kde-artists team}} creates offical artwork for KDE.
* The {{KDEML|kde-artists|kde-artists team}} 创建KDE官方作品。
* kde-look.org for non-offical artwork.
* kde-look.org for non-offical artwork.
| people=
| people=
Line 464: Line 459:
| currentState=
| currentState=
* [http://ev.kde.org KDE e.v] is a registered non-profit organization that represents the KDE Project in legal and financial matters.
* [http://ev.kde.org KDE e.v] is a registered non-profit organization that represents the KDE Project in legal and financial matters.
| altTools= N/A
| altTools= 不祥
| getInvolved=
| getInvolved=
* [http://ev.kde.org/getinvolved/ KDE e.v. membership]
* [http://ev.kde.org/getinvolved/ KDE e.v. membership]

Revision as of 15:25, 16 February 2009


Development/Software_Engineering_Framework


此网页的目的是总结KDE项目在软件工程方面所使用的工具和程序;覆盖所有编码工作。这包括错误修正,审查,测试,文档,需求等等。

目前所使用的KDE的工具集列出了其使用范围,已知的替代品,和优点/缺点。


开发工具

代码控制

代码控制
Current State   People  

The kde sysadmin team:

Get Involved   Alternative Tools  


Subversion 1.4是目前用于KDE的源代码管理系统,服务器位于法兰克福。另一个只读镜像位于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. It is likely git will be used along with a tool such as repo.


联编系统

联编系统
Current State   People  
Get Involved   Alternative Tools  

n/a


CMake是目前KDE使用的构建工具。他是由kitware inc开发的自由软件,可用于多个KDE平台。

该工具被用于KDE4系列的联编,目前还没有替换的计划。CMake 2.6.2版本就是用来联编KDE 4.2的。


搜寻

搜寻
Current State   People  

http://lxr.kde.org

The kde sysadmin team:

Get Involved   Alternative Tools  

n/a

n/a


LXR为KDE中的类和方法作出索引。他可以用来方便的找出适合使用一个类,并且找到他在整个程序里是如何被使用的。通常在重构是很有用。

审阅

审阅补丁(递交前)

审阅补丁(递交前)
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,

  • 新加内容都有文档记录 [x]
  • 私有类和d-指针正确合理使用 [x]
  • 通过测试 [ ]
  • 没有明显安全顾虑 [ ]
  • 设计良好、易维护 [ ]
  • 等等

这些议题在这里有所讨论,但目前还没有一个定稿。所以没有提现在这里。

递交审阅(递交后)

递交审阅(递交后)
Current State   People  
  • 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.
  • SVN CCBUG: feature used to notify closed bugs of updates. Commonly used when porting fixes between branches. Also notifies all bug subscribers of the commit.

Unknown

Get Involved   Alternative Tools  
  • 未知


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


设计审阅

设计审阅
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.

文档

技术文档

技术文档
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文档

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


KDE API documentation 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.

It is possible to create man pages and qthelp documentation from kde sources.


用户手册

用户手册
Current State   People  

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.

http://userbase.kde.org is intended to be the primary source of user documentation on the web. Content will possibly be packaged for offline use in the future.

测试和质检

缺陷跟踪

缺陷跟踪
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 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.


静态代码检查

静态代码检查
Current State   People  
  • Krazy hosted at EnglishBreakfastNetwork (EBN).
  • Coverity is used to find possible sources of defects and suggested optimizations. Results are displayed per module as part of Dirks Dashboard builds.
Get Involved   Alternative Tools  

n/a


欢迎添加更多Krazy检查。详见http://websvn.kde.org/trunk/quality/.

联编测试

联编测试
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:

  • 微软视窗
  • 苹果OS
  • FreeBSD 6 (gcc)
  • FreeBSD 7 (gcc)
  • Solaris (S10, S11);SPARC和AMD64上


单元测试

单元测试
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.


质量测试

质量测试
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  
  • kde-optimize mailing list coordinates optimizations in KDE.
  • Krazy and Coverity tools also include some optimization checks.
  • KDE macros for optimization of common algorithms.

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



研究

研究
Current State   People  
Get Involved   Alternative Tools  

n/a


市场和开拓期望

需求收集

需求收集
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  
  • The KDE marketing team manage marketing and promotion from official kde sources.
  • 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.
  • Design and maintenance of KDE websites is organised on the kde-www mailing list
  • The Marketing working group coordinates several marketing efforts such as promoting planning and branding.
  • KDE e.v provides a booth box for conference booths containing posters, leaftlets and other information needed at a conference stand.
Get Involved   Alternative Tools  

n/a



社区管理

社区管理
Current State   People  
  • The Community Working Group helps with community advice when needed
  • 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'.
  • http://community.kde.org. In development website.
Get Involved   Alternative Tools  

n/a



沟通管理

沟通管理
Current State   People  

Developers communicate with each other through

Developers communicate with users though

Users communicate with each other and developers through

Get Involved   Alternative Tools  
  • Add your blog to planet kde if you contribute to KDE in some way, including development, testing, advocacy, translation, documentation etc.

n/a


发布

发布计划

发布计划
Current State   People  
Get Involved   Alternative Tools  

n/a



功能计划

功能计划
Current State   People  

The KDE release team

Get Involved   Alternative Tools  


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

Downstream packagers and contributions

Downstream packagers and contributions
Current State   People  
  • Many distributions package KDE3 & KDE4.

Unknown

Get Involved   Alternative Tools  
  • kde-packagers - Private mailing list for packagers. Includes information relating to security releases.

n/a



主题和翻译

美工

美工
Current State   People  
  • The kde-artists team 创建KDE官方作品。
  • kde-look.org for non-offical artwork.
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.

翻译

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


法律与支持

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.

Unknown

Get Involved   Alternative Tools  

不祥


许可证

许可证
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.

Unknown

Get Involved   Alternative Tools  

n/a

N/A


赞助与合作

赞助与合作
Current State   People  

Unknown

Get Involved   Alternative Tools  

n/a

N/A