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>
On klone the venv is created inside the repo with create_cdsc_venv, so
it otherwise shows up as untracked in every git status. Claude Code
keeps its per-project permission list in .claude/settings.local.json,
which is personal to whoever is running it, and writes it atomically via
sibling temp files, so the pattern covers those too. Only that file is
ignored, leaving room to commit a shared .claude/settings.json later.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This is optional, and doesn't impact existing users as preexisting
behavior when users specify an output directory is unchanged.
This makes tests not need to copy large files as part of their
execution, as they can ask files to be written to explicit
locations.
Signed-off-by: Will Beason <willbeason@gmail.com>