diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2022-09-09 13:36:31 +0200 |
---|---|---|
committer | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2022-09-12 22:15:39 +0200 |
commit | adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593 (patch) | |
tree | 64f233070247a37c6e5f254f92c74a4577211480 /pkgs/development/interpreters/python/mk-python-derivation.nix | |
parent | 2a452a4cbebdd41d3399b64f442f282d819c6d4f (diff) | |
download | nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar.gz nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar.bz2 nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar.lz nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar.xz nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.tar.zst nixpkgs-adbc59c9d3b6be2cdb1c29b84afa8b30d9cc7593.zip |
buildPython*: store dist (wheel/sdist) in dist output
Store the intermediate artifacts. In time, we should build, install and test in separate derivations as that reduces circular dependencies, avoids rebuilds when fixing tests, and makes it possible to use the wheels for creating say virtualenv's.
Diffstat (limited to 'pkgs/development/interpreters/python/mk-python-derivation.nix')
-rw-r--r-- | pkgs/development/interpreters/python/mk-python-derivation.nix | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index f37ad592cb4..f82611554a2 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -17,6 +17,7 @@ , pythonCatchConflictsHook , pythonImportsCheckHook , pythonNamespacesHook +, pythonOutputDistHook , pythonRemoveBinBytecodeHook , pythonRemoveTestsDirHook , setuptoolsBuildHook @@ -49,6 +50,8 @@ # Enabled to detect some (native)BuildInputs mistakes , strictDeps ? true +, outputs ? [ "out" ] + # used to disable derivation, useful for specific python versions , disabled ? false @@ -106,11 +109,13 @@ else let inherit (python) stdenv; + withDistOutput = lib.elem format ["pyproject" "setuptools" "flit"]; + name_ = name; self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [ "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" - "disabledTestPaths" + "disabledTestPaths" "outputs" ]) // { name = namePrefix + name_; @@ -144,6 +149,8 @@ let ] ++ lib.optionals (python.pythonAtLeast "3.3") [ # Optionally enforce PEP420 for python3 pythonNamespacesHook + ] ++ lib.optionals withDistOutput [ + pythonOutputDistHook ] ++ nativeBuildInputs; buildInputs = buildInputs ++ pythonPath; @@ -177,6 +184,8 @@ let # Python packages built through cross-compilation are always for the host platform. disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ]; + outputs = outputs ++ lib.optional withDistOutput "dist"; + meta = { # default to python's platforms platforms = python.meta.platforms; |