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 專案在軟體工程方面所使用的工具和步驟;換...')
 
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Software_Engineering_Framework}}
{{Template:I18n/Language Navigation Bar_(zh_TW)|Development/Software_Engineering_Framework}}


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


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


== 開發工具 ==
== 開發工具 ==
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
are no plans currently to migrate away from it. CMake version 2.6.2 will be required to build KDE 4.2 final.


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


{{SEFBox (zh TW)
{{SEFBox (zh TW)
Line 58: Line 47:
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]
}}
}}


[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 中使用的類別和方法的索引。他可以找到如何使用類別的範例,並且在重構或更新 API 時,可以找到程式裡所有使用的類別。


== 審查 ==
== 審查 ==
{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Patch review (pre commit)
| 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=
* David Solbach and the kde sysadmin team maintain the Plasma review-board installation.
* David Solbach kde sysadmin 團隊維護 Plasma review-board 的安裝。
| getInvolved=
| getInvolved=
* {{KDEML|kde-core-devel}}: Discuss KDE patch review and tools
* {{KDEML|kde-core-devel}}:討論 KDE 補丁審查和工具
| altTools=
| altTools=
* Launchpad.net offers merge review/approval pre-merge [https://code.launchpad.net/~thumper/pqm/test-bzr-home/+merge/296/] [http://news.launchpad.net/cool-new-stuff/review-branch-merge-proposals-in-launchpad] [http://news.launchpad.net/cool-new-stuff/email-interface-to-code-review]
* Launchpad.net offers merge review/approval pre-merge [https://code.launchpad.net/~thumper/pqm/test-bzr-home/+merge/296/] [http://news.launchpad.net/cool-new-stuff/review-branch-merge-proposals-in-launchpad] [http://news.launchpad.net/cool-new-stuff/email-interface-to-code-review]
}}
}}


In general KDE does not have a formal patch review policy for individual
通常 KDE 並不對單個補丁(patch)提供正規審查策略。有些補丁在提交到 SVN 之前就在相關的郵件列表審查過了。這個項目是特別針對一個大補丁或是新開發者的補丁。
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
作為官方政策 kdereview 用於審查進入 KDE trunk 前的新應用程式和 kdelibs 的新類別。該系統的缺點是並非所有審查報告,他們都審查新的內容。它可能是審查使用的檢查清單,例如:
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]
* 所有新加類別都有提供文件 [x]
* Private classes and d-pointers used where appropriate [x]
* 正確合理使用私有類別和 d-pointers [x]
* Passes all krazy checks [ ]
* 通過所有 Krazy 檢查 [ ]
* No obvious security concerns [ ]
* 沒有明顯的安全問題 [ ]
* Designed well/maintainable [ ]
* 設計良好、易維護 [ ]
* etc...
* 等等...


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 這裡]有所討論,但尚未精煉成 techbase 頁面。


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Commit review (after commit)
| name=提交審查(提交後)
| currentState=
| currentState=
* {{KDEML|kde-commits}} mailing list records all commits to KDE svn.
* {{KDEML|kde-commits}} 郵件列表記錄所有 KDE svn 的提交。
* The [http://commit-filter.org commit filter] is used to filter relevant commits based on path of the commit.
* [http://commit-filter.org 提交過濾器] 用於過濾那些基於提交補丁的相關提交。
* SVN <tt>CCMAIL:</tt> feature used to notify relevant mailing lists or individuals of specific commits.
* SVN <tt>CCMAIL:</tt>用於通知相關的郵件列表或特別的提交。
* SVN <tt>BUG:</tt> feature used to close bugs, and also notifies all bug subscribers of the commit.
* SVN <tt>BUG:</tt>用來關閉 bug,並通知所有 bug 提交的訂閱者。
* SVN <tt>CCBUG:</tt> feature used to notify closed bugs of updates. Commonly used when porting fixes between branches. Also notifies all bug subscribers of the commit.
* SVN <tt>CCBUG:</tt>用來通知關閉更新的 bug。移植時常用修復分支之間。還通知 bug 提交的訂閱者。
| getInvolved=
| getInvolved=
* {{KDEML|kde-commits}}
* {{KDEML|kde-commits}}
| altTools=
* Unknown
}}
}}


The commit filter is used by several projects to forward all commits to the relevant mailing list.
許多專案使用提交過濾器來發送所有提交給相關郵件列表。
 


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Design Review
| name=設計審查
| currentState=
| currentState=
Design review takes place on
設計審查有
* mailing lists
* 郵件列表
* project wikis
* 專案 wikis
* face-to-face/BOF sessions and sprints
* face-to-face/BOF sessions and sprints
* kdereview
* kdereview
| getInvolved=
| getInvolved=
* {{KDEML|kde-core-devel}} is used to announce new additions to kdereview.
* {{KDEML|kde-core-devel}} 用於宣布新加入 kdereview。
}}
}}


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.
KDE 沒有正式的設計審查流程。一些設計審查就是 kdereview 流程的一部分。將來也許要把它正規化或鼓勵有一些設計文件。


== 文件==
== 文件==
{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=技術文件
| name=技術文件
| currentState=
| currentState=
* http://techbase.kde.org
* http://techbase.kde.org
* http://wiki.kde.org
* http://wiki.koffice.org
* http://wiki.koffice.org
| getInvolved=
| getInvolved=
* {{KDEML|kde-www}}
* {{KDEML|kde-www}}
| people=
| people=
* [[User:Danimo|Danimo]] is the MediaWiki admin for techbase.kde.org.
* [[User:Danimo|Danimo]] techbase.kde.org 的 MediaWiki 管理員。
| futureWork=
| futureWork=
}}
}}


techbase.kde.org is a [http://www.mediawiki.org 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.
techbase.kde.org 是個 [http://www.mediawiki.org MediaWiki] 網站 ,用於收集技術任務如教學、時間表和專案資訊。
 


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=API 文件
| name=API 文件
| currentState=
| currentState=
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen] is used to generate api documentation from documentation strings in code.
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen] 用於將程式碼中的文字抽出產生API文件。
| getInvolved=
| getInvolved=
* [[Development/Tutorials/API_Documentation|APIDOX tutorials]] Make KDE API docs better.
* [[Development/Tutorials/API_Documentation|APIDOX 教學]],改善 KDE API 文件。
| people=
| people=
* [http://www.kdedevelopers.org/blog/1451 Allen Winter] administers 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] used by trolltech to create qt documentation.
* [http://labs.trolltech.com/blogs/2008/06/20/introducing-doxygen2qthelp-create-qch-files-from-doxygen-finally/ doxygen2qthelp],trolltech 用來建立 Qt 文件。
}}
}}


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.
KDE API 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。
 
It is possible to create [http://www.kdedevelopers.org/node/3010 man pages] and [http://thread.gmane.org/gmane.comp.kde.devel.core/55578 qthelp documentation] from kde sources.


可以從 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 169: Line 144:
| currentState=
| currentState=
* http://userbase.kde.org
* http://userbase.kde.org
* [http://i18n.kde.org/docs/doc-primer/check-docs.html meinproc] is used to generate user documentation.
* [http://i18n.kde.org/docs/doc-primer/check-docs.html meinproc] 用於產生使用者文件。
* {{KDEML|kde-docbook}} Records all SVN commits with the <tt>GUI</tt> magic word.
* {{KDEML|kde-docbook}} 記錄所有<tt>GUI</tt> magic word 的 SVN 提交。
| 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}} 協助更新 GUI 變更後的文件。
}}
}}


User documentation is generated from module doc/ folders and hosted on http://docs.kde.org.
使用者文件是從模塊 doc/ 目錄產生的,在 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.
meinproc 是一個 KDE 工具(Stephen Kulow 所寫,它使用 libxslt 轉變 docbook 成(bzip壓縮)html。在執行 kio_help 時打開 bzip 壓縮過的 html 並在 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.
http://userbase.kde.org 的目的是作為網絡上使用者文件的主要來源。之後可能會打包內容,供離線使用。


== 測試和品質==
== 測試和品質==
Line 193: Line 168:
* [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}} Discuss alternative bug trackers for KDE.
* {{KDEML|kde-core-devel}} 討論 KDE bug 追踪系統的替代品。
* {{KDEML|kde-bugs-dist}} Records all updates on bugs.kde.org.
* {{KDEML|kde-bugs-dist}} 記錄 bugs.kde.org 所有的更新。
* {{KDEML|kdelibs-bugs}} Records all updates to kdelibs bugs.
* {{KDEML|kdelibs-bugs}} 記錄 kdelibs bug 所有的更新。
* {{KDEML|konq-bugs}} Records all updates to konqueror bugs.
* {{KDEML|konq-bugs}} 記錄 konqueror bugs 所有的更新。
* {{KDEML|kdevelop-bugs}} Records all updates to kdevelop bugs.
* {{KDEML|kdevelop-bugs}} 記錄 kdevelop bugs 所有的更新。
* {{KDEML|amarok-bugs-dist}} Records all updates to amarok bugs.
* {{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 205: Line 180:
}}
}}


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.
KDE 目前使用 Bugzilla 3.0 管理 bug 追踪。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.
Bugzilla can be difficult to use and daunting to newbies.


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Static code analysis
| name=靜態程式碼分析
| currentState=
| currentState=
* [http://www.englishbreakfastnetwork.org/krazy/ Krazy] hosted at EnglishBreakfastNetwork (EBN).
* 位於 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]
| getInvolved=
*
}}
}}


Additional checks are always welcome for adding to Krazy. See http://websvn.kde.org/trunk/quality/.
歡迎加入更多檢查到 Krazy。詳見 http://websvn.kde.org/trunk/quality/


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Build testing
| 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] 回報 linux 上的建構破損。
* [http://www.cdash.org/CDash/index.php?project=kdelibs CDash build server] stores results of non-linux builds for kdelibs.
* [http://www.cdash.org/CDash/index.php?project=kdelibs CDash build server] 存儲非 Linux 建構 kdelibs 的結果。
| getInvolved=
| getInvolved=
* {{KDEML|kde-core-devel}} Find out how to submit test build results.
* {{KDEML|kde-core-devel}} Find out how to submit test build results.
Line 246: Line 218:
* 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 253: Line 224:
[[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 Unit tests 教學]]
}}
}}


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)
| name=Quality testing
| name=品質測試
| currentState=
| currentState=
* The early adopter/user community
* 搶先採用者和使用者社群
* [http://www.sqo-oss.eu/news/coverage/sqo-oss-project-launched-with-kde SQO-OSS]
* [http://www.sqo-oss.eu/news/coverage/sqo-oss-project-launched-with-kde SQO-OSS]
| people=
| people=
* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]
* [http://people.fruitsalad.org/adridg/bobulate/ Adriaan de Groot]
* [http://hemswell.lincoln.ac.uk/~padams/index.php Paul Adams]
* [http://hemswell.lincoln.ac.uk/~padams/index.php Paul Adams]
| getInvolved=
}}
}}


 
可以有一些統計指標,譬如千行錯誤率、缺陷修正率等。
It may be possible to obtain metrics such as bugs per kloc, defect injection rate etc.
 


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Profiling and Optimizations
| name=分析和最佳化
| currentState=
| currentState=
* {{KDEML|kde-optimize}} mailing list coordinates optimizations in KDE.
* {{KDEML|kde-optimize}} 郵件列表協調 KDE 最佳化。
* Krazy and Coverity tools also include some optimization checks.
* Krazy Coverity 工具,也包括一些最佳化檢查。
* KDE macros for optimization of common algorithms.
* KDE macros for optimization of common algorithms.
| getInvolved=
| getInvolved=
Line 285: Line 252:
}}
}}


Tutorials may be provided in the future to help developers optimize their code.
可在未來提供教學幫助開發人員最佳化他們的程式碼。
 


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Accessibility and Usability
| name=易用性和可用性
| currentState=
| currentState=
* http://usability.kde.org/
* http://usability.kde.org/
Line 299: Line 265:
| getInvolved=
| getInvolved=
* {{KDEML|kde-usability}}
* {{KDEML|kde-usability}}
* [[Projects/Usability/HIG KDE Human interaction Guidelines]].
* [[Projects/Usability/HIG|KDE 人機介面指導方針]]
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Research
| name=研究
| currentState=
| currentState=
* http://research.kde.org
* http://research.kde.org
* [http://www.sqo-oss.eu/news/coverage/sqo-oss-project-launched-with-kde SQO-OSS]
* [http://www.sqo-oss.eu/news/coverage/sqo-oss-project-launched-with-kde SQO-OSS]
* http://nepomuk.kde.org/ Semantic desktop project funded by the EU.
* http://nepomuk.kde.org/ 歐盟資助的語義學桌面專案。
| 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/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 (zh TW)
{{SEFBox (zh TW)
| name=Requirements Gathering
| name=需求收集
| currentState=
| currentState=
* Requirements come from user feedback on http://bugs.kde.org and from commercial interests.
* 需求收集自使用者的反饋在 http://bugs.kde.org 和商業參與。
* Developers may do some research into requirements for applications based on User Research Profiles.
* Developers may do some research into requirements for applications based on User Research Profiles.
| getInvolved=
| getInvolved=
* http://bugs.kde.org Fill new wishlist items.
* http://bugs.kde.org 加入新的願望列表項目。
* {{KDEML|kde-core-devel}} Discuss new ways for kde to gather requirements.
* {{KDEML|kde-core-devel}} 討論 kde 獲取需求的新方法。
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Promotion
| name=推廣
| currentState=
| currentState=
* The {{KDEML|kde-promo|KDE marketing team}} manage marketing and promotion from official kde sources.
* {{KDEML|kde-promo|KDE 行銷團隊}}管理 KDE 官方來源的行銷和宣傳。
* http://dot.kde.org is the community forum around promotional announcements.
* http://dot.kde.org 是一個關於宣傳公告的社群論壇。
* http://www.kde.org/announcements is the official source of promotional announcements regarding KDE.
* http://www.kde.org/announcements 是官方來源的 KDE 宣傳公告。
* Design and maintenance of KDE websites is organised on the [https://mail.kde.org/mailman/listinfo/kde-www kde-www mailing list]
* 組織 KDE 網站的設計和維護在 [https://mail.kde.org/mailman/listinfo/kde-www kde-www 郵件列表]
* The [http://ev.kde.org/workinggroups/mwg.php Marketing working group] coordinates several marketing efforts such as promoting planning and branding.
* [http://ev.kde.org/workinggroups/mwg.php 行銷工作小組]協調幾個行銷活動,如宣傳規劃和品牌。
* KDE e.v provides a booth box for conference booths containing posters, leaftlets and other information needed at a conference stand.
* KDE e.v provides a booth box for conference booths containing posters, leaftlets and other information needed at a conference stand.
| people=
| people=
Line 344: Line 307:
| getInvolved=
| getInvolved=
* {{KDEML|kde-promo}}
* {{KDEML|kde-promo}}
* [http://dot.kde.org/addPostingForm Submit dot articles]
* [http://dot.kde.org/addPostingForm 提交 dot 文章]
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| 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 361: Line 323:
* [http://omat.nl Tom Albers]
* [http://omat.nl Tom Albers]
| getInvolved=
| getInvolved=
* Send an e-mail to [email protected]
* 請寄 e-mail [email protected]
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Communication
| name=溝通
| currentState=
| currentState=
Developers communicate with each other through
開發人員之間可以透過下列方式溝通:
* [http://lists.kde.org/ mailing lists]
* [http://lists.kde.org/ 郵件列表]
* [http://searchirc.com/irc-kde-1 IRC]
* [http://searchirc.com/irc-kde-1 IRC]
* [http://planetkde.org Blogs]
* [http://planetkde.org 部落格]
* Conferences
* 會議
Developers communicate with users though
 
* [http://planetkde.org Blogs] to some extent (mainly early adopting users).
開發人員和使用者間的溝通:
* [http://forum.kde.org Forums] to some extent where the developer chooses to.
* [http://planetkde.org 部落格]在一定程度上(主要是早期採用的使用者)。
* [http://dot.kde.org News announcements]
* [http://forum.kde.org 論壇]在一定程度上影響開發者的選擇。
Users communicate with each other and developers through
* [http://dot.kde.org 新聞公告]
* [http://forum.kde.org Forums]
 
* {{KDEML|kde}} mailing list
使用者之間和開發人員間溝通:
* #kde irc channel.
* [http://forum.kde.org 論壇]
* {{KDEML|kde}} 郵件列表
* #kde irc 頻道。
| people=
| people=
* [http://c133.org/blog/ Chris Lee] administers planetkde.org
* [http://c133.org/blog/ Chris Lee],管理 planetkde.org
| getInvolved=
| getInvolved=
* Add your blog to planet kde if you contribute to KDE in some way, including development, testing, advocacy, translation, documentation etc.
* 如果你在某些方面貢獻 KDE ,加入您的部落格到 planet kde。包括開發、測試、宣傳、翻譯、文件等。
}}
}}


== 發布 ==
== 發布 ==
{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Release Scheduling
| name=發布時間表
| currentState=
| currentState=
* Maintained at [[Schedules]].
* 維護在[[Schedules|時間表]]
| people=
| people=
*
*
* [http://cyrilleberger.blogspot.com/ Cyrill Berger] - KOffice release coordinator.
* [http://cyrilleberger.blogspot.com/ Cyrill Berger] - KOffice 發行協調者。
* [http://www.kdedevelopers.org/blog/1451 Allen Winter] - KDEPIM release coordinator.
* [http://www.kdedevelopers.org/blog/1451 Allen Winter] - KDEPIM 發行調者。
| getInvolved=
| getInvolved=
* {{KDEML|release-team}}
* {{KDEML|release-team}}
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Feature planning
| name=功能計劃
| currentState=
| currentState=
* [[Schedules/KDE4/4.1_Feature_Plan]]
* [[Schedules/KDE4/4.4 Feature Plan|KDE 4.4 功能計劃]]
* [[Schedules/KDE4/4.2_Feature_Plan]]
| people=
| people=
[https://mail.kde.org/mailman/listinfo/release-team The KDE release team]
[https://mail.kde.org/mailman/listinfo/release-team KDE 發布團隊]
| altTools=
| altTools=
* Launchpad.net offers a blueprints system.
* Launchpad.net 提供的藍圖系統。
* [http://wiki.pentaho.com/display/OpenScrum/Home Scrum in Open Source Projects]
* [http://wiki.pentaho.com/display/OpenScrum/Home 開源專案中的 Scrum]
| getInvolved=
| getInvolved=
* {{KDEML|kde-core-devel}} - Discuss the KDE approach to feature planning.
* {{KDEML|kde-core-devel}} - 討論 KDE 功能計劃。
}}
}}


Currently techbase is used for feature planning but there may be better alternatives.
目前使用 techbase 討論功能計劃,但也許還有更好的替代品。


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Downstream packagers and contributions
| name=下游打包者和貢獻
| currentState=
| currentState=
* Many distributions package KDE3 & KDE4.
* KDE3 & KDE4 由許多發行板打包。
| getInvolved=
| getInvolved=
* {{KDEML|kde-packagers}} - Private mailing list for packagers. Includes information relating to security releases.
* {{KDEML|kde-packagers}} - 打包者的郵件列表。包括安全性發布的資訊。
}}
}}


== 佈景主題和翻譯 ==
== 佈景主題和翻譯 ==
{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=美工
| name=美工
| currentState=
| currentState=
* The {{KDEML|kde-artists|kde-artists team}} creates offical artwork for KDE.
* {{KDEML|kde-artists|kde-artists team}} 建立 KDE 的官方美工。
* kde-look.org for non-offical artwork.
* [http://kde-look.org kde-look.org] 提供非官方美工。
| people=
| people=
* [http://pinheiro-kde.blogspot.com/ Nuno Pinheiro]
* [http://pinheiro-kde.blogspot.com/ Nuno Pinheiro]
Line 440: Line 398:
}}
}}


Additional contributed artwork is available on http://kde-look.org.
可以用 http://kde-look.org 貢獻美工作品(artwork)。


There may be a need to create tutorials on how to create artwork for kde.
可能有必要建立如何創造 KDE 美工的教學。


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=翻譯
| name=翻譯
| currentState=
| currentState=
* http://i18n.kde.org/ is used for level of completion of translations in KDE.
* http://i18n.kde.org/ 用於完成 KDE 翻譯的階段。
* GNU gettext is used for translation in KDE.
* GNU gettext 用於 KDE 翻譯。
* <tt>.po</tt> files are edited directly in KDE svn to update translations.
* 直接編輯 KDE svn 中的 <tt>.po</tt> 檔案來更新翻譯。
* A kde4 based translation client ([http://userbase.kde.org/Lokalize Lokalize]) is being developed in kdesdk/.
* 在 kdesdk/ 中以 kde4 為基礎的翻譯程式([http://userbase.kde.org/Lokalize_(zh_TW) Lokalize])。
* Krazy includes sanity checks/plurals checking for translation.
* Krazy 包括翻譯的完整性檢查、複數檢查。
| altTools=
| altTools=
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.
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.
Line 462: Line 420:
| name=KDE e.v. - 代表法律實體
| name=KDE e.v. - 代表法律實體
| 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] 是一個註冊非營利機構,在法律和財務上代表 KDE 專案。
| altTools= 無
| getInvolved=
| getInvolved=
* [http://ev.kde.org/getinvolved/ KDE e.v. membership]
* [http://ev.kde.org/getinvolved/ KDE e.v. membership]
Line 469: Line 426:


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Resolving licencing issues.
| 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 授權政策]]允許商業和非商業的開發以及私有和非私有的開發。
* [[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.
| altTools= 無
}}
}}


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Sponsorship and Patronship
| name=贊助與合作
| currentState=
| currentState=
* [http://ev.kde.org/supporting-members.php Supporters of KDE] contribute sponsorship money to 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
| altTools= 無
}}
}}

Latest revision as of 13:31, 23 June 2013

Template:I18n/Language Navigation Bar (zh TW)

此網頁的目的是總結 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 作出 KDE 中使用的類別和方法的索引。他可以找到如何使用類別的範例,並且在重構或更新 API 時,可以找到程式裡所有使用的類別。

審查

Template:SEFBox (zh TW)

通常 KDE 並不對單個補丁(patch)提供正規審查策略。有些補丁在提交到 SVN 之前就在相關的郵件列表審查過了。這個項目是特別針對一個大補丁或是新開發者的補丁。

作為官方政策 kdereview 用於審查進入 KDE trunk 前的新應用程式和 kdelibs 的新類別。該系統的缺點是並非所有審查報告,他們都審查新的內容。它可能是審查使用的檢查清單,例如:

  • 所有新加類別都有提供文件 [x]
  • 正確合理使用私有類別和 d-pointers [x]
  • 通過所有 Krazy 檢查 [ ]
  • 沒有明顯的安全問題 [ ]
  • 設計良好、易維護 [ ]
  • 等等...

這些議題在這裡有所討論,但尚未精煉成 techbase 頁面。

Template:SEFBox (zh TW)

許多專案使用提交過濾器來發送所有提交給相關郵件列表。

Template:SEFBox (zh TW)

KDE 沒有正式的設計審查流程。一些設計審查就是 kdereview 流程的一部分。將來也許要把它正規化或鼓勵有一些設計文件。

文件

Template:SEFBox (zh TW)

techbase.kde.org 是個 MediaWiki 網站 ,用於收集技術任務如教學、時間表和專案資訊。

Template:SEFBox (zh TW)

KDE API 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。

可以從 KDE 原始碼建立 man pagesqthelp 文件

Template:SEFBox (zh TW)

使用者文件是從模塊 doc/ 目錄產生的,在 http://docs.kde.org 上也有。

meinproc 是一個 KDE 工具(Stephen Kulow 所寫,它使用 libxslt 轉變 docbook 成(bzip壓縮)html。在執行 kio_help 時打開 bzip 壓縮過的 html 並在 khelpcenter 中顯示給使用者。

http://userbase.kde.org 的目的是作為網絡上使用者文件的主要來源。之後可能會打包內容,供離線使用。

測試和品質

Template:SEFBox (zh TW)

KDE 目前使用 Bugzilla 3.0 管理 bug 追踪。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)

歡迎加入更多檢查到 Krazy。詳見 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)

可以有一些統計指標,譬如千行錯誤率、缺陷修正率等。

Template:SEFBox (zh TW)

可在未來提供教學幫助開發人員最佳化他們的程式碼。

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

市場和期望

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

發布

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

目前使用 techbase 討論功能計劃,但也許還有更好的替代品。

Template:SEFBox (zh TW)

佈景主題和翻譯

Template:SEFBox (zh TW)

可以用 http://kde-look.org 貢獻美工作品(artwork)。

可能有必要建立如何創造 KDE 美工的教學。

Template:SEFBox (zh TW)

法律與支援

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)

Template:SEFBox (zh TW)