Both files are recompiled with --universal --generate-hashes, preserving every pinned version. Three things change. Hashes put pip into hash-checking mode, so a wheel whose sha256 is not listed is refused rather than installed. The offline Windows install previously took whatever file in the wheelhouse satisfied the version pin. --universal means one lockfile serves Linux (dev, Docker, CI) and the Windows wheelhouse. The Linux-only resolve had silently omitted colorama, a win32-only dependency of click; in hash-checking mode a missing entry is a hard error, so that omission would have broken every Windows install. requirements-dev.txt is now compiled with -c requirements.txt, pinning shared dependencies to the versions production runs. The two had been compiled at different times and drifted: CI tested against alembic 1.18.5 while sites installed 1.18.4. Hashes pin the version and prove the artifact is one upstream published. They do not pin WHICH artifact of that version is used, and they say nothing about extra files in the wheelhouse - bundle-lock.json covers both.
64 KiB
64 KiB