chore(flake): Add setuptools in order to build on a minimal Nix system (#741)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled

This commit is contained in:
Adrian Covaci
2025-01-17 21:52:50 +00:00
committed by GitHub
parent 054517595d
commit 0c727d64d2
+50 -38
View File
@@ -11,45 +11,57 @@
};
};
outputs = { self, nixpkgs, flake-utils, poetry2nix }:
flake-utils.lib.eachDefaultSystem (system:
outputs =
{
self,
nixpkgs,
flake-utils,
poetry2nix,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
p2n = (poetry2nix.lib.mkPoetry2Nix { inherit pkgs; });
in {
devShells.default = (p2n.mkPoetryEnv {
projectDir = self + "/backend";
# pyinstaller fails to compile so precompiled it is
overrides = p2n.overrides.withDefaults (final: prev: {
pyinstaller = prev.pyinstaller.override { preferWheel = true; };
pyright = null;
});
}).env.overrideAttrs (oldAttrs: {
shellHook = ''
PYTHONPATH=`which python`
FILE=.vscode/settings.json
if [ -f "$FILE" ]; then
jq --arg pythonpath "$PYTHONPATH" '.["python.defaultInterpreterPath"] = $pythonpath' $FILE > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"
else
echo "{\"python.defaultInterpreterPath\": \"$PYTHONPATH\"}" > "$FILE"
fi
'';
UV_USE_IO_URING = 0; # work around node#48444
buildInputs = with pkgs; [
nodejs_22
nodePackages.pnpm
poetry
jq
# fixes local pyright not being able to see the pythonpath properly.
(pkgs.writeShellScriptBin "pyright" ''
${pkgs.pyright}/bin/pyright --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-langserver" ''
${pkgs.pyright}/bin/pyright-langserver --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-python" ''
${pkgs.pyright}/bin/pyright-python --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-python-langserver" ''
${pkgs.pyright}/bin/pyright-python-langserver --pythonpath `which python3` "$@" '')
];
});
});
in
{
devShells.default =
(p2n.mkPoetryEnv {
projectDir = self + "/backend";
# pyinstaller fails to compile so precompiled it is
overrides = p2n.overrides.withDefaults (
final: prev: {
pyinstaller = prev.pyinstaller.override { preferWheel = true; };
pyright = null;
}
);
}).env.overrideAttrs
(oldAttrs: {
shellHook = ''
PYTHONPATH=`which python`
FILE=.vscode/settings.json
if [ -f "$FILE" ]; then
jq --arg pythonpath "$PYTHONPATH" '.["python.defaultInterpreterPath"] = $pythonpath' $FILE > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"
else
echo "{\"python.defaultInterpreterPath\": \"$PYTHONPATH\"}" > "$FILE"
fi
'';
UV_USE_IO_URING = 0; # work around node#48444
nativeBuildInputs = with pkgs; [
python311Packages.setuptools
];
buildInputs = with pkgs; [
nodejs_22
nodePackages.pnpm
poetry
jq
# fixes local pyright not being able to see the pythonpath properly.
(pkgs.writeShellScriptBin "pyright" ''${pkgs.pyright}/bin/pyright --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-langserver" ''${pkgs.pyright}/bin/pyright-langserver --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-python" ''${pkgs.pyright}/bin/pyright-python --pythonpath `which python3` "$@" '')
(pkgs.writeShellScriptBin "pyright-python-langserver" ''${pkgs.pyright}/bin/pyright-python-langserver --pythonpath `which python3` "$@" '')
];
});
}
);
}