stdenv: Fix handleEvalIssue for error problems (#496156)
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
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.";
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
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
|
||||
Reference in New Issue
Block a user