diff options
| -rw-r--r-- | flake.lock | 12 | ||||
| -rw-r--r-- | nix/derivation.nix | 16 | ||||
| -rw-r--r-- | nix/dev.nix | 10 | ||||
| -rw-r--r-- | nix/packages.nix | 31 |
4 files changed, 37 insertions, 32 deletions
@@ -57,11 +57,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1695145219, - "narHash": "sha256-Eoe9IHbvmo5wEDeJXKFOpKUwxYJIOxKUesounVccNYk=", + "lastModified": 1695644571, + "narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5ba549eafcf3e33405e5f66decd1a72356632b96", + "rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92", "type": "github" }, "original": { @@ -103,11 +103,11 @@ ] }, "locked": { - "lastModified": 1694364351, - "narHash": "sha256-oadhSCqopYXxURwIA6/Anpe5IAG11q2LhvTJNP5zE6o=", + "lastModified": 1695576016, + "narHash": "sha256-71KxwRhTfVuh7kNrg3/edNjYVg9DCyKZl2QIKbhRggg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "4f883a76282bc28eb952570afc3d8a1bf6f481d7", + "rev": "cb770e93516a1609652fa8e945a0f310e98f10c0", "type": "github" }, "original": { diff --git a/nix/derivation.nix b/nix/derivation.nix index 4e32095..483aeef 100644 --- a/nix/derivation.nix +++ b/nix/derivation.nix @@ -6,16 +6,26 @@ pydantic, uvicorn, self, - version, + build, + wheel, }: buildPythonPackage { pname = "guzzle-api"; - inherit version; + version = builtins.substring 0 8 self.lastModifiedDate or "dirty"; src = lib.cleanSource self; format = "flit"; doCheck = false; + dontUsePypaBuild = true; + + # TODO: find out what's going on with pypaBuildHook + buildPhase = '' + runHook preBuild + pyproject-build --no-isolation --outdir dist/ --wheel $pypaBuildFlags + runHook postBuild + ''; + propagatedBuildInputs = [fastapi pydantic uvicorn]; - propagatedNativeBuildInputs = [flit-core]; + nativeBuildInputs = [flit-core build wheel]; } diff --git a/nix/dev.nix b/nix/dev.nix index b394c6c..9ebb07f 100644 --- a/nix/dev.nix +++ b/nix/dev.nix @@ -5,8 +5,9 @@ ... }: { perSystem = { - config, pkgs, + config, + self', ... }: { pre-commit = { @@ -24,8 +25,11 @@ devShells.default = pkgs.mkShell { shellHook = config.pre-commit.installationScript; - packages = [ - (pkgs.python311.withPackages (p: with p; [isort yapf pylint])) + inputsFrom = [self'.packages.guzzle-api]; + packages = with pkgs.python311Packages; [ + isort + yapf + pylint ]; }; }; diff --git a/nix/packages.nix b/nix/packages.nix index 8722ad1..bc679c7 100644 --- a/nix/packages.nix +++ b/nix/packages.nix @@ -1,29 +1,20 @@ -{self, ...}: let - version = builtins.substring 0 8 self.lastModifiedDate or "dirty"; - commonArgs = {inherit self version;}; -in { +{self, ...}: { perSystem = { + lib, pkgs, - self', ... - }: { + }: let + pkgs' = lib.fix (final: self.overlays.default final pkgs); + in { packages = { - guzzle-api = pkgs.python311Packages.callPackage ./derivation.nix commonArgs; - guzzle-api-server = pkgs.python311Packages.callPackage ./server.nix {inherit (self'.packages) guzzle-api;}; - default = self'.packages.guzzle-api; + inherit (pkgs') guzzle-api guzzle-api-server; + default = pkgs'.guzzle-api-server; }; }; - flake.overlays.default = final: prev: { - python = prev.python.override { - packageOverrides = _: prev': { - guzzle-api = prev'.callPackage ./derivation.nix commonArgs; - }; + flake.overlays.default = final: prev: + with prev.python311Packages; { + guzzle-api = callPackage ./derivation.nix {inherit self;}; + guzzle-api-server = callPackage ./server.nix {inherit (final) guzzle-api;}; }; - - pythonPackages = final.python.pkgs; - - guzzle-api = final.pythonPackages.callPackage ./derivation.nix commonArgs; - guzzle-api-server = final.pythonPackages.callPackage ./server.nix {}; - }; } |
