diff mbox series

[v3,1/4] ref-manual/variables: document OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS

Message ID 20250209233245.1397155-1-yoann.congal@smile.fr
State Superseded
Headers show
Series [v3,1/4] ref-manual/variables: document OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS | expand

Commit Message

Yoann Congal Feb. 9, 2025, 11:32 p.m. UTC
From: Yoann Congal <yoann.congal@smile.fr>

This documents the variable used in the "automate testing a single
recipe's reproducibility" feature [YOCTO #15701]

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
v2->v3: Quentin's review:
* s/target/target(s)/
* Removed Guillaume Reviewed-by (given privately)
---
 documentation/ref-manual/variables.rst | 5 +++++
 1 file changed, 5 insertions(+)

Comments

guillaume.swaenepoel@smile.fr Feb. 10, 2025, 8:55 a.m. UTC | #1
Reviewed-by: Guillaume Swaenepoel <guillaume.swaenepoel@smile.fr>
Quentin Schulz Feb. 10, 2025, 5:37 p.m. UTC | #2
Hi Yoann,

On 2/10/25 12:32 AM, Yoann Congal via lists.yoctoproject.org wrote:
> From: Yoann Congal <yoann.congal@smile.fr>
> 
> This documents the variable used in the "automate testing a single
> recipe's reproducibility" feature [YOCTO #15701]
> 
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> ---
> v2->v3: Quentin's review:
> * s/target/target(s)/
> * Removed Guillaume Reviewed-by (given privately)
> ---
>   documentation/ref-manual/variables.rst | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
> index adbef69d8..2f1937632 100644
> --- a/documentation/ref-manual/variables.rst
> +++ b/documentation/ref-manual/variables.rst
> @@ -5807,6 +5807,11 @@ system and gives an overview of their function and contents.
>         For additional information on how this variable is used, see the
>         initialization script.
>   
> +   :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
> +      Set build target(s) for build reproducibility testing but activate
> +      :ref:`shared state <overview-manual/concepts:shared state cache>` build
> +      for most dependencies. See :doc:`/test-manual/reproducible-builds`.
> +

What do you mean by "most dependencies"?

The code I glanced at in OE-Core seems to indicate it adds all DEPENDS 
from each leaf recipe to the list of targets to build with sstate-cache 
(the same way it's done for OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS).

Cheers,
Quentin
Yoann Congal Feb. 11, 2025, 10:35 a.m. UTC | #3
Le lun. 10 févr. 2025 à 18:37, Quentin Schulz <quentin.schulz@cherry.de> a
écrit :

> Hi Yoann,
>
> On 2/10/25 12:32 AM, Yoann Congal via lists.yoctoproject.org wrote:
> > From: Yoann Congal <yoann.congal@smile.fr>
> >
> > This documents the variable used in the "automate testing a single
> > recipe's reproducibility" feature [YOCTO #15701]
> >
> > Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> > ---
> > v2->v3: Quentin's review:
> > * s/target/target(s)/
> > * Removed Guillaume Reviewed-by (given privately)
> > ---
> >   documentation/ref-manual/variables.rst | 5 +++++
> >   1 file changed, 5 insertions(+)
> >
> > diff --git a/documentation/ref-manual/variables.rst
> b/documentation/ref-manual/variables.rst
> > index adbef69d8..2f1937632 100644
> > --- a/documentation/ref-manual/variables.rst
> > +++ b/documentation/ref-manual/variables.rst
> > @@ -5807,6 +5807,11 @@ system and gives an overview of their function
> and contents.
> >         For additional information on how this variable is used, see the
> >         initialization script.
> >
> > +   :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
> > +      Set build target(s) for build reproducibility testing but activate
> > +      :ref:`shared state <overview-manual/concepts:shared state cache>`
> build
> > +      for most dependencies. See
> :doc:`/test-manual/reproducible-builds`.
> > +
>
> What do you mean by "most dependencies"?
>
> The code I glanced at in OE-Core seems to indicate it adds all DEPENDS
> from each leaf recipe to the list of targets to build with sstate-cache
> (the same way it's done for OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS).
>

Sadly, DEPENDS is not all the dependencies of a recipe. Some dependencies
are added via
do_task[depends] = "recipe:do_task2"
Those don't appear in DEPENDS but are built anyway.

Look at PACKAGE_DEPENDS for example:
https://git.yoctoproject.org/poky/tree/meta/classes-global/package.bbclass#n232
There are other instances.

I plan to improve the reproducibility test to include all of those with a
suggestion from Richard, and then, going back to the doc and removing this
"most" among other changes...



> Cheers,
> Quentin
>
Quentin Schulz Feb. 11, 2025, 1:57 p.m. UTC | #4
Hi Yoann,

On 2/11/25 11:35 AM, Yoann Congal wrote:
> Le lun. 10 févr. 2025 à 18:37, Quentin Schulz <quentin.schulz@cherry.de> a
> écrit :
> 
>> Hi Yoann,
>>
>> On 2/10/25 12:32 AM, Yoann Congal via lists.yoctoproject.org wrote:
>>> From: Yoann Congal <yoann.congal@smile.fr>
>>>
>>> This documents the variable used in the "automate testing a single
>>> recipe's reproducibility" feature [YOCTO #15701]
>>>
>>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>>> ---
>>> v2->v3: Quentin's review:
>>> * s/target/target(s)/
>>> * Removed Guillaume Reviewed-by (given privately)
>>> ---
>>>    documentation/ref-manual/variables.rst | 5 +++++
>>>    1 file changed, 5 insertions(+)
>>>
>>> diff --git a/documentation/ref-manual/variables.rst
>> b/documentation/ref-manual/variables.rst
>>> index adbef69d8..2f1937632 100644
>>> --- a/documentation/ref-manual/variables.rst
>>> +++ b/documentation/ref-manual/variables.rst
>>> @@ -5807,6 +5807,11 @@ system and gives an overview of their function
>> and contents.
>>>          For additional information on how this variable is used, see the
>>>          initialization script.
>>>
>>> +   :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
>>> +      Set build target(s) for build reproducibility testing but activate
>>> +      :ref:`shared state <overview-manual/concepts:shared state cache>`
>> build
>>> +      for most dependencies. See
>> :doc:`/test-manual/reproducible-builds`.
>>> +
>>
>> What do you mean by "most dependencies"?
>>
>> The code I glanced at in OE-Core seems to indicate it adds all DEPENDS
>> from each leaf recipe to the list of targets to build with sstate-cache
>> (the same way it's done for OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS).
>>
> 
> Sadly, DEPENDS is not all the dependencies of a recipe. Some dependencies
> are added via
> do_task[depends] = "recipe:do_task2"
> Those don't appear in DEPENDS but are built anyway.
> 
> Look at PACKAGE_DEPENDS for example:
> https://git.yoctoproject.org/poky/tree/meta/classes-global/package.bbclass#n232
> There are other instances.
> 
> I plan to improve the reproducibility test to include all of those with a
> suggestion from Richard, and then, going back to the doc and removing this
> "most" among other changes...
> 

I can't believe how much I'm learning from reviewing patches for the 
docs. I hope people understand that and we get more people reviewing and 
sending patches to the ML :)

I missed the [depends] thingy and was totally unaware of the other ones. 
Can you then make it explicit which dependencies we're talking about? 
i.e. the ones explicitly listed in DEPENDS (which may not be all 
dependencies, c.f. [depends] varflags, PACKAGE_DEPENDS and other 
implementations).

Thanks for the explanation and pointer, much appreciated!

Cheers,
Quentin
Yoann Congal Feb. 11, 2025, 11:34 p.m. UTC | #5
Le mar. 11 févr. 2025 à 14:57, Quentin Schulz <quentin.schulz@cherry.de> a
écrit :

> Hi Yoann,
>
> On 2/11/25 11:35 AM, Yoann Congal wrote:
> > Le lun. 10 févr. 2025 à 18:37, Quentin Schulz <quentin.schulz@cherry.de>
> a
> > écrit :
> >
> >> Hi Yoann,
> >>
> >> On 2/10/25 12:32 AM, Yoann Congal via lists.yoctoproject.org wrote:
> >>> From: Yoann Congal <yoann.congal@smile.fr>
> >>>
> >>> This documents the variable used in the "automate testing a single
> >>> recipe's reproducibility" feature [YOCTO #15701]
> >>>
> >>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> >>> ---
> >>> v2->v3: Quentin's review:
> >>> * s/target/target(s)/
> >>> * Removed Guillaume Reviewed-by (given privately)
> >>> ---
> >>>    documentation/ref-manual/variables.rst | 5 +++++
> >>>    1 file changed, 5 insertions(+)
> >>>
> >>> diff --git a/documentation/ref-manual/variables.rst
> >> b/documentation/ref-manual/variables.rst
> >>> index adbef69d8..2f1937632 100644
> >>> --- a/documentation/ref-manual/variables.rst
> >>> +++ b/documentation/ref-manual/variables.rst
> >>> @@ -5807,6 +5807,11 @@ system and gives an overview of their function
> >> and contents.
> >>>          For additional information on how this variable is used, see
> the
> >>>          initialization script.
> >>>
> >>> +   :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
> >>> +      Set build target(s) for build reproducibility testing but
> activate
> >>> +      :ref:`shared state <overview-manual/concepts:shared state
> cache>`
> >> build
> >>> +      for most dependencies. See
> >> :doc:`/test-manual/reproducible-builds`.
> >>> +
> >>
> >> What do you mean by "most dependencies"?
> >>
> >> The code I glanced at in OE-Core seems to indicate it adds all DEPENDS
> >> from each leaf recipe to the list of targets to build with sstate-cache
> >> (the same way it's done for OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS).
> >>
> >
> > Sadly, DEPENDS is not all the dependencies of a recipe. Some dependencies
> > are added via
> > do_task[depends] = "recipe:do_task2"
> > Those don't appear in DEPENDS but are built anyway.
> >
> > Look at PACKAGE_DEPENDS for example:
> >
> https://git.yoctoproject.org/poky/tree/meta/classes-global/package.bbclass#n232
> > There are other instances.
> >
> > I plan to improve the reproducibility test to include all of those with a
> > suggestion from Richard, and then, going back to the doc and removing
> this
> > "most" among other changes...
> >
>
> I can't believe how much I'm learning from reviewing patches for the
> docs. I hope people understand that and we get more people reviewing and
> sending patches to the ML :)
>
> I missed the [depends] thingy and was totally unaware of the other ones.
> Can you then make it explicit which dependencies we're talking about?
> i.e. the ones explicitly listed in DEPENDS (which may not be all
> dependencies, c.f. [depends] varflags, PACKAGE_DEPENDS and other
> implementations).
>

I can't be too explicit since I don't know all of the dependencies and this
should be a non-issue in the next version.
I took your suggestion (I hope that was one ^^) for v4.

Thanks


> Thanks for the explanation and pointer, much appreciated!
>
> Cheers,
> Quentin
>
diff mbox series

Patch

diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index adbef69d8..2f1937632 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -5807,6 +5807,11 @@  system and gives an overview of their function and contents.
       For additional information on how this variable is used, see the
       initialization script.
 
+   :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
+      Set build target(s) for build reproducibility testing but activate
+      :ref:`shared state <overview-manual/concepts:shared state cache>` build
+      for most dependencies. See :doc:`/test-manual/reproducible-builds`.
+
    :term:`OEQA_REPRODUCIBLE_TEST_PACKAGE`
       Set the package manager(s) for build reproducibility testing.
       See :yocto_git:`reproducible.py </poky/tree/meta/lib/oeqa/selftest/cases/reproducible.py>`