Pin the full dependency trees of the font/Fluent linter test requirements

The `requirements.txt` files of the two Python-based builds only listed
the top-level dependency, and thus not the full dependency tree, and
only limited it via a version range. This means that the actual versions
we use for the builds are determined at runtime, and can thus easily
change if a new version gets published. This causes the builds to not be
deterministic, and it's in contrast to the JavaScript-based builds where
`package-lock.json` pins the full dependency tree with fixed versions.

This commit changes the `requirements.txt` files to follow the same
approach as `package-lock.json` and thus pin the full dependency tree to
fixed versions. This ensures deterministic builds, improves consistency
and provides better protection against e.g. supply chain attacks by not
automatically pulling in new versions as they are published (but rather
make updating versions a conscious and verifiable/auditable action). To
simplify the update process, and make it repeatable, we document the
full one-line generation commands inline.
This commit is contained in:
Tim van der Meij 2026-07-12 16:27:31 +02:00
parent ebaa98b854
commit ae179be764
No known key found for this signature in database
GPG Key ID: 678B7927F701A65A
2 changed files with 10 additions and 2 deletions

View File

@ -1 +1,7 @@
moz-fluent-linter==0.4.*
# The requirements below can be regenerated with the following one-liner:
# `python3 -m venv venv; source venv/bin/activate; pip install -q moz-fluent-linter; pip freeze; deactivate; rm -rf venv`
fluent.syntax==0.19.0
moz-fluent-linter==0.4.10
PyYAML==6.0.3
six==1.17.0
typing_extensions==4.16.0

View File

@ -1 +1,3 @@
fonttools==4.*
# The requirements below can be regenerated with the following one-liner:
# `python3 -m venv venv; source venv/bin/activate; pip install -q fonttools; pip freeze; deactivate; rm -rf venv`
fonttools==4.63.0