[OE-core] [PATCH] buildhistory.bbclass: metadata-revs show repo parent

Trevor Woerner twoerner at gmail.com
Sat Mar 12 15:26:54 UTC 2016



On 03/12/16 06:55, Khem Raj wrote:
> On Sat, Mar 12, 2016 at 1:33 PM, Trevor Woerner <twoerner at gmail.com> wrote:
>> To me, the purpose of buildhistory's metadata-revs is to enable someone else
>> (or myself in the future) to recreate a specific build, that's why I always
>> save this file with any build artifacts. Simply saying "meta" isn't good
>> enough because it doesn't specify which repository's "meta". So the purpose
>> of this patch is to try to clarify which repositories we're talking about.
>>
>>> Before:
>>>      meta              = master:00d3fd571a8d261d065b43f5cf3076a381843984
>>>      meta-oe           = master:a1e135a499998add7575682bf53db5e02e753580
>>>      meta-gnome        = master:a1e135a499998add7575682bf53db5e02e753580
>>>      meta-rpb          = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>>      meta-96boards     = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>>      meta-qcom         = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>>      meta-browser      = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>>      meta-linaro-toolchain =
>>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>>      meta              = master:37b61b059031e3c272a929b834e12fd83f46598c
>>>      meta-poky         = master:37b61b059031e3c272a929b834e12fd83f46598c
>>>
>>> After:
>>>      openembedded-core/meta =
>>> master:00d3fd571a8d261d065b43f5cf3076a381843984
>>>      meta-openembedded/meta-oe =
>>> master:a1e135a499998add7575682bf53db5e02e753580
>>>      meta-openembedded/meta-gnome =
>>> master:a1e135a499998add7575682bf53db5e02e753580
>>>      meta-rpb          = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>>      meta-96boards     = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>>      meta-qcom         = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>>      meta-browser      = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>>      meta-linaro/meta-linaro-toolchain =
>>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>>      meta-poky/meta    = master:37b61b059031e3c272a929b834e12fd83f46598c
>>>      meta-poky/meta-poky = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>> I have a second patch, now, that will generate the following output, which I
>> think is even better:
>>
>>      git://git.openembedded.org/openembedded-core.git
>>      openembedded-core/meta = master:00d3fd571a8d261d065b43f5cf3076a381843984
>>
>>      git://git.openembedded.org/meta-openembedded
>>      meta-openembedded/meta-oe =
>> master:a1e135a499998add7575682bf53db5e02e753580
>>
>>      git://git.openembedded.org/meta-openembedded
>>      meta-openembedded/meta-gnome =
>> master:a1e135a499998add7575682bf53db5e02e753580
>>
>>      git://github.com/96boards/meta-rpb.git
>>      meta-rpb          = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>
>>      https://github.com/96boards/meta-96boards.git
>>      meta-96boards     = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>
>>      https://github.com/ndechesne/meta-qcom.git
>>      meta-qcom         = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>
>>      git://github.com/OSSystems/meta-browser.git
>>      meta-browser      = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>
>>      git://git.linaro.org/openembedded/meta-linaro.git
>>      meta-linaro/meta-linaro-toolchain =
>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>
>>      git://git.yoctoproject.org/poky
>>      meta-poky/meta    = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>>      git://git.yoctoproject.org/poky
>>      meta-poky/meta-poky = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>> Frankly, there are too many forks and clones. There are too many
>> meta-beaglebone or meta-odroid or meta-raspberrypi repositories. If six
>> months from now I want to recreate a build I've done today, I'll need to
>> know the repository, where it's from, and which commit was checked out. My
>> latest patch provides that information.
>>
>> Is this better?
> what happens if one has a local checkout forked from upstream branch ?
> it reports that one, so buildhistory is expecting you to control the repos
> e.g. when using tools like repo, it gets utterly confused since its meant
> to track local checkout SHAs not remote ones, may be your change
> can establish a better origin tracking. it would be interesting to see
> how it works with repo and when I have more than 1 remotes in a single
> repo

Here's how it handled a build that I have where the repositories are 
handled by the repo tool:

https://github.com/openembedded/openembedded-core
meta              = 
contrib/twoerner/buildhistory-patches:953046fa31617a0c53f66faacf3fa9ef88375dee

https://github.com/openembedded/meta-openembedded
../meta-openembedded/meta-oe = HEAD:dc5634968b270dde250690609f0015f881db81f2

https://github.com/openembedded/meta-openembedded
../meta-openembedded/meta-gnome = 
HEAD:dc5634968b270dde250690609f0015f881db81f2

https://github.com/96boards/meta-rpb
../meta-rpb       = HEAD:203903ca6f4e8df09bef6ea3c6e899d07eca8df9

https://github.com/96boards/meta-96boards
../meta-96boards  = HEAD:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649

http://git.linaro.org/openembedded/meta-linaro
../meta-linaro/meta-linaro-toolchain = 
HEAD:395ca11e22c26bd0c26ea1078722628ba6aa2332

https://github.com/ndechesne/meta-qcom
../meta-qcom      = HEAD:32fcda819acb8ec485d9ab05108d554f807bf75d

https://github.com/linaro-home/meta-browser
../meta-browser   = HEAD:5c00d0114c5963a178cb33f6d06181c588c03ae0


My patch simply uses "git remote -v" and takes the first line. I'll look 
into reporting multiple remotes.

Local forks of upstream repositories would simply be reported as local 
repositories. I'm not even sure what I would do on the cmdline to figure 
out that sort of repository's origin, other than to manually work 
backwards until I found something that looked sensible.

In any case, the above is an improvement?



More information about the Openembedded-core mailing list