MS RFC 7.2:MapServer Git推送管理¶
- 日期
2012/10/04
- 作者
弗兰克·温默丹、汤姆·克莱迪斯和托马斯·邦福特
- 联系方式
Pobox.com上可了解有关Warmerdam的更多信息
- 联系方式
hotmail.com上的tomkralidis
- 联系方式
gmail.com上的tbonport
- 最后编辑
2012/10/04
- 状态
草稿
注解
这个RFC废弃了 MS RFC 7.1:MapServer SVN提交管理 .
目的¶
规范Git推送访问,并为Git提交者指定指导原则。有关在MapServer中使用Git的更多信息,请访问https://github.com/mapserver/mapserver/wiki/workingwithGit。
选择Git推送访问¶
只有在MapServer项目指导委员会接受的情况下,才允许新开发人员访问Git Push。一个建议应该写给PSC的新委员,并正常投票。不需要为这些投票编写一个RFC文档;向MapServer Dev发送电子邮件就足够了。
移除Git提交访问权限应该由同一个进程处理。
新的提交者应该表现出对MapServer的承诺以及对MapServer源代码和流程的了解,以使委员会满意,通常通过报告问题、提交请求和/或积极参与各种MapServer论坛。
新提交者还应准备好支持他/她在未来版本中提交给MapServer源代码树的任何新特性或更改,或者如果他/她停止支持他/她负责的代码部分,则应找到负责这些特性或更改的人。
所有提交者也应该是mapserver dev邮件列表的成员,这样他们就可以随时了解策略、技术开发和发布准备。
提交者跟踪¶
所有项目提交者的列表将以https://github.com/mapserver/mapserver/blob/master/committers格式管理,格式如下:
userid:将出现在此人的git提交日志中的ID。
全名:用户的实际名称。
电子邮件地址:可以联系提交者的当前电子邮件地址。它可能会以正常的方式改变,使自动收割更加困难。
职责范围的简要说明。
Git管理员¶
项目指导委员会的一名成员将被指定为Git管理员。该人员将负责授予Git Commit对人员的访问权限,更新 COMMITERS
文件和其他与Git相关的管理。
托马斯·邦福特、史蒂夫·莱姆和丹尼尔·莫里塞特将担任git管理员。
Git提交实践¶
以下是MapServer项目的良好Git提交实践:
对Git提交日志项使用有意义的描述。提交消息应该遵循git提交约定,即简短的一行摘要,最后是一个空白行和一个提供更多细节的段落。
尽可能添加一个类似于“(1232)”的Github问题引用作为提交消息的一部分。
在中包含一个条目
HISTORY.txt
对于在主分支中实现的任何新特性或向后不兼容的怪癖。确保它放在正确的版本标题下,并相应地包括发行号。对稳定分支机构的承诺 not 包括更新到HISTORY.txt
而是包含一个足够描述性的提交消息。Never 将新功能提交到稳定的分支;只提交关键的修复。新功能只能进入主开发母版。这也适用于从master分支后的预释放稳定分支。
在进行重大更改之前,请在-dev列表中进行讨论。较大的变更需要由PSC批准的RFC。
确保Git中的所有源代码都是Unix文本格式,而不是DOS文本模式。
确保所有提交不会破坏任何现有的测试(或者如果需要,用预期的结果更新测试套件)。
确保获得新功能
msautotest
添加了测试,在正常和异常条件下运行功能。当修复细微或非细微影响的bug时,添加相关的
msautotest
以确保解决方案长期有效。根据https://github.com/mapserver/mapserver/wiki/codingstyle,确保提交的代码符合mapserver的编码约定。
提交新特性或对现有源代码进行重大更改时,提交者应采取合理措施,确保源代码继续在最常用的受支持平台(当前为Linux和Windows)上构建和工作,可以直接在这些平台上进行测试,也可以从其他正在工作的开发人员那里获得帮助。在那些平台上。如果添加了新文件或库依赖项,则
configure.in
,Makefile.in
,Makefile.vc
相关文件应保持最新。考虑到MapServer的持续集成设置,使用Github Pull请求而不是直接提交到分支作为在包含之前测试提议更改的实际方法。
法律¶
提交者是一线的把关者,以确保代码库中没有不正确的代码。MPESServer用户、开发人员和OSGEO基金会避免在项目许可下明确地颁发任何代码,这对项目是非常重要的。
一般来说,关键问题是那些提供要包含在存储库中的代码的人理解代码将根据MapServer许可证发布,并且提供代码的人有权贡献代码。对于提交者自己来说,对许可证的理解是很清楚的。对于其他贡献者,提交者应该验证理解,除非提交者非常满意贡献者理解许可证(例如频繁贡献者)。
如果捐款是代表雇主(在工作时间、作为工作项目的一部分等)开发的,那么雇主的适当代表必须理解,代码将根据MapServer许可证提供。该安排应与授权主管/经理等进行澄清。
代码应该由贡献者开发,或者代码应该来自可以正确贡献的源代码,例如来自公共域,或者来自兼容许可证下的开源项目。
所有异常情况都需要讨论和/或记录。
提交者应遵守以下准则,并可能对向源存储库不适当地提供代码承担个人法律责任:
确保出资人(可能是雇主)了解出资条款。
来自贡献者之外的源代码(例如改编自另一个项目)应该清楚地标记为原始源代码、版权所有者、许可条款等。此信息可以在文件头中,但如果与正常项目授权不完全匹配,也应将其添加到项目授权文件中。(
mapserver/LICENSE.txt
)现有的版权标题和许可证文本不应从文件中删除。如果版权持有者希望放弃版权,他们必须在版权信息被删除之前以书面形式向基金会提交。如果许可条款发生变更,则必须由版权所有人同意(以电子邮件形式书写即可)。
当大量贡献被添加到一个文件中时(例如大量的请求),作者/贡献者应该被添加到该文件的版权所有者列表中。
如果不确定是否对代码库有所贡献,请从项目指导委员会或基金会法律顾问处寻求更多信息。
投票历史¶
TBD