Skip to content

Commit 0fe2242

Browse files
committed
build: pure devshell
1 parent 7a0b0b8 commit 0fe2242

File tree

1 file changed

+44
-17
lines changed

1 file changed

+44
-17
lines changed

flake.nix

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -79,29 +79,56 @@
7979
pkgs,
8080
system,
8181
python,
82+
pythonSet,
8283
...
8384
}: let
8485
check = self.checks.${system}.pre-commit-check;
8586
in {
86-
# note: impure, editable overlays in uv2nix are unstable
87-
default =
87+
pure = let
88+
editableOverlay =
89+
workspace.mkEditablePyprojectOverlay {
90+
root = "$REPO_ROOT";
91+
};
92+
93+
editablePythonSet =
94+
pythonSet.overrideScope (
95+
lib.composeManyExtensions [
96+
editableOverlay
97+
98+
(final: prev: {
99+
proselint =
100+
prev.proselint.overrideAttrs (old: {
101+
nativeBuildInputs =
102+
old.nativeBuildInputs
103+
++ final.resolveBuildSystem {
104+
editables = [];
105+
};
106+
});
107+
})
108+
]
109+
);
110+
111+
virtualenv = editablePythonSet.mkVirtualEnv "proselint-env" workspace.deps.all;
112+
in
88113
pkgs.mkShell {
89-
packages = check.enabledPackages ++ [python pkgs.uv];
90-
env =
91-
{
92-
UV_PYTHON_DOWNLOADS = "never";
93-
UV_PYTHON = python.interpreter;
94-
}
95-
// lib.optionalAttrs pkgs.stdenv.isLinux {
96-
LD_LIBRARY_PATH = lib.makeLibraryPath pkgs.pythonManylinuxPackages.manylinux1;
97-
};
98-
};
114+
packages = [
115+
virtualenv
116+
pkgs.uv
117+
];
99118

100-
shellHook =
101-
''
102-
unset PYTHONPATH
103-
''
104-
++ check.shellHook;
119+
env = {
120+
UV_NO_SYNC = "1";
121+
UV_PYTHON = python.interpreter;
122+
UV_PYTHON_DOWNLOADS = "never";
123+
};
124+
125+
shellHook =
126+
''
127+
unset PYTHONPATH
128+
export REPO_ROOT=$(git rev-parse --show-toplevel)
129+
''
130+
++ check.shellHook;
131+
};
105132
});
106133

107134
packages =

0 commit comments

Comments
 (0)