When testing directories containing multiple patches, it's possible that
cover letters are present. The user should ideally account for this and
remove them as required, but we can also add some capability to test
whether a given file is actually a cover letter and act appropriately.
Start by adding a new regex pattern in patchtest_patterns.py to detect
this case, then adjust the test_mbox suite to make use of it.

AI-Generated: Uses Claude Code

Signed-off-by: Trevor Gamblin <[email protected]>
---
 meta/lib/patchtest/patchtest_patterns.py | 1 +
 meta/lib/patchtest/tests/test_mbox.py    | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/meta/lib/patchtest/patchtest_patterns.py 
b/meta/lib/patchtest/patchtest_patterns.py
index 1a8db92aa5..b3478d2f0f 100644
--- a/meta/lib/patchtest/patchtest_patterns.py
+++ b/meta/lib/patchtest/patchtest_patterns.py
@@ -57,6 +57,7 @@ invalid_submitters = [pyparsing.Regex("^Upgrade Helper.+"),
 mbox_bugzilla = pyparsing.Regex(r'\[\s?YOCTO.*\]')
 mbox_bugzilla_validation = pyparsing.Regex(r'\[(\s?YOCTO\s?#\s?(\d+)\s?,?)+\]')
 mbox_revert_shortlog_regex = pyparsing.Regex(r'Revert\s+".*"')
+mbox_cover_letter_regex = pyparsing.Regex(r'\[\S+\s+0+/\d+\]')
 mbox_shortlog_maxlength = 90
 # based on 
https://stackoverflow.com/questions/30281026/regex-parsing-github-usernames-javascript
 mbox_github_username = 
pyparsing.Regex(r'\B(?<!\${)@([a-z0-9](?:-(?=[a-z0-9])|[a-z0-9]){0,38}(?<=[a-z0-9]))')
diff --git a/meta/lib/patchtest/tests/test_mbox.py 
b/meta/lib/patchtest/tests/test_mbox.py
index a216028250..d465b58ba6 100644
--- a/meta/lib/patchtest/tests/test_mbox.py
+++ b/meta/lib/patchtest/tests/test_mbox.py
@@ -38,6 +38,9 @@ class TestMbox(base.Base):
             # skip those patches that revert older commits, these do not 
required the tag presence
             if 
patchtest_patterns.mbox_revert_shortlog_regex.search_string(commit.shortlog):
                 continue
+            # cover letters (00/N) are not commits and do not need 
Signed-off-by
+            if 
patchtest_patterns.mbox_cover_letter_regex.search_string(commit.subject):
+                continue
             if not 
patchtest_patterns.signed_off_by.search_string(commit.payload):
                 self.fail(
                     'Mbox is missing Signed-off-by. Add it manually or with 
"git commit --amend -s"',
@@ -53,6 +56,9 @@ class TestMbox(base.Base):
                 # no reason to re-check on revert shortlogs
                 if shortlog.startswith('Revert "'):
                     continue
+                # cover letters (00/N) have series titles, not target: summary 
format
+                if 
patchtest_patterns.mbox_cover_letter_regex.search_string(commit.subject):
+                    continue
                 try:
                     patchtest_patterns.shortlog.parseString(shortlog)
                 except pyparsing.ParseException as pe:
-- 
2.54.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#237054): 
https://lists.openembedded.org/g/openembedded-core/message/237054
Mute This Topic: https://lists.openembedded.org/mt/119319582/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to