2024年里斯本Perl工具链峰会
内容提要
去年在Perl Toolchain Summit(PTS)上,我留下了三个草稿拉取请求:一个关于Perl 5.37中引入的类声明,一个关于在docker上使用PAUSE,一个关于多因素身份验证。今年我应该优先处理哪个?我过去一直关注Web UI,因为其他人通常处理PAUSE后端,特别是索引器。但是今年,当我开始考虑我的计划时,Ricardo Signes和Matthew Horsfall已经表达了他们关于将PAUSE迁移到新服务器的计划。我不确定他们是否会使用我的docker内容,但我可以肯定我不需要去碰它。我还认为我们没有时间完成多因素身份验证,因为它需要改变PAUSE本身和上传客户端,并且Ricardo维护了最受欢迎的上传模块。新类检测的更改很简单,但这并不意味着结果也是可预测的。我决定首先调查02packages索引的变化。我需要找到一种从头开始重建索引以查看差异的方法。我编写了一个脚本从CPAN镜像中收集作者信息,并用虚拟数据填充PAUSE的用户相关表。我又写了一个脚本将我的分发注册到镜像中的本地PAUSE。如果我在较新的分发之后注册了较旧的分发,PAUSE会报错,所以我必须收集关于我的分发的所有信息,并按创建时间排序。现在看起来还好,但当我增加要注册的分发数量时,它很快开始卡住。PAUSE守护程序生成了太多的子索引器进程,并耗尽了我为虚拟机分配的所有内存。经过多次尝试,我使用了Parallel::Runner限制
关键要点
- 去年在Perl Toolchain Summit上留下了三个草稿拉取请求,分别涉及Perl 5.37的类声明、在docker上使用PAUSE和多因素身份验证。
- 今年优先处理的任务包括调查02packages索引的变化,决定先重建索引以查看差异。
- 编写脚本从CPAN镜像收集作者信息,并填充PAUSE的用户相关表,注册分发时需按创建时间排序。
- 在注册分发时遇到内存耗尽的问题,通过Parallel::Runner限制子进程数量解决。
- 比较生成的02packages索引与镜像中的索引,发现超过四千行差异,主要由于索引政策的历史变化。
- 在PTS的第一天讨论PAUSE迁移,处理了一些小的拉取请求,包括将Travis CI替换为GitHub Actions。
- 第二天添加了关于类检测的测试,并创建了新的08pumpking索引,讨论了多因素身份验证的草稿拉取请求。
- 第三天是部署日,迁移团队忙于工作,处理了一些小的拉取请求。
- 第四天尝试解决上传大文件到新服务器的问题,参加了关于未来PAUSE开发的讨论。
- 感谢组织此次活动的Breno Oliveira、Philippe Bruhat和Laurent Boivin,以及赞助商的支持。
延伸问答
在2024年里斯本Perl工具链峰会上,讨论了哪些主要议题?
主要议题包括PAUSE迁移、类检测的改进和多因素身份验证的草稿拉取请求。
作者在峰会上遇到了哪些技术挑战?
作者遇到的挑战包括内存耗尽问题和上传大文件到新服务器失败。
作者如何解决PAUSE注册时的内存耗尽问题?
作者通过使用Parallel::Runner限制子进程数量来解决内存耗尽问题。
在峰会上,作者对多因素身份验证的进展如何?
作者认为没有足够时间完成多因素身份验证的实现,因其需要改变PAUSE和上传客户端。
作者在峰会上提交了哪些草稿拉取请求?
作者提交了关于Perl 5.37类声明、在docker上使用PAUSE和多因素身份验证的草稿拉取请求。
峰会的第一天主要讨论了什么?
第一天主要讨论了PAUSE迁移和处理一些小的拉取请求,包括将Travis CI替换为GitHub Actions。