Archive:Development/Software Engineering Framework (zh CN)

From KDE TechBase
Revision as of 03:28, 1 October 2009 by Alisha (talk | contribs)


Development/Software_Engineering_Framework


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

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


开发工具

代码控制

代码控制
Current State   People  

KDE系统管理队伍:

Get Involved   Alternative Tools  


Subversion 1.4是目前用于KDE的源代码管理系统,服务器位于法兰克福。另一个只读镜像位于anonsvn.kde.org。

移植到一个分布式的源代码管理系统已经提上议事日程,考虑GIT。关于这件事的讨论详见 kde-scm-interest邮件列表。 GIT可能会和其他工具,诸如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

KDE系统管理团队:

Get Involved   Alternative Tools  

n/a

n/a


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

审阅

审阅补丁(递交前)

审阅补丁(递交前)
Current State   People  
  • David Solbach和KDE系统管理组维护Plasma审阅公告栏的安装。
Get Involved   Alternative Tools  
  • Launchpad.net offers merge review/approval pre-merge [1] [2] [3]


通常KDE并不对单个补丁提供正规审阅策略。有些补丁在检入SVN之前就有邮件组审阅过了。这通常是针对一个大补丁或有新手开发的补丁。

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 邮件组记录所有KDE svn的检入。
  • 检入过滤用于过滤那些基于检入的相关检入。
  • 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  
  • 未知


检入过滤用于将相关键入内容发送给相关邮件列表。


设计审阅

设计审阅
Current State   People  

在此审阅设计方案

  • 邮件列表
  • 项目维基
  • face-to-face/BOF 会话和精神
  • kde审阅

Unknown

Get Involved   Alternative Tools  

n/a


KDE没有正式的官方设计审阅流程。一些设计审阅就是KDE审阅的一部分。将来也许要把它正规化并要求有一些设计文档。

文档

技术文档

技术文档
Current State   People  
  • Danimo 是techbase.kde.org 的MediaWiki管理员
Get Involved   Alternative Tools  

n/a


techbase.kde.org是个维基(MediaWiki)网站,用于收集技术任务如教程,日程安排和项目信息。wiki.kde.org是个tiki-wiki网站,有类似功能,两个都再用,将来也许会合二为一。


API文档

API文档
Current State   People  
  • Doxygen用于将源文件中的文字抽出产生API文档。
Get Involved   Alternative Tools  


KDE API文档是每日构建并放在http://api.kde.org。它也可以在本地通过IDE来创建。

可以从KDE源代码创建man pagesQT帮助文档


用户手册

用户手册
Current State   People  

Unknown

Get Involved   Alternative Tools  

n/a


用户文档是从模块文档目录(doc/)创建的,在http://docs.kde.org 可以找到。

meinproc 是个KDE工具(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 和KDE系统管理元团队维护KDE Bugzilla系统。
Get Involved   Alternative Tools  


Bug tracking in KDE的缺陷追踪系统现在合并到Bugzilla 3.0。Work was recently merged on a transition to Bugzilla 3.0 from Bugzilla 2.16. 现在人有些清理工作但大部分已经完成了。

Bugzilla使用不便而且让新手感到畏惧。


静态代码检查

静态代码检查
Current State   People  
  • Krazy 在EnglishBreakfastNetwork (EBN).
  • Coverity is used to find possible sources of defects and suggested optimizations. Results are displayed per module as part of Dirks Dashboard 构建.
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.

构建计划在下列平台上:

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


单元测试

单元测试
Current State   People  

单元测试可以通过QTest框架创建。可以通过运行'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  
Get Involved   Alternative Tools  

n/a


可以有一些统计数字,诸如千行错误率,缺陷修正率等。


性能和优化

性能和优化
Current State   People  
  • kde-optimize mailing list coordinates optimizations in KDE.
  • Krazy and Coverity tools also include some optimization checks.
  • KDE宏用于优化通用算法。

Unknown

Get Involved   Alternative Tools  

n/a


以后会向开发员提供一些教程,让他们能够优化代码。


Accessibility和可用性

Accessibility和可用性
Current State   People  
Get Involved   Alternative Tools  

n/a



研究

研究
Current State   People  
Get Involved   Alternative Tools  

n/a


市场和开拓期望

需求收集

需求收集
Current State   People  
  • 从用户而来的需求以及商业热点:http://bugs.kde.org
  • 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 市场团队管理市场和KDE官方代码的升级。
  • http://dot.kde.org 关于升级声明的社区论坛。
  • http://www.kde.org/announcements 是KDE的官方声明的来源。
  • Design and maintenance of KDE websites is organised on the kde-www邮件列表
  • 市场团队 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. 开发网站。
Get Involved   Alternative Tools  

n/a



沟通管理

沟通管理
Current State   People  

开发人员可以通过下列方式沟通:

开发员和用户间的沟通:

用户间和用户开发员间沟通:

Get Involved   Alternative Tools  
  • Add your blog to planet kde if you contribute to KDE in some way, 包括开发,测试,推广,翻译和文档等等。

n/a


发布

发布计划

发布计划
Current State   People  
Get Involved   Alternative Tools  

n/a



功能计划

功能计划
Current State   People  

KDE发行团队

Get Involved   Alternative Tools  


现在techbase用于讨论未来计划,但也许还有更好的办法。

Downstream包装者和贡献

Downstream包装者和贡献
Current State   People  
  • KDE3 & KDE4都由许多发行包。

Unknown

Get Involved   Alternative Tools  
  • kde-packagers - Private mailing list for packagers.包括安全性发布的信息。

n/a



主题和翻译

美工

美工
Current State   People  
  • The kde-artists team 创建KDE官方作品。
  • kde-look.org for non-offical artwork.
Get Involved   Alternative Tools  

n/a


其他美工事宜见 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. - 法律实体的代表

KDE e.v. - 法律实体的代表
Current State   People  
  • KDE e.v 注册非营利机构,在法律和财务上代表KDE项目。

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允许商业/非商业的开发,proprietry and non-proprietry development.
  • Projects/KDE_Relicensing Effort to relicence KDE code to use version 3 of GNU GPL 和LGPL. This work is unfinished but not still being performed. 许多支持者都联系不上了。

Unknown

Get Involved   Alternative Tools  

n/a


赞助与合作

赞助与合作
Current State   People  

Unknown

Get Involved   Alternative Tools  

n/a