wikiq produces datasets that get analyzed for years, and reproducing a
run means reproducing the dependency versions that produced it. Without
a lockfile in the repository there is no record of what a given output
was actually generated with, and the loose lower bounds in pyproject.toml
will resolve differently over time.
The lockfile pins all 72 packages in the resolution, including the
transitive ones from the mediawiki-utilities stack that are old enough to
be worth pinning explicitly.
This does not constrain anyone installing with pip, which ignores the
lockfile; it records what `uv sync` resolves so that a run can be
reproduced deliberately.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>