MapGuide 代碼的修改可以分為兩大類:功能增強 (Ehancement) 和缺陷修正 (Defect) , MapGuide 使用 Tickets 來管理和跟蹤這些修改,訪問 http://trac.osgeo.org/mapguide/report 可以瀏覽和查詢活動的和已經(jīng)關(guān)閉的 Tickets ,對于功能增強 MapGuide 還使用了 RFC 進(jìn)行管理。需要注意的是無論創(chuàng)建 Tickets 還是 RFC ,都需要有一個 OSGeo 的帳戶,使用 OSGeo 帳戶登錄后才可以創(chuàng)建 Tickets 和 RFC ,訪問 https://www.osgeo.org/cgi-bin/ldap_create_user.py ? 可以注冊一個 OSGeo 的用戶。
1) ?? 缺陷修正
如果你在使用 MapGuide 的過程中發(fā)現(xiàn)了一個 Bug ,那么可以考慮創(chuàng)建一個 Ticket 。在創(chuàng)建 Ticket 之前,最好訪問 http://trac.osgeo.org/mapguide/search 查找是否已經(jīng)有其他人提交過類似的 Ticket ,或者給 mapguide-users 郵件列表發(fā) email 問詢是否見到過類似問題。在為一個 Bug 創(chuàng)建 Ticket 之時,需要提供一個完整的、可以重現(xiàn) Bug 的步驟,如果可能的話最好提供一段代碼用于重現(xiàn) Bug ,最后填寫 圖 18 ?3 所示的 Ticket 屬性。其中, Priority 代表 Bug 的優(yōu)先級, Component 代表 Bug 所屬的功能組件, Severity 代表 Bug 的嚴(yán)重性, Milestone 代表修正了 Bug 的版本, Version 代表可以重現(xiàn) Bug 的版本。最重要的是要填寫正確的 Version 值,如果不清楚需要為其他屬性填寫什么樣的值,那么可以將其他值保留為空,在其他人檢閱和分配這個 Bug 時會為這些屬性填寫合適的值。
?
?
圖? 18 ? 3 ?Ticket的屬性
2) ?? 功能增強
如果要改進(jìn) MapGuide 現(xiàn)有的功能,或者添加一些新的功能,那么需要創(chuàng)建一個 RFC 。訪問 http://trac.osgeo.org/mapguide/wiki/MapGuideRfcs 可以瀏覽現(xiàn)有的 RFC ,通過這些 RFC 我們可以了解 MapGuide 的每個版本添加了哪些功能,甚至下一個版本會添加哪些新的功能。 RFC 頁面使用 Wiki 的方式進(jìn)行維護(hù),使用如下的步驟可以創(chuàng)建一個新的 RFC 。
1) ?? 點擊“ login ”登錄。
2) ?? 點擊“ Edit this page ”編輯 RFC 列表頁面。
3) ?? 加入如下 Wiki 格式的字符串。其中,“ XX ”代表 RFC 的序號,“ V.V ”代表實現(xiàn) RFC 的 MapGuide 版本號。
||[wiki:MapGuideRfcXX MapGuide RFC XX - xxxxxxxxxxxx]||draft||V.V||
4) ?? 點擊“ Submit changes ”按鈕提交修改。
5) ?? 點擊超鏈接“ MapGuide RFC XX ”會出現(xiàn)一個新的頁面用于創(chuàng)建新的 RFC 。
6) ?? 在按照 RFC 模板的格式創(chuàng)建完成新的 RFC 之后,發(fā) email 給 MapGuide 郵件列表 mapguide-internals@lists.osgeo.org 要求 MapGuide 開源社區(qū)的人們評閱此 RFC 。
7) ?? 在 RFC 發(fā)布一周后,并且解答了 MapGuide 開源社區(qū)人們的所有問題之后,可以要求 PSC 的成員對此 RFC 投票。如果由多于兩個 PSC 成員同意此 RFC ,沒有任何 PSC 成員反對此 RFC ,那么此 RFC 就投票通過可以實現(xiàn)了。
8) ?? 創(chuàng)建一個類型為“ enhancement ”的 Ticket 用于跟蹤這個修改。
在修正了一個缺陷或?qū)崿F(xiàn)了一個 RFC 之后,需要將相應(yīng)的代碼修改創(chuàng)建為一個 SVN Patch 文件,將其上傳到相應(yīng)的 Ticket 上便于開源社區(qū)的人們評閱此修改,在評閱完成之后就可以提交代碼了。如果你不是項目開發(fā) 人員,沒有提交權(quán)限, 項目開發(fā) 人員會幫助你提交代碼的。