Rebuild stale `uv` envs after flake updates
`uv sync` accepts an existing same-minor Python even when its Nix store path belongs to an older closure. That can leave a glibc 2.40 interpreter loading Qt built against glibc 2.42. - derive the Python package once from `cpython` - clear `py313` when its interpreter target differs from the flake - ignore inherited `VIRTUAL_ENV` before syncing (this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))flake_update
parent
3da8900f68
commit
ceb806c136
18
flake.nix
18
flake.nix
|
|
@ -29,6 +29,7 @@
|
||||||
# XXX NOTE XXX, for now we overlay specific pkgs via
|
# XXX NOTE XXX, for now we overlay specific pkgs via
|
||||||
# a major-version-pinned-`cpython`
|
# a major-version-pinned-`cpython`
|
||||||
cpython = "python313";
|
cpython = "python313";
|
||||||
|
python = pkgs.${cpython};
|
||||||
pypkgs = pkgs."${cpython}Packages";
|
pypkgs = pkgs."${cpython}Packages";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -47,7 +48,7 @@
|
||||||
qt6.qtbase
|
qt6.qtbase
|
||||||
|
|
||||||
uv
|
uv
|
||||||
python313 # ?TODO^ how to set from `cpython` above?
|
python
|
||||||
pypkgs.pyqt6
|
pypkgs.pyqt6
|
||||||
pypkgs.pyqt6-sip
|
pypkgs.pyqt6-sip
|
||||||
pypkgs.qtpy
|
pypkgs.qtpy
|
||||||
|
|
@ -88,8 +89,23 @@
|
||||||
export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell"
|
export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell"
|
||||||
|
|
||||||
# ------ uv ------
|
# ------ uv ------
|
||||||
|
# ignore any venv inherited from an outer checkout
|
||||||
|
unset VIRTUAL_ENV
|
||||||
# - always use the ./py313/ venv-subdir
|
# - always use the ./py313/ venv-subdir
|
||||||
export UV_PROJECT_ENVIRONMENT="py313"
|
export UV_PROJECT_ENVIRONMENT="py313"
|
||||||
|
|
||||||
|
# Rebuild after a flake update changes the Nix Python closure.
|
||||||
|
venv_python="$UV_PROJECT_ENVIRONMENT/bin/python"
|
||||||
|
nix_python="$(readlink -f "${python}/bin/python3")"
|
||||||
|
if test -e "$venv_python" \
|
||||||
|
&& test "$(readlink -f "$venv_python")" != "$nix_python"
|
||||||
|
then
|
||||||
|
uv venv \
|
||||||
|
--clear \
|
||||||
|
--python "$nix_python" \
|
||||||
|
"$UV_PROJECT_ENVIRONMENT"
|
||||||
|
fi
|
||||||
|
|
||||||
# sync project-env with all extras
|
# sync project-env with all extras
|
||||||
uv sync --dev --all-extras --no-group lint
|
uv sync --dev --all-extras --no-group lint
|
||||||
source "$UV_PROJECT_ENVIRONMENT/bin/activate"
|
source "$UV_PROJECT_ENVIRONMENT/bin/activate"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue