--- name: leapp-sweep-siblings description: After fixing an artifact in one LEAPP core, find and fix the same defect in the sibling cores. Use when a fix has just landed or is about to, when asked to "level" a change across cores, or when checking whether a defect found in one tool exists in the others. --- # Sweeping sibling cores after a fix iLEAPP, ALEAPP, RLEAPP, VLEAPP and DLEAPP carry independent copies of many artifacts. A fix in one does not reach the others, and the stale copy keeps shipping the defect to examiners. ## 1. Update every checkout first A local clone that is days behind will tell you a fix is missing when it already shipped, or that a file is clean when it is not. Fetch before you look, or query the remotes directly. ## 2. Find the twins Grep each sibling for the artifact filename **and** for the app's package or bundle identifier. The filename alone misses copies that were renamed, and the identifier alone misses modules that handle several apps. The `leapp-cross-core` rule lists app names already known to exist in more than one core. Treat it as a starting point, not the full set. ## 3. Read each twin before touching it The copies drift. Expect the same defect at different line numbers, and expect extra defects the original never had. Do not apply the patch blind. Check the reverse direction too. A defect you found in one core may exist unfixed in the one you think of as canonical. ## 4. Fix each one on its own branch and PR One PR per repo. Each core has its own CI, its own lint debt and its own reviewers. Apply the **"Needs Cross Core Leveling"** label when a change should propagate but you are not doing all of them now. Do the grep yourself rather than trusting the label to be actioned later. ## 5. Verify per core, not once Row counts differ between cores because the underlying app data differs. Confirm each fix against data for that platform. A count that matches the other core is a coincidence worth questioning, not a confirmation. ## Shared infrastructure counts too The same drift applies to `scripts/lavafuncs.py`, `scripts/html_safe.py`, `scripts/ilapfuncs.py` and the `admin/` checkers, which are meant to stay in step across cores. When porting one of those, verify the helper you are copying **into** is not older than the one you copied **from**, and check the helper itself rather than just the number of findings a checker reports. A stale helper can make a checker report zero while the defect is still live. `leapps-org/leapps-parity` scans for exactly this class of drift and its report is a reasonable place to start.