Bug 16502

Summary: RRS: upstream history and distros don't check out the layer branch they parse
Product: [Yocto Project Subprojects] Recipe Reporting System (RRS) Reporter: Tim Orling <tim.orling>
Component: Recipe Reporting System (RRS)Assignee: Tim Orling <tim.orling>
Status: IN PROGRESS REVIEW --- QA Contact:
Severity: normal    
Priority: Medium    
Version: unspecified   
Target Milestone: 6.2 M2   
Hardware: All   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Tim Orling 2026-11-14 07:44:06 UTC
rrs_upstream_history.py and rrs_distros.py parse a maintenance plan's recipes from whatever branch the layer's repository is checked out at, not the layer branch they are working on.

load_recipes() in rrs/tools/common.py lets recipeparse.init_parser() check out BitBake and OE-Core for the branch, but never checks out the layer itself or the layers it depends on. The layer index updates leave each repository on whichever branch they updated last, so the RRS scripts parse whatever happens to be there.

On a test instance meta-openembedded and meta-intel were checked out at dunfell while upstream history worked on master: 1010 recipes failed with "file ... not found" (the master recipe file names don't exist on dunfell) or "contains an operation using the old override syntax".

Fix: unless nocheckout is set, have load_recipes() check out the layer branch, and the branches of the layers it depends on, after init_parser() and before parsing, as update_layer.py does.
Comment 1 Tim Orling 2026-11-15 00:46:35 UTC
Patch 4/6 of the series sent to yocto-patches, under review:
https://lore.kernel.org/all/20261115003506.53654-1-tim.orling@konsulko.com/