MapGuide代码的修改可以分为两大类:功能增强(Ehancement)和缺陷修正(Defect),MapGuide使用Tickets来管理和跟踪这些修改,访问http://trac.osgeo.org/mapguide/report可以浏览和查询活动的和已经关闭的Tickets,对于功能增强MapGuide还使用了RFC进行管理。需要注意的是无论创建Tickets还是RFC,都需要有一个OSGeo的帐户,使用OSGeo帐户登录后才可以创建Tickets和RFC,访问https://www.osgeo.org/cgi-bin/ldap_create_user.py 可以注册一个OSGeo的用户。
1) 缺陷修正
如果你在使用MapGuide的过程中发现了一个Bug,那么可以考虑创建一个Ticket。在创建Ticket之前,最好访问http://trac.osgeo.org/mapguide/search查找是否已经有其他人提交过类似的Ticket,或者给mapguide-users邮件列表发email问询是否见到过类似问题。在为一个Bug创建Ticket之时,需要提供一个完整的、可以重现Bug的步骤,如果可能的话最好提供一段代码用于重现Bug,最后填写图18‑3所示的Ticket属性。其中,Priority代表Bug的优先级,Component代表Bug所属的功能组件,Severity代表Bug的严重性,Milestone代表修正了Bug的版本,Version代表可以重现Bug的版本。最重要的是要填写正确的Version值,如果不清楚需要为其他属性填写什么样的值,那么可以将其他值保留为空,在其他人检阅和分配这个Bug时会为这些属性填写合适的值。
图 18‑3 Ticket的属性
2) 功能增强
如果要改进MapGuide现有的功能,或者添加一些新的功能,那么需要创建一个RFC。访问http://trac.osgeo.org/mapguide/wiki/MapGuideRfcs可以浏览现有的RFC,通过这些RFC我们可以了解MapGuide的每个版本添加了哪些功能,甚至下一个版本会添加哪些新的功能。RFC页面使用Wiki的方式进行维护,使用如下的步骤可以创建一个新的RFC。
1) 点击“login”登录。
2) 点击“Edit this page”编辑RFC列表页面。
3) 加入如下Wiki格式的字符串。其中,“XX”代表RFC的序号,“V.V”代表实现RFC的MapGuide版本号。
||[wiki:MapGuideRfcXX MapGuide RFC XX - xxxxxxxxxxxx]||draft||V.V||
4) 点击“Submit changes”按钮提交修改。
5) 点击超链接“MapGuide RFC XX”会出现一个新的页面用于创建新的RFC。
6) 在按照RFC模板的格式创建完成新的RFC之后,发email给MapGuide邮件列表mapguide-internals@lists.osgeo.org要求MapGuide开源社区的人们评阅此RFC。
7) 在RFC发布一周后,并且解答了MapGuide开源社区人们的所有问题之后,可以要求PSC的成员对此RFC投票。如果由多于两个PSC成员同意此RFC,没有任何PSC成员反对此RFC,那么此RFC就投票通过可以实现了。
8) 创建一个类型为“enhancement”的Ticket用于跟踪这个修改。
在修正了一个缺陷或实现了一个RFC之后,需要将相应的代码修改创建为一个SVN Patch文件,将其上传到相应的Ticket上便于开源社区的人们评阅此修改,在评阅完成之后就可以提交代码了。如果你不是项目开发人员,没有提交权限,项目开发人员会帮助你提交代码的。