RFC-5:PostGIS 核心贡献者指南
此 RFC 应仅由 PostGIS PSC 成员更改。在更改被视为最终之前,所有 PSC 成员必须同意更改条款,但措辞更改和不更改指南条款的格式除外。
将源代码树访问权限正式化,并为主要源代码提交者和补丁提交者指定一些指南。
只有经过 PostGIS 项目指导委员会批准,才会向贡献者提供对我们的主仓库 (https://git.osgeo.org/gitea/postgis/postgis.git) 的源代码树访问权限。应向 PSC 提交一份针对新贡献者的提案,并按照正常程序进行投票。对于这些投票,不必编写 RFC 文档,向 postgis-dev 提交提案就足够了。经批准后,获准的贡献者将获得对 PostGIS 源代码仓库的写访问权限,并且还会在 核心贡献者现身一节中添加到文档中。
写访问权限的移除应通过相同流程进行处理。
贡献者应向委员会展示对 PostGIS 的承诺以及对 PostGIS 源代码和流程的了解,通常通过报告错误、提交补丁和/或积极参与 PostGIS 邮件列表来展示。
贡献者还应做好准备,支持贡献者提交到 PostGIS 源代码树的任何新功能或未来版本的更改,或找到一个可以委派责任的人,以防贡献者无法再支持其负责的代码部分。
所有核心贡献者还应成为 postgis-dev 邮件列表的成员,以便他们能够及时了解政策、技术发展和版本准备情况。
新的核心贡献者有责任阅读并理解本文件。
- C 代码应尽最大可能遵循我们的指定 样式指南
- 为了实现指南标准,我们已实施使用 editorconfig。我们的版本 2.4 的 repo 现在包含一个 .editorconfig 文件,由配置了 editorconfig 支持的编辑器遵守。
- 我们要求所有开发人员使用支持 editorconfig 的编辑器。许多编辑器都支持它或将其作为插件。
- GIT 中的所有源代码应采用 Unix 文本格式,而不是 DOS 文本模式,但 .bat 文件除外。
- 每个新/更改的函数都应按照我们的 文档指南 记录在官方文档中。
项目指导委员会的一名成员将被指定为 Repo 管理员。该人员将负责向人员授予写权限、更新鸣谢和其他与 repo 相关的管理工作。
Paul Ramsey 目前被指定为 Repo 管理员。
以下内容被认为是 PostGIS 项目的良好源代码提交和跟踪实践。
- 对提交日志条目使用有意义的描述。设置 git 日志格式,使其具有简洁的一行描述,在空行后可选择添加详细描述。将行数控制在 70 列以内。在详细描述中包含 trac 工单引用。工单引用将被发送至 trac,以便在提交日志中找到“关闭 #xxx”时关闭工单,或仅在找到“引用 #xxx”时生成评论。最好将对拉取请求的引用编码为完整的链接。
- 我们允许通过补丁(在 trac 上或通过邮件列表)或来自我们的主 git 镜像或 CodeMirrors git 镜像 的拉取请求来提交内容。如果您收到社区人员提供的补丁或拉取请求,请务必在提交日志(
git commit --author "Name Surname <email>"
)和 NEWS 文件中保留他们的姓名。请勿在 CodeMirrors git 镜像 上使用MERGE
按钮,因为镜像会被覆盖,合并的提交会被丢弃;相反,请手动合并到官方仓库。 - 我们使用 https://trac.osgeo.org/postgis 进行规划,因此请确保待处理的更改在此处有工单,以便在发布版本时不会被忽略。如果您忘记在提交日志中添加 trac 工单引用,请编辑 trac 工单并添加注释,例如“已在 master 中修复 ..git 哈希和 branches/3.0
”。“哈希/git”使 Trac 能够从工单创建到变更集的超链接。 - 确保在 master 分支中更新新功能/重大更改的 NEWS 文件,并在所有稳定分支中更新 bug 修复的 NEWS 文件。
- 未经 PSC 或发行经理许可,切勿将新功能提交到稳定分支。通常,只有修复应该提交到稳定分支。
- 新功能进入 master 分支。
- 在预发布代码冻结期间,只有 bug 修复才能提交到 master 分支,且未经 PSC 或发行经理许可。
- 对 master 分支的重大更改,尤其是破坏向后兼容性的更改,应在进行更改之前在 postgis-dev 列表中进行讨论,并且较大的更改需要 PSC 批准的 RFC。
- 通常情况下,请勿在官方仓库中创建新分支。此规则的例外情况是,当您希望所有 CI 机器人在将更改推送到目标分支之前对其进行测试时,在这种情况下,请使用
test/
字符串作为分支前缀。 - 在提交新功能或对现有源代码进行重大更改时,提交者应采取合理措施来确保源代码继续在最常用的平台(当前为 Linux、FreeBSD、Mac 和 Windows)上构建和工作,方法是直接在这些平台上进行测试、运行 CI 测试或获得在这些平台上工作的其他开发人员的帮助。如果添加了新文件或库依赖项,则应保持 configure.in、Makefile.in 和相关文档的最新状态。
- 每次提交后,请验证此页面上的所有构建机器人是否正常 - https://trac.osgeo.org/postgis/,如果它们的不正常是由您的提交造成的,请在进行任何其他更改之前解决该问题。
所有核心贡献者的列表列在手册中文件 doc/introduction.xml 中的“当前核心贡献者”部分。这将由 PSC 负责保持最新状态
- 全名:用户的实际姓名。
- 简要说明责任领域。
这将由文档负责人(当前为 Regina Obe)负责管理。所有稳定的非 EOL 文档都应列出核心贡献者的此信息。
PostGIS 项目在其保护伞下有 3 个其他子项目。这些项目可能会受到核心 PostGIS 项目更改的影响,并拥有自己的开发者社区。
当前列表如下
- Docker PostGIS - (https://github.com/postgis/docker-postgis) 社区管理的 PostGIS docker 构建。
- PostGIS Java - ( https://github.com/postgis/postgis-java ) PostGIS 的 Java 绑定
- PostGIS Workshop (https://github.com/postgis/postgis-workshops) - PostGIS 的研讨会材料
PostGIS 代码库的某些部分依赖于其他上游项目,或其他项目严重依赖 PostGIS 中的功能。这些领域的更改应首先进入这些上游项目,然后应用于 PostGIS。如果对 PostGIS 进行重大更改,则应在 PostGIS 发布之前对所述项目进行回归测试,以确保最新版本仍可与 PostGIS 的最新 RTM 版本配合使用。
当前这些领域的列表是
- postgresql ( https://postgresql.ac.cn)
- geos ( https://libgeos.org)
- proj ( https://proj.org)
- gdal ( https://gdal.org)
- sfcgal (https://sfcgal.org)
PostGIS 主要版本可能影响的 GIS FOSS 套件
- mapserver (https://mapserver.org)
- geoserver (https://geoserver.org)
- openjump (http://openjump.org)
- qgis (https://qgis.org)
- gvSig (https://www.gvsig.org)
- pgRouting (https://www.pgrouting.org/)
- mobilitydb (https://mobilitydb.com/)
- pgpointcloud (https://github.com/pgpointcloud)
- osm2pgsql + 其他 openstreetmap 组件(mapnik 等)(https://www.openstreetmap.org/)
核心贡献者是前线守门人,负责让代码库远离不当贡献的代码。对于 PostGIS 用户、开发者和 OSGeo 基金会而言,避免在未明确按照项目许可证进行许可的情况下向项目贡献任何代码非常重要。
一般来说,关键问题在于那些提供代码以纳入存储库的人员理解该代码将根据原始 GPL 许可证发布,并且提供代码的人员有权贡献该代码。接受并提交代码的核心贡献者应验证贡献者的理解,除非提交者非常确信贡献者理解该许可证(例如频繁的贡献者)。
如果该贡献是由雇主(在工作时间、作为工作项目的一部分等)开发的,那么雇主的适当代表理解该代码将根据 GPL 许可证做出贡献非常重要。该安排应与授权的督导/经理等协商清楚。
该代码应由贡献者开发,或者该代码应来自可以合法贡献的来源,例如公共领域或具有兼容许可证的开源项目。
所有不寻常的情况都需要讨论和/或记录。
核心贡献者应遵守以下准则,并且可能对不当贡献代码到源存储库承担个人法律责任
- 确保贡献者(以及可能的雇主)了解贡献条款。
- 来自贡献者以外的来源的代码(例如从另一个项目改编)应明确标明原始来源、版权所有者、许可条款等。此信息可以放在文件头中,但如果与正常的项目许可证不完全匹配,也应添加到项目许可证文件中。
- 现有的版权头和许可证文本绝不应从文件中删除。如果版权所有者希望放弃版权,他们必须在删除版权消息之前以书面形式向 OSGeo 基金会提出申请。如果许可条款发生更改,则必须征得版权所有者的同意(以电子邮件形式书写即可)。
- 需要注明要求提供信用或向用户披露的许可证的代码应添加到 LICENSE.TXT 中。
- 当向文件添加实质性贡献(例如实质性补丁)时,应将作者/贡献者添加到该文件的版权持有者列表中。
- 如果对于变更是否适合添加到代码库存在不确定性,请向项目指导委员会或基金会法律顾问寻求更多信息。
- 应将新贡献者和公司贡献者添加到 PostGIS 手册最新版本的 doc/introduction.xml 中的鸣谢部分。
- 当添加新增强功能或进行重大更改时,文件负责人有责任确保在方便时尽快在相关分支/NEWS 中记录这些更改。该备注应包括 trac #(除非是具有许多工单的主要功能)和功能/更改的贡献者。
只要现有提交者审查提交者指南并同意遵守指南,他们将被视为授权的 PostGIS 提交者。管理员将负责与每个人核对。当前提交者按字母顺序列出,其中 (P) 表示当前项目指导委员会成员 **TODO:这可能是引导,但不是当前开发人员列表,不确定我们是否需要引导**
- Jorge Arévalo
- Nicklas Avén
- Mark Cave-Ayland (P)
- Olivier Courtin
- Chris Hodgson (P)
- Mark Leslie
- Mateusz Loskot
- Kevin Neufeld
- Regina Obe (P) 文档负责人
- Bborie Park (P)
- Pierre Racine
- Paul Ramsey (P) SVN 管理员
- Sandro Santilli (P)
- David Zwarg