* [PATCH 1/3] yocto-check-layer: Add messages in test_readme assertions
2026-01-20 19:47 [PATCH 0/3] Improve yocto-check-layer test_readme method Ricardo Ungerer
@ 2026-01-20 19:47 ` Ricardo Ungerer
2026-01-20 19:47 ` [PATCH 2/3] yocto-check-layer: Fix README email check Ricardo Ungerer
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ungerer @ 2026-01-20 19:47 UTC (permalink / raw)
To: openembedded-core; +Cc: Ricardo Ungerer
Assertions in test_readme does not provide context message when they
fail. Which leads to errors like:
File "/media/workspace/yocto_master/openembedded-core/scripts/lib/checklayer/cases/common.py", line 41, in test_readme
self.assertTrue(email_regex.match(data))
AssertionError: None is not true
This patch adds context messages to the assertions to help identify the
issue when they fail.
Signed-off-by: Ricardo Ungerer <ungerer.ricardo@gmail.com>
---
scripts/lib/checklayer/cases/common.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/scripts/lib/checklayer/cases/common.py b/scripts/lib/checklayer/cases/common.py
index ddead69a7b..0114481434 100644
--- a/scripts/lib/checklayer/cases/common.py
+++ b/scripts/lib/checklayer/cases/common.py
@@ -32,13 +32,14 @@ class CommonCheckLayer(OECheckLayerTestCase):
# If a layer's README references another README, then the checks below are not valid
if re.search('README', data, re.IGNORECASE):
+ print("Layer README references another README; skipping further README checks.")
return
- self.assertIn('maintainer', data.lower())
- self.assertIn('patch', data.lower())
+ self.assertIn('maintainer', data.lower(), msg="No maintainer info found in README.")
+ self.assertIn('patch', data.lower(), msg="No patching information found in README.")
# Check that there is an email address in the README
email_regex = re.compile(r"[^@]+@[^@]+")
- self.assertTrue(email_regex.match(data))
+ self.assertTrue(email_regex.match(data), msg="No email address found in README.")
def find_file_by_name(self, globs):
"""
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/3] yocto-check-layer: Fix README email check
2026-01-20 19:47 [PATCH 0/3] Improve yocto-check-layer test_readme method Ricardo Ungerer
2026-01-20 19:47 ` [PATCH 1/3] yocto-check-layer: Add messages in test_readme assertions Ricardo Ungerer
@ 2026-01-20 19:47 ` Ricardo Ungerer
2026-01-20 19:47 ` [PATCH 3/3] yocto-check-layer: Add docstring to test_readme method Ricardo Ungerer
2026-01-21 9:25 ` [OE-core] [PATCH 0/3] Improve yocto-check-layer " Quentin Schulz
3 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ungerer @ 2026-01-20 19:47 UTC (permalink / raw)
To: openembedded-core; +Cc: Ricardo Ungerer
So far the test_readme have been use of re.match to find an email
address in the README file. This only matches if the email address
is at the start of the file. This commit changes this to re.search to
find email addresses anywhere in the README file.
Signed-off-by: Ricardo Ungerer <ungerer.ricardo@gmail.com>
---
scripts/lib/checklayer/cases/common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lib/checklayer/cases/common.py b/scripts/lib/checklayer/cases/common.py
index 0114481434..9ea7592ba6 100644
--- a/scripts/lib/checklayer/cases/common.py
+++ b/scripts/lib/checklayer/cases/common.py
@@ -39,7 +39,7 @@ class CommonCheckLayer(OECheckLayerTestCase):
self.assertIn('patch', data.lower(), msg="No patching information found in README.")
# Check that there is an email address in the README
email_regex = re.compile(r"[^@]+@[^@]+")
- self.assertTrue(email_regex.match(data), msg="No email address found in README.")
+ self.assertTrue(email_regex.search(data), msg="No email address found in README.")
def find_file_by_name(self, globs):
"""
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/3] yocto-check-layer: Add docstring to test_readme method
2026-01-20 19:47 [PATCH 0/3] Improve yocto-check-layer test_readme method Ricardo Ungerer
2026-01-20 19:47 ` [PATCH 1/3] yocto-check-layer: Add messages in test_readme assertions Ricardo Ungerer
2026-01-20 19:47 ` [PATCH 2/3] yocto-check-layer: Fix README email check Ricardo Ungerer
@ 2026-01-20 19:47 ` Ricardo Ungerer
2026-01-20 20:00 ` Patchtest results for " patchtest
2026-01-21 9:25 ` [OE-core] [PATCH 0/3] Improve yocto-check-layer " Quentin Schulz
3 siblings, 1 reply; 6+ messages in thread
From: Ricardo Ungerer @ 2026-01-20 19:47 UTC (permalink / raw)
To: openembedded-core; +Cc: Ricardo Ungerer
Signed-off-by: Ricardo Ungerer <ungerer.ricardo@gmail.com>
---
scripts/lib/checklayer/cases/common.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/scripts/lib/checklayer/cases/common.py b/scripts/lib/checklayer/cases/common.py
index 9ea7592ba6..d20559e163 100644
--- a/scripts/lib/checklayer/cases/common.py
+++ b/scripts/lib/checklayer/cases/common.py
@@ -12,6 +12,16 @@ from checklayer.case import OECheckLayerTestCase
class CommonCheckLayer(OECheckLayerTestCase):
def test_readme(self):
+ """
+ Test that the layer contains a valid README file and that is meets
+ the following criteria:
+ 1. A README file exists in the layer's root directory (case-insensitive)
+ 2. The README file is not empty
+ 3. The README contains maintainer information (checks for the word "maintainer")
+ 4. The README contains patching instructions (checks for the word "patch")
+ 5. The README contains at least one email address
+ If the README references another README file, steps 3, 4, and 5 are skipped.
+ """
if self.tc.layer['type'] == LayerType.CORE:
raise unittest.SkipTest("Core layer's README is top level")
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Patchtest results for [PATCH 3/3] yocto-check-layer: Add docstring to test_readme method
2026-01-20 19:47 ` [PATCH 3/3] yocto-check-layer: Add docstring to test_readme method Ricardo Ungerer
@ 2026-01-20 20:00 ` patchtest
0 siblings, 0 replies; 6+ messages in thread
From: patchtest @ 2026-01-20 20:00 UTC (permalink / raw)
To: Ricardo Ungerer; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2125 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/3-3-yocto-check-layer-Add-docstring-to-test_readme-method.patch
FAIL: test commit message presence: Please include a commit message on your patch explaining the change (test_mbox.TestMbox.test_commit_message_presence)
PASS: pretest pylint (test_python_pylint.PyLint.pretest_pylint)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test pylint (test_python_pylint.PyLint.test_pylint)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: test CVE tag format: No new CVE patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH 0/3] Improve yocto-check-layer test_readme method
2026-01-20 19:47 [PATCH 0/3] Improve yocto-check-layer test_readme method Ricardo Ungerer
` (2 preceding siblings ...)
2026-01-20 19:47 ` [PATCH 3/3] yocto-check-layer: Add docstring to test_readme method Ricardo Ungerer
@ 2026-01-21 9:25 ` Quentin Schulz
3 siblings, 0 replies; 6+ messages in thread
From: Quentin Schulz @ 2026-01-21 9:25 UTC (permalink / raw)
To: ungerer.ricardo, openembedded-core
Hi Ricardo,
On 1/20/26 8:47 PM, Ricardo Ungerer via lists.openembedded.org wrote:
> [You don't often get email from ungerer.ricardo=gmail.com@lists.openembedded.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> This series of patches improves the test_readme method in the
> yocto-check-layer tool by:
>
> 1. adding context messages to assertions,
> 2. changing the python function used to check email addresses from re.match to
> re.search,
> 3. adding a docstring to the test_readme method
>
> Ricardo Ungerer (3):
> yocto-check-layer: Add messages in test_readme assertions
> yocto-check-layer: Fix README email check
> yocto-check-layer: Add docstring to test_readme method
>
For the whole series:
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 6+ messages in thread