Google Summer of Code 2020 已经完成。欢呼!这篇文章讨论了从 2020 年 6 月 1 日到 8 月 24 日的三个月编码期间,在 NumFOCUS
组织旗下的 matplotlib
组织中,Baseline Images Problem
项目的进展情况。
项目详情:#
该项目旨在解决添加或修改需要基线图像的测试的困难。基线图像存在问题,因为:
- 基线图像会导致仓库大小迅速增加。
- 基线图像迫使 matplotlib 贡献者将 FreeType 固定在某个较旧的版本,因为 FreeType 的几乎每一次发布都会导致微小的光栅化更改,这将需要重新生成所有基线图像(并因此导致仓库大小进一步增长)。
因此,我们的想法是不将基线图像存储在仓库中,而是从现有的测试中创建它们。
创建 matplotlib_baseline_images 包#
我们创建了 matplotlib_baseline_images
包。该包位于子轮子目录中,以便将来需要时可以将更多包添加到同一目录中。matplotlib_baseline_images
包包含 matplotlib
和 mpl_toolkits
的基线图像。可以使用 python3 -mpip install matplotlib_baseline_images
安装该包。
创建 matplotlib 基线图像生成标志#
在过去的几个月里,我们成功地为 matplotlib
和 mpl_toolkits
创建了 generate_missing
命令行标志,用于基线图像生成。它最初生成 matplotlib
和 mpl_toolkits
的基线图像。现在,我们也修改了现有流程,以生成任何丢失的基线图像,这些图像将在执行 git pull
或 git checkout -b feature_branch
时从 master
分支中获取。
现在,在安装 matplotlib 时生成图像,以及生成丢失的基线图像,可以使用 python3 -pytest lib/matplotlib matplotlib_baseline_image_generation
(针对 lib/matplotlib
文件夹)和 python3 -pytest lib/mpl_toolkits matplotlib_baseline_image_generation
(针对 lib/mpl_toolkits
文件夹)。
文档#
我们编写了文档,解释了以下场景:
- 如何在全新安装 matplotlib 时生成基线图像?
- 如何在从 master 获取更改时生成丢失的基线图像?
- 如何安装
matplotlib_baseline_images_package
以供开发人员用于测试? - 如何故意更改图像?
完成的工作链接#
导师#
- Thomas A Caswell
- Hannah
- Antony Lee
我很高兴成为这个很棒社区的一部分。这个项目非常有趣且具有挑战性!
感谢 Thomas、Antony 和 Hannah 帮助我完成了这个项目。