<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>15701</bug_id>
          
          <creation_ts>2024-12-20 09:45:25 +0000</creation_ts>
          <short_desc>automate testing a single recipe&apos;s reproducibility</short_desc>
          <delta_ts>2026-10-27 08:16:33 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>QA/Testing</classification>
          <product>Functional (self) Testing</product>
          <component>oe-selftest</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>IN PROGRESS IMPLEMENTATION</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugzilla.yoctoproject.org/show_bug.cgi?id=15898</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>6.2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoann Congal">yoann.congal</reporter>
          <assigned_to name="Yoann Congal">yoann.congal</assigned_to>
          <cc>antonin.godard</cc>
    
    <cc>randy.macleod</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Yes (doc changes required)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100478</commentid>
    <comment_count>0</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2024-12-20 09:45:25 +0000</bug_when>
    <thetext>By default OEQA_REPRODUCIBLE_TEST_TARGET rebuild every dependencies without sstate. One can add these dependencies to OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS but finding the list might be cumbersome (listing DEPENDS is not enough).

Maybe all of this can be fully automated? Something like a &quot;OEQA_REPRODUCIBLE_ONLY_TEST_TARGET&quot; that would :
* compute every dependencies of the recipe (dynamic deps included)
* build these using sstate
* build the recipe with and without sstate and compare output (normal reproducible test)

See discussion in https://lists.yoctoproject.org/g/docs/topic/patch/110186946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100837</commentid>
    <comment_count>1</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2025-02-04 00:08:05 +0000</bug_when>
    <thetext>[PATCH 2/2] selftest/reproducible: Add a method to test a single recipe
https://lists.openembedded.org/g/openembedded-core/message/210744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100844</commentid>
    <comment_count>2</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2025-02-05 13:23:42 +0000</bug_when>
    <thetext>Merged in https://git.yoctoproject.org/poky/commit/?h=master&amp;id=50a609576e399cd048480cfeab53d5a26129cd03

Still need to document this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100873</commentid>
    <comment_count>3</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2025-02-06 16:43:04 +0000</bug_when>
    <thetext>Next step: explore RP&apos;s idea to handle dynamic dependencies (coming from PATCHTOOL, PACKAGE_DEPENDS, ...):

In case of a &quot;leaf&quot; target, change the test:
- reproducibleA build using the &quot;main&quot; sstate.
- reproducibleB prebuild *with the target included* with a new &quot;test&quot; sstate directory (using &quot;main&quot; sstate as (PRE?)MIRROR)
- cleansstate for the target recipe (we can do that since we are in &quot;test&quot; sstate directory) 
- reproducibleB build with the &quot;test&quot; sstate (this the recipe sstate has been cleaned-up, it will be rebuilt from scratch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101339</commentid>
    <comment_count>4</comment_count>
    <who name="Antonin Godard">antonin.godard</who>
    <bug_when>2025-03-11 08:30:22 +0000</bug_when>
    <thetext>(In reply to Yoann Congal from comment #2)
&gt; Merged in
&gt; https://git.yoctoproject.org/poky/commit/
&gt; ?h=master&amp;id=50a609576e399cd048480cfeab53d5a26129cd03
&gt; 
&gt; Still need to document this

A documentation patch was merged with https://git.yoctoproject.org/yocto-docs/commit/?id=417b423ea3d2ba9903d21d930c1982ff2ac6f596.

Thanks Yoann!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101778</commentid>
    <comment_count>5</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2025-04-29 14:41:57 +0000</bug_when>
    <thetext>Bulk move to 5.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103200</commentid>
    <comment_count>6</comment_count>
    <who name="Yoann Congal">yoann.congal</who>
    <bug_when>2025-11-06 10:57:04 +0000</bug_when>
    <thetext>Bulk move to 6.0 M1</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>