diff options
| -rw-r--r-- | meta/classes-global/insane.bbclass | 19 | ||||
| -rw-r--r-- | meta/lib/oe/qa.py | 17 |
2 files changed, 20 insertions, 16 deletions
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass index 4053eda094..ee34d5208d 100644 --- a/meta/classes-global/insane.bbclass +++ b/meta/classes-global/insane.bbclass | |||
| @@ -1357,22 +1357,9 @@ python do_qa_patch() { | |||
| 1357 | if not allpatches: | 1357 | if not allpatches: |
| 1358 | continue | 1358 | continue |
| 1359 | 1359 | ||
| 1360 | kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE) | 1360 | msg = oe.qa.check_upstream_status(fullpath) |
| 1361 | strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE) | 1361 | if msg: |
| 1362 | guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status" | 1362 | oe.qa.handle_error(patchtype, msg, d) |
| 1363 | |||
| 1364 | with open(fullpath, encoding='utf-8', errors='ignore') as f: | ||
| 1365 | file_content = f.read() | ||
| 1366 | match_kinda = kinda_status_re.search(file_content) | ||
| 1367 | match_strict = strict_status_re.search(file_content) | ||
| 1368 | |||
| 1369 | if not match_strict: | ||
| 1370 | if match_kinda: | ||
| 1371 | msg = "Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0)) | ||
| 1372 | oe.qa.handle_error(patchtype, msg, d) | ||
| 1373 | else: | ||
| 1374 | msg = "Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines) | ||
| 1375 | oe.qa.handle_error(patchtype, msg, d) | ||
| 1376 | 1363 | ||
| 1377 | oe.qa.exit_if_errors(d) | 1364 | oe.qa.exit_if_errors(d) |
| 1378 | } | 1365 | } |
diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py index b4cbc50045..de980638c4 100644 --- a/meta/lib/oe/qa.py +++ b/meta/lib/oe/qa.py | |||
| @@ -213,6 +213,23 @@ def exit_with_message_if_errors(message, d): | |||
| 213 | def exit_if_errors(d): | 213 | def exit_if_errors(d): |
| 214 | exit_with_message_if_errors("Fatal QA errors were found, failing task.", d) | 214 | exit_with_message_if_errors("Fatal QA errors were found, failing task.", d) |
| 215 | 215 | ||
| 216 | def check_upstream_status(fullpath): | ||
| 217 | import re | ||
| 218 | kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE) | ||
| 219 | strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE) | ||
| 220 | guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status" | ||
| 221 | |||
| 222 | with open(fullpath, encoding='utf-8', errors='ignore') as f: | ||
| 223 | file_content = f.read() | ||
| 224 | match_kinda = kinda_status_re.search(file_content) | ||
| 225 | match_strict = strict_status_re.search(file_content) | ||
| 226 | |||
| 227 | if not match_strict: | ||
| 228 | if match_kinda: | ||
| 229 | return "Malformed Upstream-Status in patch\n%s\nPlease correct according to %s :\n%s" % (fullpath, guidelines, match_kinda.group(0)) | ||
| 230 | else: | ||
| 231 | return "Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines) | ||
| 232 | |||
| 216 | if __name__ == "__main__": | 233 | if __name__ == "__main__": |
| 217 | import sys | 234 | import sys |
| 218 | 235 | ||
