RFC 71:迁移到GitHub

作者:

甚至鲁奥

联系方式:

even.rouault@spatialys.com

起动:

2018年3月

状态:

通过、实施

总结

建议GDAL源树和票证数据库从OSGeo托管的Subversion repository/Trac数据库移动到GitHub。完整的源代码历史记录将被保留。为了简化迁移,现有票据将保留在OSGeo-Trac中,并且不会迁移到GitHub。新的门票将在GitHub开张。

动机

  1. 人们认为,大多数对GDAL开发感兴趣的开发人员现在更习惯于git而不是Subversion,而使用Subversion作为主要的源代码管理使贡献的吸引力降低。

  2. 这个 https://github.com/OSGeo/gdal mirror自2012年就已经存在,随着时间的推移,它已经成为没有直接SVN访问权限(甚至是有SVN访问权限)的贡献者提交贡献的首选方式,特别是因为它与Travis CI和!使维护人员能够检查贡献是否引入了已知回归的AppVeyor+注释拉取请求的友好方式。然而手工移植的!对GDAL维护者来说,GitHub请求Trac有点痛苦。

  3. GitHub已经成为许多开源项目的实际托管平台。

迁移的详细信息

  1. 现有的GitHub git存储库将被推送到 https://github.com/OSGeo/gdal_svn_mirror_backup (一旦我们确信进一步的措施没有把事情搞砸,我们最终就撤掉了)

  2. 因为GitHub还使用语法“#1234”将提交消息链接到它的问题上,而Trac中也使用了这些问题,当前在跟踪链接时!指向Trac票证的GitHub,其结果是一个不存在或不相关的票证!GitHub发布/请求。所以当前的提交消息!GitHub镜像将由“git filter branch--msg filter'python rewrite.py”---all“命令替换”1234“为”https://trac.osgeo.org/gdal/ticket/1234“`”

  3. git“trunk”分支将被重命名为“master”,以遵循git的最佳实践

  4. 现有的“tag/x.y.z”分支将被适当的git标记替换。

  5. 此修改后的存储库将被强制推送到 https://github.com/OSGeo/gdal 这将导致失效现有的pull请求或存储库的fork,这些请求或fork必须重新定位到新的请求。从这一点上讲,应该避免“svn commit”,更改应该转到git存储库。

  6. 从源刷新网站的OSGeo服务器上的cron作业将被修改为pull from!GitHub而不是SVN。

  7. 将在Trac中删除票证创建权限。仍然可以修改或关闭现有的未结票。从那时起,如果关闭Trac票据,就必须手动引用github提交。

  8. GDAL GitHub存储库的设置将更改为允许提交票据。标签和里程碑将填充相关内容

需要采取进一步的行动,没有特别的顺序,欢迎其他GDAL开发人员/贡献者的帮助:

  • 大多数可见的Trac wiki文档都必须修改以指向GitHub

  • 如何发布将不得不修改。

  • 仍对该项目感兴趣的现有SVN提交者将不得不请求对GitHub repo的提交访问。

  • 需要OSGeo SAC的一些支持才能将GDAL SVN存储库转换为只读(一个补充选项是将其重命名为GDAL_historical,以便从旧存储库中提取的用户能够通过“干净地”输出脚本来清楚地了解迁移过程)

  • 关于我们打算如何使用git/GitHub特性的一些指导原则将不得不重写。

退出策略

GitHub是一个封闭平台。如果它将关闭或将开始askin支付不合理的费用,一些备份策略的票将是必要的。解决办法可能是:

本RFC未涵盖

  • 将Trac wiki内容迁移到GitHub wiki不在本RFC的范围内。以后可以做

投票历史

+1名来自HowardB、JukkaR、KurtS和Ever