We have a number of Python scripts that are used to generate different parts of the documentation. The dependencies for these scripts is specified in a doc-requirements.txt file and also inline in the scripts themselves in a format that uv can use. In both cases though, the versions of dependencies is not specified. This is bad for reproducibility, particularly given that we routinely build old versions of docs. At some point, some dependency will introduce breaking changes and we will have to backport a fix to all the old versions of the docs, which will be annoying.
Going forward, let's pin the version of Python dependencies. My suggestion is that we add a pyproject.toml file with uv in non-package mode, with dependencies specified there instead and with a uv.lock file.
We have a number of Python scripts that are used to generate different parts of the documentation. The dependencies for these scripts is specified in a
doc-requirements.txtfile and also inline in the scripts themselves in a format thatuvcan use. In both cases though, the versions of dependencies is not specified. This is bad for reproducibility, particularly given that we routinely build old versions of docs. At some point, some dependency will introduce breaking changes and we will have to backport a fix to all the old versions of the docs, which will be annoying.Going forward, let's pin the version of Python dependencies. My suggestion is that we add a
pyproject.tomlfile withuvin non-package mode, with dependencies specified there instead and with auv.lockfile.