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

From KDE TechBase
(Created page with '{{Template:I18n/Language Navigation Bar|Development/Software_Engineering_Framework}} 此網頁的目的是總結KDE 專案在軟體工程方面所使用的工具和步驟;換...')
 
No edit summary
Line 23: Line 23:
}}
}}


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
management tool, such as GIT. Discussion of this is taking place on the
{{KDEML|kde-scm-interest}}
mailing list. It is likely git will be used along with a tool such as repo.
 


已有考慮移植到一個分散式原始碼控制管理工具,如 GIT。關於這件事的討論詳見{{KDEML|kde-scm-interest}}郵件列表。很可能是 git 和其他工具一起使用,諸如repo。


{{SEFBox (zh TW)
{{SEFBox (zh TW)
Line 45: Line 38:
}}
}}


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 58: Line 48:
http://lxr.kde.org
http://lxr.kde.org
| people=
| people=
The kde sysadmin team:
kde sysadmin 團隊:
* [http://wire.dattitu.de/authors/2-Dirk Dirk Müller]
* [http://wire.dattitu.de/authors/2-Dirk Dirk Müller]
* [http://www.kdab.net/~dfaure/ David Faure]
* [http://www.kdab.net/~dfaure/ David Faure]

Revision as of 05:19, 30 September 2009


Development/Software_Engineering_Framework


此網頁的目的是總結KDE 專案在軟體工程方面所使用的工具和步驟;換言之,所有程式設計相關的工作。這包括bug修正、審查、測試、文件、需求等等。

KDE 目前使用的工具列出了其使用範圍、已知的替代品、和優缺點。

開發工具

Template:SEFBox (zh TW)

Subversion 1.4 是 KDE 目前使用的原始碼控制管理系統,伺服器位於法蘭克福。另一個唯讀鏡像位於anonsvn.kde.org。

已有考慮移植到一個分散式原始碼控制管理工具,如 GIT。關於這件事的討論詳見 kde-scm-interest郵件列表。很可能是 git 和其他工具一起使用,諸如repo。

Template:SEFBox (zh TW)

CMake 是 KDE 目前使用的構建工具。他是由 kitware inc 開發的自由軟體,可用於 KDE 的多平台支援。

該工具被用於 KDE4 系列的建構系統,目前還沒有替換的計劃。CMake 2.6.2 版就是建構 KDE 4.2 必需的。


Template:SEFBox (zh TW)

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.

審查

Template:SEFBox (zh TW)

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,

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

Template:SEFBox (zh TW)

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


Template:SEFBox (zh TW)

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.

文件

Template:SEFBox (zh TW)

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.


Template:SEFBox (zh TW)

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.


Template:SEFBox (zh TW)

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.

測試和品質

Template:SEFBox (zh TW)

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.


Template:SEFBox (zh TW)

Additional checks are always welcome for adding to Krazy. See http://websvn.kde.org/trunk/quality/.

Template:SEFBox (zh TW)

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


Template:SEFBox (zh TW)

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


Template:SEFBox (zh TW)


It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc.


Template:SEFBox (zh TW)

Tutorials may be provided in the future to help developers optimize their code.


Template:SEFBox (zh TW)


Template:SEFBox (zh TW)

Marketing and Expectations

Template:SEFBox (zh TW)


Template:SEFBox (zh TW)


Template:SEFBox (zh TW)


Template:SEFBox (zh TW)

發布

Template:SEFBox (zh TW)


Template:SEFBox (zh TW)

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

Template:SEFBox (zh TW)


佈景主題和翻譯

Template:SEFBox (zh TW)

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.

Template:SEFBox (zh TW)

法律與支援

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)