On Tue Jun 2, 2026 at 8:29 AM CEST, Sai Sneha wrote:
> Add a proper QA check test_missing_srcrev() in do_recipe_qa that
> fires at build time via oe.qa.handle_error(), using the shared
> oe.qa.check_uri_srcrev() helper to avoid code duplication.
>
> Severity is controlled per layer:
> - WARN_QA:append = " missing-srcrev" for all layers (warning by default)
> - ERROR_QA:append:layer-core = " missing-srcrev" for oe-core (strict)
>
> This follows the same pattern as missing-metadata and missing-maintainer
> which are warnings globally but errors for oe-core.
>
> Note on CHECKLAYER_REQUIRED_TESTS: missing-srcrev is intentionally
> not added to CHECKLAYER_REQUIRED_TESTS because that would promote it
> to ERROR_QA for all layers globally during normal builds, contradicting
> the layer-specific enforcement requested in Bug 16051 Comment 3.
> Instead, yocto-check-layer.bbclass enforces it directly during
> checklayer validation runs.

Neither CHECKLAYER_REQUIRED_TESTS nor yocto-check-layer does not appear
in this patch. Maybe move this note to the next patch?

>
> Reported-by: Yoann Congal <[email protected]>
> Fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=16051
> AI-Generated: Developed with assistance from Anthropic Claude
> Signed-off-by: Sai Sneha <[email protected]>
> ---
>
> Changes in v5:
> - No changes to this patch
>
> Changes in v4:
> - Refactored to use shared oe.qa.check_uri_srcrev() helper
> - Eliminates duplicated URI parsing logic
> - Added note explaining why CHECKLAYER_REQUIRED_TESTS is not used
>
> Changes in v3:
> - Added AI-Generated disclosure and Reported-by tag
>
> Changes in v2:
> - Initial public submission
>  meta/classes-global/insane.bbclass | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/meta/classes-global/insane.bbclass 
> b/meta/classes-global/insane.bbclass
> index 04700be71c..1fe426646d 100644
> --- a/meta/classes-global/insane.bbclass
> +++ b/meta/classes-global/insane.bbclass
> @@ -49,6 +49,9 @@ ERROR_QA ?= "\
>  ERROR_QA:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'usrmerge', d)}"
>  WARN_QA:append:layer-core = " missing-metadata missing-maintainer"
>  
> +WARN_QA:append = " missing-srcrev"
> +ERROR_QA:append:layer-core = " missing-srcrev"
> +
>  FAKEROOT_QA = "host-user-contaminated"
>  FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
>  enabled tests are listed here, the do_package_qa task will run under 
> fakeroot."
> @@ -1455,6 +1458,15 @@ python do_qa_unpack() {
>  python do_recipe_qa() {
>      import re
>  
> +    def test_missing_srcrev(pn, d):
> +        import oe.qa
> +        src_uri = (d.getVar('SRC_URI', False) or '').split()
> +        for uri in src_uri:
> +            rev = oe.qa.check_uri_srcrev(pn, uri, d)
> +            if rev is None:
> +                oe.qa.handle_error("missing-srcrev",
> +                    "%s: SRCREV not set for SCM URI %s" % (pn, uri), d)
> +         
>      def test_naming(pn, d):
>          if pn.endswith("-native") and not bb.data.inherits_class("native", 
> d):
>              oe.qa.handle_error("recipe-naming", "Recipe %s appears native 
> but is not, should inherit native" % pn, d)
> @@ -1497,6 +1509,7 @@ python do_recipe_qa() {
>  
>      pn = d.getVar('PN')
>      test_naming(pn, d)
> +    test_missing_srcrev(pn, d)
>      test_missing_metadata(pn, d)
>      test_missing_maintainer(pn, d)
>      test_srcuri(pn, d)


-- 
Yoann Congal
Smile ECS

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

Reply via email to