更新 glean_parser¶
项目 FOG 使用 glean_parser
从指标定义生成代码。它依赖于 pypi.org 上的 glean-parser
要更新树内的 glean-parser,请更改 third_party/python/pyproject.toml
中的版本,然后运行
./mach vendor python
我们目前将 glean-parser 的版本固定到 sdk_generator.sh 中的版本,否则我们可以使用一些 ./mach vendor python 上更有趣的开关。
注意
重要:glean_parser 及其所有依赖项必须支持 Python 3.5,此处有相关讨论。这是 mach 支持的最低版本,并且安装在 CI 镜像上以运行测试。Python 安装清单中声明的版本范围强制执行此要求。
Python 依赖项的版本不匹配¶
处理版本不匹配的逻辑与 Rust crate 的非常相似。有关详细信息,请参阅 更新 Glean SDK。但是,更新 Python 包还需要考虑 Python 3.5(以及 Python 2,仍然)的兼容性。
保持版本同步¶
Glean SDK 和 glean_parser
目前作为单独的项目发布。但是,每个 Glean SDK 版本都需要特定的 glean_parser
版本。更新其中一个或另一个时,请确保版本保持兼容。您可以在 Glean SDK 源代码树中找到当前使用的 glean_parser
版本,例如在 sdk_generator.sh 中。
使用本地 glean_parser
开发版本¶
要在 mozilla-central 中测试新的 glean_parser
,请按照以下步骤操作
从用户范围的虚拟环境中删除
glean_parser
。这可以在类似~/.mozbuild/srcdirs/gecko-f5e3b9c6ded5/_virtualenvs/mach/lib/python3.10/site-packages/glean_parser
的路径中找到。请注意,gecko-f5e3b9c6ded5
部分根据您的本地检出而有所不同。删除所有提及glean_parser
的目录和文件从构建虚拟环境中删除
glean_parser
。这可以在$MOZ_OBJDIR/_virtualenvs/common/lib/python3.6/site-packages/glean_parser
中找到。请注意,$MOZ_OBJDIR
依赖于您的本地 mozconfig 配置。删除所有提及glean_parser
的目录和文件将本地
glean_parser
检出复制到third_party/python/glean_parser
中。例如:cp ~/code/glean_parser $GECKO/third_party/python/glean_parser
。
您现在应该能够构建 mozilla-central
,它将使用修改后的 glean_parser
。您可以在 $GECKO/third_party/python/glean_parser
中进行进一步的编辑。