Updating glean_parser
Project FOG uses the glean_parser
to generate code from metric definitions.
It depends on glean-parser from pypi.org
To update the in-tree glean-parser change the version in third_party/python/pyproject.toml
,
then run
./mach vendor python
We presently pin our version of glean-parser to the version in sdk_generator.sh, otherwise we could use some of the more interesting switches on ./mach vendor python.
Note
Important: the glean_parser and all of its dependencies must support Python 3.5, as discussed here. This is the minimum version supported by mach and installed on the CI images for running tests. This is enforced by the version ranges declared in the Python installation manifest.
Version mismatch of the Python dependencies
The logic for handling version mismatches is very similar to the one for the Rust crates. See Updating the Glean SDK for details. However, updating Python packages also requires to think about Python 3.5 (and Python 2, still) compatibility.
Keeping versions in sync
The Glean SDK and glean_parser
are currently released as separate projects.
However each Glean SDK release requires a specific glean_parser
version.
When updating one or the other ensure versions stay compatible.
You can find the currently used glean_parser
version in the Glean SDK source tree, e.g. in sdk_generator.sh.
Using a local glean_parser
development version
To test out a new glean_parser
in mozilla-central follow these steps:
Remove
glean_parser
from the user-wide virtual environment. This can be found in a path like~/.mozbuild/srcdirs/gecko-f5e3b9c6ded5/_virtualenvs/mach/lib/python3.10/site-packages/glean_parser
Note that thegecko-f5e3b9c6ded5
part will be different depending on your local checkout. Remove all directories and files mentioningglean_parser
Remove
glean_parser
from the build virtual enviromment. This can be found in$MOZ_OBJDIR/_virtualenvs/common/lib/python3.6/site-packages/glean_parser
. Note that$MOZ_OBJDIR
depends on your local mozconfig configuration. Remove all directories and files mentioningglean_parser
Copy the local
glean_parser
checkout intothird_party/python/glean_parser
. E.g.cp ~/code/glean_parser $GECKO/third_party/python/glean_parser
.
You should now be able to build mozilla-central
and it will use the modified glean_parser
.
You can make further edits in $GECKO/third_party/python/glean_parser
.