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提交者指定指导原则。有关在地图服务器中使用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/main/COMMITERS中管理:
userid:将出现在此人的git提交日志中的ID。
全名:用户的实际名称。
电子邮件地址:可以联系提交者的当前电子邮件地址。它可能会以正常的方式改变,使自动收割更加困难。
职责范围的简要说明。
Git管理员¶
项目指导委员会的一名成员将被指定为Git管理员。该人员将负责向他人授予Git Commit访问权限,更新 COMMITERS 文件和其他与Git相关的管理。
托马斯·邦福特、史蒂夫·莱姆和丹尼尔·莫里塞特将担任git管理员。
Git提交实践¶
以下是MapServer项目的良好Git提交实践:
对Git提交日志项使用有意义的描述。提交消息应该遵循git提交约定,即简短的一行摘要,最后是一个空白行和一个提供更多细节的段落。
尽可能添加一个类似于“(1232)”的Github问题引用作为提交消息的一部分。
包括一个条目 HISTORY.txt 对于在主分支中实现的任何新功能或向后不兼容的怪癖。确保将其放在正确的版本标题下,并相应地包括发行号。对稳定分支机构的承诺应 not 包括更新以 HISTORY.txt ,而是包含一个描述性足够强的提交消息。
绝不可能 将新功能提交给一个稳定的分支;只有关键的修复。新功能只能走在主要开发主体上。这也适用于预发布的稳定分支,一旦它们从Main分支出来。
在进行重大更改之前,请在-dev列表中进行讨论。较大的变更需要由PSC批准的RFC。
确保Git中的所有源代码都是Unix文本格式,而不是DOS文本模式。
确保所有提交不会破坏任何现有的测试(或者如果需要,用预期的结果更新测试套件)。
确保获得新功能 msautotest 添加了测试,在正常和异常情况下都可以使用该功能。
在修复细微的或影响不大的错误时,请添加相关的 msautotest 以确保从长远来看,修复措施仍然有效。
确保提交的代码符合https://github.com/MapServer/MapServer/wiki/CodingStyle地图服务器的编码约定
在提交新功能或对现有源代码进行重大更改时,提交者应采取合理措施,以确保源代码继续构建并在最受支持的平台(当前为Linux和Windows)上工作,方法是直接在这些平台上进行测试,或者向在这些平台上工作的其他开发人员寻求帮助。如果添加了新文件或库依赖项,则 configure.in , Makefile.in , Makefile.vc 和相关文件应保持最新。
考虑到MapServer的持续集成设置,使用Github Pull请求而不是直接提交到分支作为在包含之前测试提议更改的实际方法。
法律¶
提交者是一线的把关者,以确保代码库中没有不正确的代码。MPESServer用户、开发人员和OSGEO基金会避免在项目许可下明确地颁发任何代码,这对项目是非常重要的。
一般来说,关键问题是那些提供要包含在存储库中的代码的人理解代码将根据MapServer许可证发布,并且提供代码的人有权贡献代码。对于提交者自己来说,对许可证的理解是很清楚的。对于其他贡献者,提交者应该验证理解,除非提交者非常满意贡献者理解许可证(例如频繁贡献者)。
如果捐款是代表雇主(在工作时间、作为工作项目的一部分等)开发的,那么雇主的适当代表必须理解,代码将根据MapServer许可证提供。该安排应与授权主管/经理等进行澄清。
代码应该由贡献者开发,或者代码应该来自可以正确贡献的源代码,例如来自公共域,或者来自兼容许可证下的开源项目。
所有异常情况都需要讨论和/或记录。
提交者应遵守以下准则,并可能对向源存储库不适当地提供代码承担个人法律责任:
确保出资人(可能是雇主)了解出资条款。
来自贡献者以外的来源(例如改编自另一个项目)的代码应该清楚地标明原始源、版权所有者、许可条款等。此信息可以位于文件头中,但如果与常规项目许可不完全匹配,也应将其添加到项目许可文件中 (mapserver/LICENSE.txt )。
现有的版权标题和许可证文本不应从文件中删除。如果版权持有者希望放弃版权,他们必须在版权信息被删除之前以书面形式向基金会提交。如果许可条款发生变更,则必须由版权所有人同意(以电子邮件形式书写即可)。
当大量贡献被添加到一个文件中时(例如大量的请求),作者/贡献者应该被添加到该文件的版权所有者列表中。
如果不确定是否对代码库有所贡献,请从项目指导委员会或基金会法律顾问处寻求更多信息。
投票历史¶
TBD