From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: paolo.wattebled@savoirfairelinux.com,
bitbake-devel@lists.openembedded.org
Subject: Re: [bitbake-devel] [PATCH] toaster: Add recipe variables view
Date: Wed, 12 Aug 2026 21:34:24 +0100 [thread overview]
Message-ID: <2434d54e4295573c9632a1fbcd0cef7ae6a0d413.camel@linuxfoundation.org> (raw)
In-Reply-To: <20260812150448.2343308-1-paolo.wattebled@savoirfairelinux.com>
On Wed, 2026-08-12 at 11:04 -0400, Paolo Wattebled via lists.openembedded.org wrote:
> Toaster records global build variables but does not expose the final
> values associated with individual recipes.
>
> Collect variables defined or modified by recipes and their bbappends,
> resolve active overrides and expansions, and store one compressed JSON
> snapshot in the database for each build and recipe. Keep the variable
> count separately to avoid decompressing snapshots in recipe-list
> queries.
>
> Expose the values through a searchable and paginated Variables tab and
> show their counts in the built-recipes table and recipe package view.
> Preserve compatibility with older dependency payloads and invalidate
> stale BitBake caches after extending the cached recipe information.
>
> Tests cover variable collection, cache transport, database persistence,
> backward compatibility, searching, pagination, escaping, and counts.
>
> AI-Generated: Uses GitHub Copilot and OpenCode with GPT-5.6 Sol
> Signed-off-by: Paolo Wattebled <paolo.wattebled@savoirfairelinux.com>
> ---
> bin/bitbake-selftest | 1 +
> lib/bb/cache.py | 2 +-
> lib/bb/cache_extra.py | 66 +++++++-
> lib/bb/cooker.py | 6 +-
> lib/bb/tests/cache_extra.py | 141 ++++++++++++++++
> lib/bb/ui/buildinfohelper.py | 21 ++-
> .../orm/migrations/0022_recipevariable.py | 27 +++
> lib/toaster/orm/models.py | 10 ++
> lib/toaster/tests/db/test_db.py | 101 ++++++++++++
> lib/toaster/tests/views/test_views.py | 155 +++++++++++++++++-
> lib/toaster/toastergui/buildtables.py | 11 +-
> .../templates/detail_pagination_bottom.html | 4 +-
> .../templates/detail_search_header.html | 2 +-
> lib/toaster/toastergui/templates/recipe.html | 32 ++++
> .../toastergui/templates/recipe_packages.html | 7 +
> lib/toaster/toastergui/views.py | 68 +++++++-
> 16 files changed, 642 insertions(+), 12 deletions(-)
> create mode 100644 lib/bb/tests/cache_extra.py
> create mode 100644 lib/toaster/orm/migrations/0022_recipevariable.py
At this point you're basically dumping out the entire datastore for
every possible recipe. Due to the size of the data, I suspect it is
just as expensive to reparse as it is to read the stored compressed
data and it isn't really a cache any more. The presence of that data
will slow the rest of the system down.
Have you looked into the performance (in speed, memory and disk space)
implications of this?
Also, do you know people actively using toaster?
Cheers,
Richard
next prev parent reply other threads:[~2026-08-12 20:34 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-12 15:04 [PATCH] toaster: Add recipe variables view Paolo Wattebled
2026-08-12 20:34 ` Richard Purdie [this message]
2026-08-13 15:31 ` [bitbake-devel] " Paolo Wattebled
2026-08-13 15:58 ` Richard Purdie
2026-08-14 14:31 ` Paolo Wattebled
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=2434d54e4295573c9632a1fbcd0cef7ae6a0d413.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
--cc=paolo.wattebled@savoirfairelinux.com \
/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.