insane.bbclass: move Upstream-Status logic to oe.qa

* to be used by standalone script scripts/contrib/patchreview.py
  as well

(From OE-Core rev: c326efeec8f576200728a44c694becdeab4fe2db)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Martin Jansa 2023-02-15 18:20:40 +01:00 committed by Richard Purdie
parent add828fa4f
commit 149ea9db96
2 changed files with 20 additions and 16 deletions

View File

@ -1357,22 +1357,9 @@ python do_qa_patch() {
if not allpatches:
continue
kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE)
strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status"
with open(fullpath, encoding='utf-8', errors='ignore') as f:
file_content = f.read()
match_kinda = kinda_status_re.search(file_content)
match_strict = strict_status_re.search(file_content)
if not match_strict:
if match_kinda:
msg = "Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0))
oe.qa.handle_error(patchtype, msg, d)
else:
msg = "Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines)
oe.qa.handle_error(patchtype, msg, d)
msg = oe.qa.check_upstream_status(fullpath)
if msg:
oe.qa.handle_error(patchtype, msg, d)
oe.qa.exit_if_errors(d)
}

View File

@ -213,6 +213,23 @@ def exit_with_message_if_errors(message, d):
def exit_if_errors(d):
exit_with_message_if_errors("Fatal QA errors were found, failing task.", d)
def check_upstream_status(fullpath):
import re
kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE)
strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status"
with open(fullpath, encoding='utf-8', errors='ignore') as f:
file_content = f.read()
match_kinda = kinda_status_re.search(file_content)
match_strict = strict_status_re.search(file_content)
if not match_strict:
if match_kinda:
return "Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0))
else:
return "Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines)
if __name__ == "__main__":
import sys