Archive:Development/Software Engineering Framework (zh TW): Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Template:I18n/Language Navigation Bar_(zh_TW)|Development/Software_Engineering_Framework}} | {{Template:I18n/Language Navigation Bar_(zh_TW)|Development/Software_Engineering_Framework}} | ||
此網頁的目的是總結 KDE | 此網頁的目的是總結 KDE 專案在軟體工程方面所使用的工具和步驟;換言之,所有程式設計相關的工作。這包括 bug 修正、審查、測試、文件、需求等等。 | ||
KDE 目前使用的工具列出了其使用範圍、已知的替代品、和優缺點。 | KDE 目前使用的工具列出了其使用範圍、已知的替代品、和優缺點。 | ||
Line 41: | Line 41: | ||
該工具被用於 KDE4 系列的建構系統,目前還沒有替換的計劃。CMake 2.6.2 版就是建構 KDE 4.2 必需的。 | 該工具被用於 KDE4 系列的建構系統,目前還沒有替換的計劃。CMake 2.6.2 版就是建構 KDE 4.2 必需的。 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 53: | Line 52: | ||
}} | }} | ||
[http://en.wikipedia.org/wiki/LXR_Cross_Referencer LXR] | [http://en.wikipedia.org/wiki/LXR_Cross_Referencer LXR] 作出 KDE 中使用的類別和方法的索引。他可以找到如何使用類別的範例,並且在重構或更新 API 時,可以找到程式裡所有使用的類別。 | ||
== 審查 == | == 審查 == | ||
Line 97: | Line 96: | ||
許多專案使用提交過濾器來發送所有提交給相關郵件列表。 | 許多專案使用提交過濾器來發送所有提交給相關郵件列表。 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 114: | Line 112: | ||
== 文件== | == 文件== | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name=技術文件 | | name=技術文件 | ||
| currentState= | | currentState= | ||
* http://techbase.kde.org | * http://techbase.kde.org | ||
* http://wiki.koffice.org | * http://wiki.koffice.org | ||
| getInvolved= | | getInvolved= | ||
Line 128: | Line 124: | ||
}} | }} | ||
techbase.kde.org 是個 [http://www.mediawiki.org MediaWiki] 網站 | techbase.kde.org 是個 [http://www.mediawiki.org MediaWiki] 網站 ,用於收集技術任務如教學、時間表和專案資訊。 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 139: | Line 135: | ||
* [http://www.kdedevelopers.org/blog/1451 Allen Winter],api.kde.org管理員。 | * [http://www.kdedevelopers.org/blog/1451 Allen Winter],api.kde.org管理員。 | ||
| altTools= | | altTools= | ||
* [http://labs.trolltech.com/blogs/2008/06/20/introducing-doxygen2qthelp-create-qch-files-from-doxygen-finally/ doxygen2qthelp],trolltech | * [http://labs.trolltech.com/blogs/2008/06/20/introducing-doxygen2qthelp-create-qch-files-from-doxygen-finally/ doxygen2qthelp],trolltech 用來建立 Qt 文件。 | ||
}} | }} | ||
KDE API 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。 | KDE API 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。 | ||
可以從 KDE | 可以從 KDE 原始碼建立 [http://www.kdedevelopers.org/node/3010 man pages] 和[http://thread.gmane.org/gmane.comp.kde.devel.core/55578 qthelp 文件]。 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 154: | Line 149: | ||
* {{KDEML|kde-docbook}} 記錄所有<tt>GUI</tt> magic word 的 SVN 提交。 | * {{KDEML|kde-docbook}} 記錄所有<tt>GUI</tt> magic word 的 SVN 提交。 | ||
| getInvolved= | | getInvolved= | ||
* http://userbase.kde.org | * http://userbase.kde.org 建立教學和提示。 | ||
* {{KDEML|kde-doc-english}} 用於協調使用者文件。 | * {{KDEML|kde-doc-english}} 用於協調使用者文件。 | ||
* {{KDEML|kde-docbook}} 協助更新 GUI 變更後的文件。 | * {{KDEML|kde-docbook}} 協助更新 GUI 變更後的文件。 | ||
Line 161: | Line 156: | ||
使用者文件是從模塊 doc/ 目錄產生的,在 http://docs.kde.org 上也有。 | 使用者文件是從模塊 doc/ 目錄產生的,在 http://docs.kde.org 上也有。 | ||
meinproc 是一個 KDE 工具(Stephen Kulow | meinproc 是一個 KDE 工具(Stephen Kulow 所寫,它使用 libxslt 轉變 docbook 成(bzip壓縮)html。在執行 kio_help 時打開 bzip 壓縮過的 html 並在 khelpcenter 中顯示給使用者。 | ||
http://userbase.kde.org | http://userbase.kde.org 的目的是作為網絡上使用者文件的主要來源。之後可能會打包內容,供離線使用。 | ||
== 測試和品質== | == 測試和品質== | ||
Line 175: | Line 170: | ||
* [http://mattr.info:8080/blog/?s=bugzilla Matt Rogers] and the KDE sysadmin team maintain the KDE bugzilla installation. | * [http://mattr.info:8080/blog/?s=bugzilla Matt Rogers] and the KDE sysadmin team maintain the KDE bugzilla installation. | ||
| getInvolved= | | getInvolved= | ||
* {{KDEML|kde-core-devel}} | * {{KDEML|kde-core-devel}} 討論 KDE bug 追踪系統的替代品。 | ||
* {{KDEML|kde-bugs-dist}} | * {{KDEML|kde-bugs-dist}} 記錄 bugs.kde.org 所有的更新。 | ||
* {{KDEML|kdelibs-bugs}} | * {{KDEML|kdelibs-bugs}} 記錄 kdelibs bug 所有的更新。 | ||
* {{KDEML|konq-bugs}} | * {{KDEML|konq-bugs}} 記錄 konqueror bugs 所有的更新。 | ||
* {{KDEML|kdevelop-bugs}} | * {{KDEML|kdevelop-bugs}} 記錄 kdevelop bugs 所有的更新。 | ||
* {{KDEML|amarok-bugs-dist}} | * {{KDEML|amarok-bugs-dist}} 記錄 amarok bugs 所有的更新。 | ||
| altTools= | | altTools= | ||
* 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] | ||
Line 190: | Line 185: | ||
Bugzilla can be difficult to use and daunting to newbies. | Bugzilla can be difficult to use and daunting to newbies. | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name=靜態程式碼分析 | | name=靜態程式碼分析 | ||
| currentState= | | currentState= | ||
* [http://www.englishbreakfastnetwork.org/krazy/ Krazy] | * 位於 EnglishBreakfastNetwork(EBN)的 [http://www.englishbreakfastnetwork.org/krazy/ Krazy]。 | ||
* [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]. | * [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] | ||
}} | }} | ||
歡迎加入更多檢查到 Krazy。詳見 http://websvn.kde.org/trunk/quality/ 。 | |||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name= | | name=建構測試 | ||
| currentState= | | currentState= | ||
* [http://developer.kde.org/~dirk/dashboard/ Continuous build server] reports broken builds on linux. | * [http://developer.kde.org/~dirk/dashboard/ Continuous build server] reports broken builds on linux. | ||
Line 228: | Line 220: | ||
* FreeBSD 7 (gcc) | * FreeBSD 7 (gcc) | ||
* Solaris (S10, S11) on SPARC and amd64 | * Solaris (S10, S11) on SPARC and amd64 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 239: | Line 230: | ||
It may be possible run run these tests automatically possibly on EBN or on Dirks dashboard. | It may be possible run run these tests automatically possibly on EBN or on Dirks dashboard. | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 251: | Line 241: | ||
| getInvolved= | | getInvolved= | ||
}} | }} | ||
It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc. | It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc. | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 268: | Line 256: | ||
Tutorials may be provided in the future to help developers optimize their code. | Tutorials may be provided in the future to help developers optimize their code. | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 283: | Line 270: | ||
* [[Projects/Usability/HIG KDE Human interaction Guidelines]]. | * [[Projects/Usability/HIG KDE Human interaction Guidelines]]. | ||
}} | }} | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 299: | Line 285: | ||
== 市場和期望 == | == 市場和期望 == | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name=需求收集 | | name=需求收集 | ||
Line 309: | Line 294: | ||
* {{KDEML|kde-core-devel}} 討論 kde 獲取需求的新方法。 | * {{KDEML|kde-core-devel}} 討論 kde 獲取需求的新方法。 | ||
}} | }} | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 328: | Line 312: | ||
* [http://dot.kde.org/addPostingForm 提交 dot 文章] | * [http://dot.kde.org/addPostingForm 提交 dot 文章] | ||
}} | }} | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 343: | Line 326: | ||
* [http://omat.nl Tom Albers] | * [http://omat.nl Tom Albers] | ||
| getInvolved= | | getInvolved= | ||
* 請寄 e-mail 到 [email protected] | |||
}} | }} | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 402: | Line 384: | ||
目前使用 techbase 討論功能計劃,但也許還有更好的替代品。 | 目前使用 techbase 討論功能計劃,但也許還有更好的替代品。 | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
Line 411: | Line 392: | ||
* {{KDEML|kde-packagers}} - 打包者的郵件列表。包括安全性發布的資訊。 | * {{KDEML|kde-packagers}} - 打包者的郵件列表。包括安全性發布的資訊。 | ||
}} | }} | ||
== 佈景主題和翻譯 == | == 佈景主題和翻譯 == | ||
Line 418: | Line 398: | ||
| name=美工 | | name=美工 | ||
| currentState= | | currentState= | ||
* {{KDEML|kde-artists|kde-artists team}} | * {{KDEML|kde-artists|kde-artists team}} 建立 KDE 的官方美工。 | ||
* [http://kde-look.org kde-look.org] 提供非官方美工。 | * [http://kde-look.org kde-look.org] 提供非官方美工。 | ||
| people= | | people= | ||
Line 426: | Line 406: | ||
}} | }} | ||
可以用 http://kde-look.org 貢獻美工作品(artwork)。 | |||
可能有必要建立如何創造 KDE 美工的教學。 | |||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name=翻譯 | | name=翻譯 | ||
| currentState= | | currentState= | ||
* http://i18n.kde.org/ | * http://i18n.kde.org/ 用於完成 KDE 翻譯的階段。 | ||
* GNU gettext | * GNU gettext 用於 KDE 翻譯。 | ||
* <tt>.po</tt> | * 直接編輯 KDE svn 中的 <tt>.po</tt> 檔案來更新翻譯。 | ||
* kde4 為基礎的翻譯程式([http://userbase.kde.org/ | * 在 kdesdk/ 中以 kde4 為基礎的翻譯程式([http://userbase.kde.org/Lokalize_(zh_TW) Lokalize])。 | ||
* Krazy 包括翻譯的完整性檢查、複數檢查。 | * Krazy 包括翻譯的完整性檢查、複數檢查。 | ||
| altTools= | | altTools= | ||
Line 449: | Line 429: | ||
| currentState= | | currentState= | ||
* [http://ev.kde.org KDE e.v] 是一個註冊非營利機構,在法律和財務上代表 KDE 專案。 | * [http://ev.kde.org KDE e.v] 是一個註冊非營利機構,在法律和財務上代表 KDE 專案。 | ||
| getInvolved= | | getInvolved= | ||
* [http://ev.kde.org/getinvolved/ KDE e.v. membership] | * [http://ev.kde.org/getinvolved/ KDE e.v. membership] | ||
Line 455: | Line 434: | ||
{{SEFBox (zh TW) | {{SEFBox (zh TW) | ||
| name= | | name=解決授權問題 | ||
| currentState= | | 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. | * 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. | ||
* [[Policies/Licensing_Policy|KDE licencing policy]] allows commercial and non-commercial development and proprietry and non-proprietry development. | * [[Policies/Licensing_Policy|KDE licencing policy]] allows commercial and non-commercial development and proprietry and non-proprietry development. | ||
* [[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. | * [[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. | ||
}} | }} | ||
Line 468: | Line 446: | ||
* [http://ev.kde.org/supporting-members.php KDE 的支持者]贊助資金給 KDE e.v. | * [http://ev.kde.org/supporting-members.php KDE 的支持者]贊助資金給 KDE e.v. | ||
* http://ev.kde.org/getinvolved/supporting-members.php | * http://ev.kde.org/getinvolved/supporting-members.php | ||
}} | }} |
Revision as of 10:33, 5 January 2010
Template:I18n/Language Navigation Bar (zh TW)
此網頁的目的是總結 KDE 專案在軟體工程方面所使用的工具和步驟;換言之,所有程式設計相關的工作。這包括 bug 修正、審查、測試、文件、需求等等。
KDE 目前使用的工具列出了其使用範圍、已知的替代品、和優缺點。
開發工具
Subversion 1.4 是 KDE 目前使用的原始碼控制管理系統,伺服器位於法蘭克福。另一個唯讀鏡像位於anonsvn.kde.org。
已有考慮移植到一個分散式原始碼控制管理工具,如 GIT。關於這件事的討論詳見 kde-scm-interest郵件列表。很可能是 git 和其他工具一起使用,諸如repo。
CMake 是 KDE 目前使用的構建工具。他是由 kitware inc 開發的自由軟體,可用於 KDE 的多平台支援。
該工具被用於 KDE4 系列的建構系統,目前還沒有替換的計劃。CMake 2.6.2 版就是建構 KDE 4.2 必需的。
LXR 作出 KDE 中使用的類別和方法的索引。他可以找到如何使用類別的範例,並且在重構或更新 API 時,可以找到程式裡所有使用的類別。
審查
通常 KDE 並不對單個補丁(patch)提供正規審查策略。有些補丁在提交到 SVN 之前就在相關的郵件列表審查過了。這個項目是特別針對一個大補丁或是新開發者的補丁。
作為官方政策 kdereview 用於審查進入 KDE trunk 前的新應用程式和 kdelibs 的新類別。該系統的缺點是並非所有審查報告,他們都審查新的內容。它可能是審查使用的檢查清單,例如:
- 所有新加類別都有提供文件 [x]
- 正確合理使用私有類別和 d-pointers [x]
- 通過所有 Krazy 檢查 [ ]
- 沒有明顯的安全問題 [ ]
- 設計良好、易維護 [ ]
- 等等...
這些議題在這裡有所討論,但尚未精煉成 techbase 頁面。
許多專案使用提交過濾器來發送所有提交給相關郵件列表。
KDE 沒有正式的設計審查流程。一些設計審查就是 kdereview 流程的一部分。將來也許要把它正規化或鼓勵有一些設計文件。
文件
techbase.kde.org 是個 MediaWiki 網站 ,用於收集技術任務如教學、時間表和專案資訊。
KDE API 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。
可以從 KDE 原始碼建立 man pages 和qthelp 文件。
使用者文件是從模塊 doc/ 目錄產生的,在 http://docs.kde.org 上也有。
meinproc 是一個 KDE 工具(Stephen Kulow 所寫,它使用 libxslt 轉變 docbook 成(bzip壓縮)html。在執行 kio_help 時打開 bzip 壓縮過的 html 並在 khelpcenter 中顯示給使用者。
http://userbase.kde.org 的目的是作為網絡上使用者文件的主要來源。之後可能會打包內容,供離線使用。
測試和品質
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.
歡迎加入更多檢查到 Krazy。詳見 http://websvn.kde.org/trunk/quality/ 。
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
It may be possible run run these tests automatically possibly on EBN or on Dirks dashboard.
It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc.
Tutorials may be provided in the future to help developers optimize their code.
市場和期望
發布
目前使用 techbase 討論功能計劃,但也許還有更好的替代品。
佈景主題和翻譯
可以用 http://kde-look.org 貢獻美工作品(artwork)。
可能有必要建立如何創造 KDE 美工的教學。