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 |
Reviewed-by: Guillaume Swaenepoel <guillaume.swaenepoel@smile.fr>
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
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 >
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
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 --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>`