release-python.nix: automatically detect buildPythonPackage

This commit is contained in:
Domen Kožar 2015-11-19 16:39:34 +01:00
parent 686dae7c50
commit c6c58dc92d
2 changed files with 15 additions and 7 deletions

View File

@ -127,5 +127,7 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled"] // {
} // meta // { } // meta // {
# add extra maintainer(s) to every package # add extra maintainer(s) to every package
maintainers = (meta.maintainers or []) ++ [ chaoflow iElectric ]; maintainers = (meta.maintainers or []) ++ [ chaoflow iElectric ];
# a marker for release utilies to discover python packages
isBuildPythonPackage = python.meta.platforms;
}; };
}) })

View File

@ -9,12 +9,18 @@
supportedSystems ? [ "x86_64-linux" ] supportedSystems ? [ "x86_64-linux" ]
}: }:
with import ../../lib;
with import ./release-lib.nix {inherit supportedSystems; }; with import ./release-lib.nix {inherit supportedSystems; };
(mapTestOn { let
pypyPackages = packagePlatforms pkgs.pypyPackages; packagePython = mapAttrs (name: value:
pythonPackages = packagePlatforms pkgs.pythonPackages; let res = builtins.tryEval (
python33Packages = packagePlatforms pkgs.python33Packages; if isDerivation value then
python34Packages = packagePlatforms pkgs.python34Packages; value.meta.isBuildPythonPackage or []
python35Packages = packagePlatforms pkgs.python35Packages; 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))