diff mbox series

[v2,1/4] migration/release-notes-5.1: document oeqa/selftest envvars change

Message ID 20240927220033.3941455-2-yoann.congal@smile.fr
State Superseded
Headers show
Series Document my team's commits for 5.1 | expand

Commit Message

Yoann Congal Sept. 27, 2024, 10 p.m. UTC
From: Yoann Congal <yoann.congal@smile.fr>

This covers the Poky commit:
61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir, 2024-09-10)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
v1->v2: Reviews from Quentin Schulz:
* environnement -> environment
* oeqa/selftest now only rewrite*s*
* Add exemples for the selftest change
---
 documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
 .../migration-guides/release-notes-5.1.rst        |  2 ++
 2 files changed, 17 insertions(+)

Comments

Quentin Schulz Oct. 1, 2024, 9:40 a.m. UTC | #1
Hi Yoann,

On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
> From: Yoann Congal <yoann.congal@smile.fr>
> 
> This covers the Poky commit:
> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir, 2024-09-10)
> 
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
> ---
> v1->v2: Reviews from Quentin Schulz:
> * environnement -> environment
> * oeqa/selftest now only rewrite*s*
> * Add exemples for the selftest change
> ---
>   documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>   .../migration-guides/release-notes-5.1.rst        |  2 ++
>   2 files changed, 17 insertions(+)
> 
> diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
> index b43fecc2d..4625ff0e1 100644
> --- a/documentation/migration-guides/migration-5.1.rst
> +++ b/documentation/migration-guides/migration-5.1.rst
> @@ -141,3 +141,18 @@ QEMU changes
>   Miscellaneous changes
>   ~~~~~~~~~~~~~~~~~~~~~
>   
> +-  oeqa/selftest now only rewrites environment variable paths that absolutely
> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
> +   the selftest ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
> +   still point to the ``bitbake/`` directory)
> +
> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` is an

nit: could use :term:`BB_LOGCONFIG` here since we have it defined in the 
reference manual? We could probably even avoid explaining what it means 
here (not necessarily though).

> +   environment variable containing a path that configures bitbake logs. In
> +   autobuilder, it is set as:
> +   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
> +   Note the relative path starting from the build directory to outside of it.
> +   This path is not changed by selftest anymore.
> +
> +   Environment variables containing relative paths from tested build directory
> +   to outside of the original build directory may need to be updated as they
> +   won't be changed by selftest.

selftest should be single-tick-quoted as defined as standard in the git 
repo, c.f. 
https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md

This was done by Michael but he's not the maintainer anymore so I guess 
whoever replaces him may have a different opinion, in which case 
extending or replacing it would be most welcome, is that you Antonin?

On a side note, I still wouldn't really know which variables I need to 
look after or what happens if I don't (is there an explicit error, are 
there side effects, if so, how do they show up?). But admittedly, I have 
zero experience with oeqa or selftest so people in the know probably 
know what this is talking about? In any case, I guess we can revisit 
this later on, it's not written in stone, and better have something than 
nothing :)

Cheers,
Quentin
Antonin Godard Oct. 1, 2024, 10:09 a.m. UTC | #2
Hi Quentin,

On 01/10/2024 11:40, Quentin Schulz via lists.yoctoproject.org wrote:
> Hi Yoann,
> 
> On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
>> From: Yoann Congal <yoann.congal@smile.fr>
>>
>> This covers the Poky commit:
>> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely 
>> point to builddir, 2024-09-10)
>>
>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>> ---
>> v1->v2: Reviews from Quentin Schulz:
>> * environnement -> environment
>> * oeqa/selftest now only rewrite*s*
>> * Add exemples for the selftest change
>> ---
>>   documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>>   .../migration-guides/release-notes-5.1.rst        |  2 ++
>>   2 files changed, 17 insertions(+)
>>
>> diff --git a/documentation/migration-guides/migration-5.1.rst 
>> b/documentation/migration-guides/migration-5.1.rst
>> index b43fecc2d..4625ff0e1 100644
>> --- a/documentation/migration-guides/migration-5.1.rst
>> +++ b/documentation/migration-guides/migration-5.1.rst
>> @@ -141,3 +141,18 @@ QEMU changes
>>   Miscellaneous changes
>>   ~~~~~~~~~~~~~~~~~~~~~
>> +-  oeqa/selftest now only rewrites environment variable paths that 
>> absolutely
>> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to 
>> point to
>> +   the selftest ``conf/`` directory but not 
>> ``Y=$BUILDDIR/../bitbake/`` which
>> +   still point to the ``bitbake/`` directory)
>> +
>> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` 
>> is an
> 
> nit: could use :term:`BB_LOGCONFIG` here since we have it defined in the 
> reference manual? We could probably even avoid explaining what it means 
> here (not necessarily though).

Good catch, you can indeed use :term:`BB_LOGCONFIG` and avoid explaining
its purpose.

>> +   Environment variables containing relative paths from tested build 
>> directory
>> +   to outside of the original build directory may need to be updated 
>> as they
>> +   won't be changed by selftest.
> 
> selftest should be single-tick-quoted as defined as standard in the git 
> repo, c.f. 
> https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md
> 
> This was done by Michael but he's not the maintainer anymore so I guess 
> whoever replaces him may have a different opinion, in which case 
> extending or replacing it would be most welcome, is that you Antonin

Indeed, I am slowly replacing Michael in this role and getting familiar
with the documentation details. I'm also writing the release note for
the next release at the moment (will send a series of patch this week
hopefully).

Thanks for your reviews, they also help. As for selftest, I haven't seen
it referenced with single-tick quotes elsewhere, unless you meant double
ticks for code?

> On a side note, I still wouldn't really know which variables I need to 
> look after or what happens if I don't (is there an explicit error, are 
> there side effects, if so, how do they show up?). But admittedly, I have 
> zero experience with oeqa or selftest so people in the know probably 
> know what this is talking about? In any case, I guess we can revisit 
> this later on, it's not written in stone, and better have something than 
> nothing :)

Agree with you, and having no experience as well on oeqa and selftest,
it's hard for me to also making a proper judgment.

Cheers,
Antoni
Quentin Schulz Oct. 1, 2024, 10:20 a.m. UTC | #3
Hi Antonin,

On 10/1/24 12:09 PM, Antonin Godard wrote:
> [You don't often get email from antonin.godard@bootlin.com. Learn why 
> this is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
> Hi Quentin,
> 
> On 01/10/2024 11:40, Quentin Schulz via lists.yoctoproject.org wrote:
>> Hi Yoann,
>>
>> On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
>>> From: Yoann Congal <yoann.congal@smile.fr>
>>>
>>> This covers the Poky commit:
>>> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely
>>> point to builddir, 2024-09-10)
>>>
>>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>>> ---
>>> v1->v2: Reviews from Quentin Schulz:
>>> * environnement -> environment
>>> * oeqa/selftest now only rewrite*s*
>>> * Add exemples for the selftest change
>>> ---
>>>   documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>>>   .../migration-guides/release-notes-5.1.rst        |  2 ++
>>>   2 files changed, 17 insertions(+)
>>>
>>> diff --git a/documentation/migration-guides/migration-5.1.rst
>>> b/documentation/migration-guides/migration-5.1.rst
>>> index b43fecc2d..4625ff0e1 100644
>>> --- a/documentation/migration-guides/migration-5.1.rst
>>> +++ b/documentation/migration-guides/migration-5.1.rst
>>> @@ -141,3 +141,18 @@ QEMU changes
>>>   Miscellaneous changes
>>>   ~~~~~~~~~~~~~~~~~~~~~
>>> +-  oeqa/selftest now only rewrites environment variable paths that
>>> absolutely
>>> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to
>>> point to
>>> +   the selftest ``conf/`` directory but not
>>> ``Y=$BUILDDIR/../bitbake/`` which
>>> +   still point to the ``bitbake/`` directory)
>>> +
>>> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG``
>>> is an
>>
>> nit: could use :term:`BB_LOGCONFIG` here since we have it defined in the
>> reference manual? We could probably even avoid explaining what it means
>> here (not necessarily though).
> 
> Good catch, you can indeed use :term:`BB_LOGCONFIG` and avoid explaining
> its purpose.
> 
>>> +   Environment variables containing relative paths from tested build
>>> directory
>>> +   to outside of the original build directory may need to be updated
>>> as they
>>> +   won't be changed by selftest.
>>
>> selftest should be single-tick-quoted as defined as standard in the git
>> repo, c.f.
>> https://eur02.safelinks.protection.outlook.com/? 
>> url=https%3A%2F%2Fgit.yoctoproject.org%2Fyocto- 
>> docs%2Ftree%2Fdocumentation%2Fstandards.md&data=05%7C02%7Cquentin.schulz%40cherry.de%7Cd86b9396dbb24e6bb9a408dce2012bb1%7C5e0e1b5221b54e7b83bb514ec460677e%7C0%7C0%7C638633741917208894%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=MqJFRj5%2FMNumviLU168shE0bsiL84%2B5BqcPvHKV9q5M%3D&reserved=0
>>
>> This was done by Michael but he's not the maintainer anymore so I guess
>> whoever replaces him may have a different opinion, in which case
>> extending or replacing it would be most welcome, is that you Antonin
> 
> Indeed, I am slowly replacing Michael in this role and getting familiar
> with the documentation details. I'm also writing the release note for

Welcome to the community! And thanks for taking maintainership of the 
docs, it's always nice to have someone looking after it, regardless of 
the project.

> the next release at the moment (will send a series of patch this week
> hopefully).
> 
> Thanks for your reviews, they also help. As for selftest, I haven't seen
> it referenced with single-tick quotes elsewhere, unless you meant double
> ticks for code?
> 

I think what we discussed at the time with Michael was basically that 
anything that isn't an English word, or is but shouldn't be understood 
as one in the context (e.g. truncate as in the tool and not the English 
word) should be highlighted so that people don't confuse it with the 
English word.

I think this is what we meant in the standards file here: 
https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md#n79

Note that these were rules Michael/we came up with for new contributions 
to the docs, because we knew updating everything to match the standards 
would take a long time.

I still remember reading every page of the docs during the migration to 
Sphinx and I am not ready to do this again any time soon :) So patching 
when stumbling upon things that don't match the standard while reading 
the docs and enforcing it for new contributions made sense at the time.

Anyway, that's process and standards, they need to make sense to the 
maintainer and the community, and can evolve over time, so up to you, 
just putting out there the history and "current" state of affairs :)

Since 5.1 is supposed to be out soonish, maybe something to be picky 
about after the release is done ;) Up to you!

Cheers,
Quentin
Antonin Godard Oct. 1, 2024, 10:30 a.m. UTC | #4
On 01/10/2024 12:20, Quentin Schulz wrote:
>> Thanks for your reviews, they also help. As for selftest, I haven't seen
>> it referenced with single-tick quotes elsewhere, unless you meant double
>> ticks for code?
>>
> 
> I think what we discussed at the time with Michael was basically that 
> anything that isn't an English word, or is but shouldn't be understood 
> as one in the context (e.g. truncate as in the tool and not the English 
> word) should be highlighted so that people don't confuse it with the 
> English word.
> 
> I think this is what we meant in the standards file here: 
> https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md#n79

Gotcha, single-quote it is indeed.

> Note that these were rules Michael/we came up with for new contributions 
> to the docs, because we knew updating everything to match the standards 
> would take a long time.
> 
> I still remember reading every page of the docs during the migration to 
> Sphinx and I am not ready to do this again any time soon :) So patching 
> when stumbling upon things that don't match the standard while reading 
> the docs and enforcing it for new contributions made sense at the time.
> 
> Anyway, that's process and standards, they need to make sense to the 
> maintainer and the community, and can evolve over time, so up to you, 
> just putting out there the history and "current" state of affairs :)
> 
> Since 5.1 is supposed to be out soonish, maybe something to be picky 
> about after the release is done ;) Up to you!

Thanks a lot for these details and historical decisions! I will keep 
that in mind. I am okay with being picky on this, as it improves the 
overall readability of the doc. I'm trying to do that in the release 
note I'm editing atm.

Cheers,
Antonin
Yoann Congal Oct. 2, 2024, 8:57 a.m. UTC | #5
Le 01/10/2024 à 11:40, Quentin Schulz a écrit :
> Hi Yoann,
> 
> On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
>> From: Yoann Congal <yoann.congal@smile.fr>
>>
>> This covers the Poky commit:
>> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir, 2024-09-10)
>>
>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>> ---
>> v1->v2: Reviews from Quentin Schulz:
>> * environnement -> environment
>> * oeqa/selftest now only rewrite*s*
>> * Add exemples for the selftest change
>> ---
>>   documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>>   .../migration-guides/release-notes-5.1.rst        |  2 ++
>>   2 files changed, 17 insertions(+)
>>
>> diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
>> index b43fecc2d..4625ff0e1 100644
>> --- a/documentation/migration-guides/migration-5.1.rst
>> +++ b/documentation/migration-guides/migration-5.1.rst
>> @@ -141,3 +141,18 @@ QEMU changes
>>   Miscellaneous changes
>>   ~~~~~~~~~~~~~~~~~~~~~
>>   +-  oeqa/selftest now only rewrites environment variable paths that absolutely
>> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
>> +   the selftest ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
>> +   still point to the ``bitbake/`` directory)
>> +
>> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` is an
> 
> nit: could use :term:`BB_LOGCONFIG` here since we have it defined in the reference manual? We could probably even avoid explaining what it means here (not necessarily though).
> 
>> +   environment variable containing a path that configures bitbake logs. In
>> +   autobuilder, it is set as:
>> +   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
>> +   Note the relative path starting from the build directory to outside of it.
>> +   This path is not changed by selftest anymore.
>> +
>> +   Environment variables containing relative paths from tested build directory
>> +   to outside of the original build directory may need to be updated as they
>> +   won't be changed by selftest.
> 
> selftest should be single-tick-quoted as defined as standard in the git repo, c.f. https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md
> 
> This was done by Michael but he's not the maintainer anymore so I guess whoever replaces him may have a different opinion, in which case extending or replacing it would be most welcome, is that you Antonin?


> On a side note,
I've tried to make it clearer, I'll answer your questions inline maybe we'll find a better wording?

> I still wouldn't really know which variables I need to look after

That can be any environment variable containing the build directory path but relatively pointing to outside of the build dir (like $BUILD_DIR/../bitbake)

> or what happens if I don't (is there an explicit error, are there side effects, if so, how do they show up?).

It depends on how this variable is used.

Ultimately, there was a bug (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15241 but the bug is more global than just BB_LOGCONFIG) and the workarounds that users may have been used are not needed anymore or broken.

> But admittedly, I have zero experience with oeqa or selftest so people in the know probably know what this is talking about? In any case, I guess we can revisit this later on, it's not written in stone, and better have something than nothing :)
Quentin Schulz Oct. 2, 2024, 9:35 a.m. UTC | #6
Hi Yoann,

On 10/2/24 10:57 AM, Yoann Congal wrote:
> 
> 
> Le 01/10/2024 à 11:40, Quentin Schulz a écrit :
>> Hi Yoann,
>>
>> On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
>>> From: Yoann Congal <yoann.congal@smile.fr>
>>>
>>> This covers the Poky commit:
>>> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir, 2024-09-10)
>>>
>>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>>> ---
>>> v1->v2: Reviews from Quentin Schulz:
>>> * environnement -> environment
>>> * oeqa/selftest now only rewrite*s*
>>> * Add exemples for the selftest change
>>> ---
>>>    documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>>>    .../migration-guides/release-notes-5.1.rst        |  2 ++
>>>    2 files changed, 17 insertions(+)
>>>
>>> diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
>>> index b43fecc2d..4625ff0e1 100644
>>> --- a/documentation/migration-guides/migration-5.1.rst
>>> +++ b/documentation/migration-guides/migration-5.1.rst
>>> @@ -141,3 +141,18 @@ QEMU changes
>>>    Miscellaneous changes
>>>    ~~~~~~~~~~~~~~~~~~~~~
>>>    +-  oeqa/selftest now only rewrites environment variable paths that absolutely
>>> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
>>> +   the selftest ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
>>> +   still point to the ``bitbake/`` directory)
>>> +
>>> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` is an
>>
>> nit: could use :term:`BB_LOGCONFIG` here since we have it defined in the reference manual? We could probably even avoid explaining what it means here (not necessarily though).
>>
>>> +   environment variable containing a path that configures bitbake logs. In
>>> +   autobuilder, it is set as:
>>> +   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
>>> +   Note the relative path starting from the build directory to outside of it.
>>> +   This path is not changed by selftest anymore.
>>> +
>>> +   Environment variables containing relative paths from tested build directory
>>> +   to outside of the original build directory may need to be updated as they
>>> +   won't be changed by selftest.
>>
>> selftest should be single-tick-quoted as defined as standard in the git repo, c.f. https://git.yoctoproject.org/yocto-docs/tree/documentation/standards.md
>>
>> This was done by Michael but he's not the maintainer anymore so I guess whoever replaces him may have a different opinion, in which case extending or replacing it would be most welcome, is that you Antonin?
> 
> 
>> On a side note,
> I've tried to make it clearer, I'll answer your questions inline maybe we'll find a better wording?
> 
>> I still wouldn't really know which variables I need to look after
> 
> That can be any environment variable containing the build directory path but relatively pointing to outside of the build dir (like $BUILD_DIR/../bitbake)
> 
>> or what happens if I don't (is there an explicit error, are there side effects, if so, how do they show up?).
> 
> It depends on how this variable is used.
> 
> Ultimately, there was a bug (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15241 but the bug is more global than just BB_LOGCONFIG) and the workarounds that users may have been used are not needed anymore or broken.
> 

Note: I don't want this discussion to prevent merging this patch in time 
for Styhead release, we can always improve later.

Are those environment variables necessarily in the **shell** environment 
or are we also talking about variables that could be defined in bitbake 
conf files for example?

If they are shell environment variables, I believe (hope?) selftest/oeqa 
can only access them if they are part of the BB_ENV_PASSTHROUGH and 
BB_ENV_PASSTHROUGH_ADDITIONS variables? If that is the case, then we can 
simply tell people to look for relative paths in all variables listed in 
BB_ENV_PASSTHROUGH (via bitbake-getvar for example)?

Cheers,
Quentin
Yoann Congal Oct. 3, 2024, 12:23 p.m. UTC | #7
Hi,

Le 02/10/2024 à 11:35, Quentin Schulz a écrit :
> On 10/2/24 10:57 AM, Yoann Congal wrote:
>> Le 01/10/2024 à 11:40, Quentin Schulz a écrit :
>>> On 9/28/24 12:00 AM, Yoann Congal via lists.yoctoproject.org wrote:
>>>> This covers the Poky commit:
>>>> 61186bc98a5 (oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir, 2024-09-10)
>>>>
>>>> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
>>>> ---
>>>> v1->v2: Reviews from Quentin Schulz:
>>>> * environnement -> environment
>>>> * oeqa/selftest now only rewrite*s*
>>>> * Add exemples for the selftest change
>>>> ---
>>>>    documentation/migration-guides/migration-5.1.rst  | 15 +++++++++++++++
>>>>    .../migration-guides/release-notes-5.1.rst        |  2 ++
>>>>    2 files changed, 17 insertions(+)
>>>>
>>>> diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
>>>> index b43fecc2d..4625ff0e1 100644
>>>> --- a/documentation/migration-guides/migration-5.1.rst
>>>> +++ b/documentation/migration-guides/migration-5.1.rst
>>>> @@ -141,3 +141,18 @@ QEMU changes
>>>>    Miscellaneous changes
>>>>    ~~~~~~~~~~~~~~~~~~~~~
>>>>    +-  oeqa/selftest now only rewrites environment variable paths that absolutely
>>>> +   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
>>>> +   the selftest ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
>>>> +   still point to the ``bitbake/`` directory)
>>>> +
>>>> +   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` is an
>>>> +   environment variable containing a path that configures bitbake logs. In
>>>> +   autobuilder, it is set as:
>>>> +   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
>>>> +   Note the relative path starting from the build directory to outside of it.
>>>> +   This path is not changed by selftest anymore.
>>>> +
>>>> +   Environment variables containing relative paths from tested build directory
>>>> +   to outside of the original build directory may need to be updated as they
>>>> +   won't be changed by selftest.
>>> On a side note,
>> I've tried to make it clearer, I'll answer your questions inline maybe we'll find a better wording?
>>
>>> I still wouldn't really know which variables I need to look after
>>
>> That can be any environment variable containing the build directory path but relatively pointing to outside of the build dir (like $BUILD_DIR/../bitbake)
>>
>>> or what happens if I don't (is there an explicit error, are there side effects, if so, how do they show up?).
>>
>> It depends on how this variable is used.
>>
>> Ultimately, there was a bug (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15241 but the bug is more global than just BB_LOGCONFIG) and the workarounds that users may have been used are not needed anymore or broken.
>>
> 
> Note: I don't want this discussion to prevent merging this patch in time for Styhead release, we can always improve later.

I've changed the subject hopefully, this will break the thread.

> Are those environment variables necessarily in the **shell** environment or are we also talking about variables that could be defined in bitbake conf files for example?

The change only impact the shell environment variables (No bitbake variables)

> If they are shell environment variables, I believe (hope?) selftest/oeqa can only access them if they are part of the BB_ENV_PASSTHROUGH and BB_ENV_PASSTHROUGH_ADDITIONS variables?

Good idea but I just tested and every environment variables are rewritten if needed, no BB_ENV_PASSTHROUGH* filter here.

oe-selftest is its own application. BB_ENV_PASSTHROUGH* only impacts environment variables in bitbake recipes.

> If that is the case, then we can simply tell people to look for relative paths in all variables listed in BB_ENV_PASSTHROUGH (via bitbake-getvar for example)?
So, that is sadly not the case.

I can't see how to make
> "Environment variables containing relative paths from tested build directory to outside of the original build directory may need to be updated as they won't be changed by selftest."
more precise/efficient/comfortable for the reader. Maybe explaining what "tested build" and "original build directory" are?
diff mbox series

Patch

diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
index b43fecc2d..4625ff0e1 100644
--- a/documentation/migration-guides/migration-5.1.rst
+++ b/documentation/migration-guides/migration-5.1.rst
@@ -141,3 +141,18 @@  QEMU changes
 Miscellaneous changes
 ~~~~~~~~~~~~~~~~~~~~~
 
+-  oeqa/selftest now only rewrites environment variable paths that absolutely
+   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
+   the selftest ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
+   still point to the ``bitbake/`` directory)
+
+   For example (taken from autobuilder environment): ``BB_LOGCONFIG`` is an
+   environment variable containing a path that configures bitbake logs. In
+   autobuilder, it is set as:
+   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
+   Note the relative path starting from the build directory to outside of it.
+   This path is not changed by selftest anymore.
+
+   Environment variables containing relative paths from tested build directory
+   to outside of the original build directory may need to be updated as they
+   won't be changed by selftest.
diff --git a/documentation/migration-guides/release-notes-5.1.rst b/documentation/migration-guides/release-notes-5.1.rst
index 32cb2de2b..c2600b07f 100644
--- a/documentation/migration-guides/release-notes-5.1.rst
+++ b/documentation/migration-guides/release-notes-5.1.rst
@@ -26,6 +26,8 @@  New Features / Enhancements in 5.1
 
 -  Testing:
 
+   -  oeqa/selftest: Only rewrite envvars paths that absolutely point to builddir
+
 -  Utility script changes:
 
 -  BitBake improvements: