All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>
To: "richard.purdie@linuxfoundation.org"
	<richard.purdie@linuxfoundation.org>,
	"openembedded-core@lists.openembedded.org"
	<openembedded-core@lists.openembedded.org>,
	"jasper@fancydomain.eu" <jasper@fancydomain.eu>
Cc: "martin@mko.dev" <martin@mko.dev>,
	Daniel Baumgart <Daniel.Baumgart@iris-sensing.com>,
	"bitbake-devel@lists.openembedded.org"
	<bitbake-devel@lists.openembedded.org>
Subject: Re: [bitbake-devel] [oe-core][PATCH 1/2] devtools: Initial recipe for repo 2.17.3
Date: Wed, 24 Nov 2021 16:04:12 +0000	[thread overview]
Message-ID: <8a46e343a67d81eaf9d45142a1eb6be064c4df67.camel@iris-sensing.com> (raw)
In-Reply-To: <4f23ecc6eaeb73580a90265bab560063d07856fc.camel@iris-sensing.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Richard and folks,

> The only other way I could imagine this to work would require us to
> keep the manifest file within the meta layer and do a somewhat
> "hacky"
> workaround:
> 
> It is possible to run `repo init` on a local git folder.
> As such, something like this could work:
> 
> 1) create temp folder (e.g. /tmp/repo-XXXXXXXXX)
> 2) run git init in temp folder
> 3) install manifest file into temp folder
> 4) add & commit
> 5) run repo init -u file://$temp-folder

today I discovered that repo also supports the --standalone-manifest
flag, which makes the workaround described above obsolete.
Thus, I believe supporting repo manifests from the layer repo only is
the cleanest and easiest way to implement this and we
wouldn't have to rely on cloning manifest repos during recipe parsing.

However, this would be a breaking change to the current repo fetcher
implementation, as it supports remote manifest repos.
I am pretty confident however that no one uses the arguably already
broken and unusable current repo fetcher implementation
in a production workload so this shouldn't be a major issue.

What are your thoughts on this?

- -- 
With best regards

Jasper Orschulko
DevOps Engineer

Tel. +49 30 58 58 14 265
Fax +49 30 58 58 14 999
Jasper.Orschulko@iris-sensing.com

• • • • • • • • • • • • • • • • • • • • • • • • • •

iris-GmbH
infrared & intelligent sensors
Schnellerstraße 1-5 | 12439 Berlin

https://iris-sensing.com/





On Thu, 2021-11-11 at 12:42 +0100, Jasper Orschulko wrote:
> Hi Richard,
> 
> > Even ten recipes using this will show a degradation in parsing
> > speed
> > and I do
> > get a lot of complaints when parsing slows down for any reason. The
> > user doesn't
> > expect this and it won't be visible what bitbake is doing (sitting
> > at
> > 99% parsed
> > for a period).
> > 
> > Also, the "tend to be small" implies someone will create a huge one
> > at some
> > point even if that is a bad idea for whatever reasons, I just know
> > how these
> > things end up going :(.
> 
> I believe this is something that could be addressed in the
> documentation of the repo fetcher? Something along the lines of
> "Using
> the repo fetcher can increase the time spent in the parsing phase, as
> we need to clone and inspect the manifest repository. To avoid this,
> keep the size of your manifest repository at a minimum."
> 
> When this is done, the dalay is barely noticable. We have a testsetup
> with 24 recipes and reasonable parsing speeds.
> 
> > * Does it only clone a repo in the AUTOREV case?
> 
> No, it also clones with fixed refspecs, as we want to ensure that
> each
> of the git repos referenced in the manifest also uses fixed refspecs.
> Otherwise, the sources in the background might change, while the
> recipe
> still (correctly) references the same revision of the manifest repo.
> 
> > * Could it only obtain the manifest file somehow without a clone of
> > the repo?
> 
> Unfortunately not really. git does not offer a way to list the
> content
> of a file without cloning it beforehand.
> 
> The only other way I could imagine this to work would require us to
> keep the manifest file within the meta layer and do a somewhat
> "hacky"
> workaround:
> 
> It is possible to run `repo init` on a local git folder.
> As such, something like this could work:
> 
> 1) create temp folder (e.g. /tmp/repo-XXXXXXXXX)
> 2) run git init in temp folder
> 3) install manifest file into temp folder
> 4) add & commit
> 5) run repo init -u file://$temp-folder
> 
> The repo manifest could even still be used outside of yocto, by using
> the metalayer repo as basis for the repo init: `repo init -u
> $metalayer-repo -m $path-to-manifest-file`. Not pretty, but it works.
> 
> So if cloning within the parser is a dealbreaker for you, this option
> might be worth looking into.
> 
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEE4WyPMIC5Ap4+Ooo1Ygqew07VMNUFAmGeYnwACgkQYgqew07V
MNWXFAgAkZ7+CRZadUItM+Ay8uePffysuQhlwxHaAgzx1H+4Pk/HKK9QpEy3jFWz
kODr3DPOWlf6eS+AcqpJXVYdMsTucvE34eLIWb8reFkrPQKMtxp0N6U5gqz7e+Bm
Wf4lS04tqGZzC/Ld2DOs/zEnGKEwXBRHMX/9j6YvVMYxwKjxghW2LRloWpzghduH
j0FTAp1aGKLhCQjqeEuNZRMT+rn0i8k6u8Lxel1wRHi2LNhyT3VD3NThjVL64acH
FF83jhaxQ0JxpsSn9ouvJD3wMJHi72rdfGzznuQHmFT0lOxO5AjlcIOtK3KisiAI
KQ/jEV/44WN0JO7OpmHrVyOSfPeVBA==
=H0FZ
-----END PGP SIGNATURE-----

  reply	other threads:[~2021-11-24 16:04 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-05 13:31 [oe-core][PATCH 1/2] devtools: Initial recipe for repo 2.17.3 Jasper Orschulko
2021-11-05 13:31 ` [oe-core][PATCH 2/2] base.bbclass: Add sysroot deps for repo fetcher Jasper Orschulko
2021-11-05 13:35 ` [bitbake-devel] [oe-core][PATCH 1/2] devtools: Initial recipe for repo 2.17.3 Konrad Weihmann
2021-11-05 13:47   ` Jasper Orschulko
2021-11-05 14:09     ` Jasper Orschulko
2021-11-05 14:20       ` Konrad Weihmann
2021-11-05 14:53         ` Jasper Orschulko
2021-11-05 15:34         ` Jasper Orschulko
2021-11-06  9:43       ` Richard Purdie
2021-11-09 11:26         ` Jasper Orschulko
2021-11-10 12:46           ` Richard Purdie
2021-11-10 13:52             ` Jasper Orschulko
2021-11-10 16:33               ` Richard Purdie
2021-11-11 11:42                 ` Jasper Orschulko
2021-11-24 16:04                   ` Jasper Orschulko [this message]
2021-11-10 23:55           ` Peter Kjellerstedt
2021-11-11 10:04             ` Jasper Orschulko
2021-11-11 11:34               ` Peter Kjellerstedt
2021-11-11 12:10                 ` Jasper Orschulko
2021-11-11 14:11                   ` Peter Kjellerstedt
2021-11-11 15:08                     ` Jasper Orschulko
2021-11-11 19:20                       ` Alexander Kanavin
2021-11-12 12:22                         ` Jasper Orschulko
2021-11-15 12:59                         ` Jasper Orschulko
2021-11-15 13:05                           ` Alexander Kanavin
2021-11-15 13:12                             ` Jasper Orschulko
2021-11-05 14:20 ` Alexander Kanavin
2021-11-05 15:04   ` Alexander Kanavin
2021-11-05 15:24   ` Jasper Orschulko
2021-11-05 17:46     ` Alexander Kanavin
2021-11-05 18:05       ` Jasper Orschulko
2021-11-05 18:45         ` Alexander Kanavin
2021-11-05 20:32           ` Jasper Orschulko
2021-11-06  6:39             ` Alexander Kanavin
2021-11-07  9:05 ` Richard Purdie
2021-11-08 11:55   ` Jasper Orschulko
2021-11-08 12:48     ` Fwd: " Richard Purdie
2021-11-09  9:29       ` [docs] " Quentin Schulz
2021-11-09 10:40       ` Fwd: " Michael Opdenacker
2021-11-10  8:47         ` Michael Opdenacker
2021-11-11 10:49           ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8a46e343a67d81eaf9d45142a1eb6be064c4df67.camel@iris-sensing.com \
    --to=jasper.orschulko@iris-sensing.com \
    --cc=Daniel.Baumgart@iris-sensing.com \
    --cc=bitbake-devel@lists.openembedded.org \
    --cc=jasper@fancydomain.eu \
    --cc=martin@mko.dev \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.