Loading pkgs/stdenv/generic/check-meta.nix +7 −1 Original line number Diff line number Diff line Loading @@ -662,7 +662,13 @@ let "Refusing to evaluate package '${getNameWithVersion attrs}' in ${pos_str meta} because it ${error.msg}" + lib.optionalString (!inHydra && error.remediation != "") "\n${error.remediation}"; in if config ? handleEvalIssue then config.handleEvalIssue error.reason msg else throw msg; if config ? handleEvalIssue then if error.reason == "problem" then error.handleProblem config.handleEvalIssue else config.handleEvalIssue error.reason msg else throw msg; giveWarning = acc: warning: Loading pkgs/stdenv/generic/problems.nix +5 −0 Original line number Diff line number Diff line Loading @@ -485,6 +485,11 @@ rec { null else { reason = "problem"; # Only there for PR CI evaluation handleProblem = handleEvalIssue: lib.foldl' (result: problem: handleEvalIssue problem.kind (fullMessage problem)) true errorProblems; msg = '' has problems: ${concatMapStringsSep "\n" (x: "- ${fullMessage x}") errorProblems} Loading pkgs/test/problems/cases/handleEvalIssue/default.nix 0 → 100644 +30 −0 Original line number Diff line number Diff line { nixpkgs ? ../../../../.., }: let pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ ]; config = { checkMeta = true; handleEvalIssue = reason: errormsg: builtins.trace "reason: ${reason}, errormsg: ${errormsg}" true; problems.matchers = [ { kind = "deprecated"; handler = "error"; } { kind = "removal"; handler = "error"; } ]; }; }; in pkgs.stdenvNoCC.mkDerivation { pname = "a"; version = "0"; meta.description = "Some package"; meta.problems.removal.message = "To be removed."; meta.problems.deprecated.message = "To be deprecated."; } pkgs/test/problems/cases/handleEvalIssue/expected-stderr 0 → 100644 +3 −0 Original line number Diff line number Diff line trace: reason: deprecated, errormsg: deprecated: To be deprecated. trace: reason: removal, errormsg: removal: To be removed. warning: you did not specify '--add-root'; the result might be removed by the garbage collector Loading
pkgs/stdenv/generic/check-meta.nix +7 −1 Original line number Diff line number Diff line Loading @@ -662,7 +662,13 @@ let "Refusing to evaluate package '${getNameWithVersion attrs}' in ${pos_str meta} because it ${error.msg}" + lib.optionalString (!inHydra && error.remediation != "") "\n${error.remediation}"; in if config ? handleEvalIssue then config.handleEvalIssue error.reason msg else throw msg; if config ? handleEvalIssue then if error.reason == "problem" then error.handleProblem config.handleEvalIssue else config.handleEvalIssue error.reason msg else throw msg; giveWarning = acc: warning: Loading
pkgs/stdenv/generic/problems.nix +5 −0 Original line number Diff line number Diff line Loading @@ -485,6 +485,11 @@ rec { null else { reason = "problem"; # Only there for PR CI evaluation handleProblem = handleEvalIssue: lib.foldl' (result: problem: handleEvalIssue problem.kind (fullMessage problem)) true errorProblems; msg = '' has problems: ${concatMapStringsSep "\n" (x: "- ${fullMessage x}") errorProblems} Loading
pkgs/test/problems/cases/handleEvalIssue/default.nix 0 → 100644 +30 −0 Original line number Diff line number Diff line { nixpkgs ? ../../../../.., }: let pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ ]; config = { checkMeta = true; handleEvalIssue = reason: errormsg: builtins.trace "reason: ${reason}, errormsg: ${errormsg}" true; problems.matchers = [ { kind = "deprecated"; handler = "error"; } { kind = "removal"; handler = "error"; } ]; }; }; in pkgs.stdenvNoCC.mkDerivation { pname = "a"; version = "0"; meta.description = "Some package"; meta.problems.removal.message = "To be removed."; meta.problems.deprecated.message = "To be deprecated."; }
pkgs/test/problems/cases/handleEvalIssue/expected-stderr 0 → 100644 +3 −0 Original line number Diff line number Diff line trace: reason: deprecated, errormsg: deprecated: To be deprecated. trace: reason: removal, errormsg: removal: To be removed. warning: you did not specify '--add-root'; the result might be removed by the garbage collector