about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/python-modules/generic/default.nix2
-rw-r--r--pkgs/top-level/release-python.nix20
2 files changed, 15 insertions, 7 deletions
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 048576e0741ea..e836ed3f93bb5 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -127,5 +127,7 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled"] // {
   } // meta // {
     # add extra maintainer(s) to every package
     maintainers = (meta.maintainers or []) ++ [ chaoflow iElectric ];
+    # a marker for release utilies to discover python packages
+    isBuildPythonPackage = python.meta.platforms;
   };
 })
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 1c654272bb8ec..79bbd9d21a0df 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -9,12 +9,18 @@
   supportedSystems ? [ "x86_64-linux" ]
 }:
 
+with import ../../lib;
 with import ./release-lib.nix {inherit supportedSystems; };
 
-(mapTestOn {
-  pypyPackages = packagePlatforms pkgs.pypyPackages;
-  pythonPackages = packagePlatforms pkgs.pythonPackages;
-  python33Packages = packagePlatforms pkgs.python33Packages;
-  python34Packages = packagePlatforms pkgs.python34Packages;
-  python35Packages = packagePlatforms pkgs.python35Packages;
-})
+let
+  packagePython = mapAttrs (name: value:
+    let res = builtins.tryEval (
+      if isDerivation value then
+        value.meta.isBuildPythonPackage or []
+      else if value.recurseForDerivations or false || value.recurseForRelease or false then
+        packagePython value
+      else
+        []);
+    in if res.success then res.value else []
+    );
+in (mapTestOn (packagePython pkgs))