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

From KDE TechBase
No edit summary
No edit summary
Line 57: Line 57:
== 審查 ==
== 審查 ==
{{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
As an official policy kdereview is used to review new applications and
Line 90: Line 87:


{{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}} mailing list records all commits to KDE svn.
Line 103: Line 100:
}}
}}


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。
}}
}}


Line 131: Line 128:
* {{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]網站 ,用於收集技術任務如教學、時間表和專案資訊。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.




Line 141: Line 138:
| 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 文件]




Line 279: Line 276:


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Accessibility and Usability
| name=易用性和可用性
| currentState=
| currentState=
* http://usability.kde.org/
* http://usability.kde.org/
Line 294: Line 291:


{{SEFBox (zh TW)
{{SEFBox (zh TW)
| name=Research
| name=研究
| currentState=
| currentState=
* http://research.kde.org
* http://research.kde.org
Line 306: Line 303:
}}
}}


== 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.
* Requirements come from user feedback on http://bugs.kde.org and from commercial interests.
Line 320: Line 317:


{{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.
* The {{KDEML|kde-promo|KDE marketing team}} manage marketing and promotion from official kde sources.
Line 339: Line 336:


{{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 356: Line 353:


{{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://dot.kde.org News announcements]
* [http://planetkde.org 部落格] to some extent (mainly early adopting users).
Users communicate with each other and developers through
* [http://forum.kde.org 論壇] to some extent where the developer chooses to.
* [http://forum.kde.org Forums]
* [http://dot.kde.org 新聞公告]
* {{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.
* Add your blog to planet kde if you contribute to KDE in some way, including development, testing, advocacy, translation, documentation etc.
Line 380: Line 381:


{{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}}
Line 393: Line 394:


{{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}} - 打包者的郵件列表。包括安全性發布的資訊。
}}
}}


Line 422: Line 423:
| 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]

Revision as of 03:22, 1 October 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)

通常 KDE 並不對單個補丁(patch)提供正規審查策略。有些補丁在提交到 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,

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

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


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 是個MediaWiki網站 ,用於收集技術任務如教學、時間表和專案資訊。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 文件是每日生成並放在 http://api.kde.org 。它也可以使用 IDE 來生成相同的本地文件。

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


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)

市場和期望

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)

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)