[PATCH v2 0/5] toaster: Add per-recipe variable view

Paolo Wattebled <[email protected]>
Newsgroups org.openembedded.lists.bitbake-devel
Message-ID <[email protected]>
Toaster currently records global build variables but does not expose the
final values associated with individual recipes.

This series collects variables defined or modified by recipes, matching
bbappends and recipe include files. It stores one compressed, build-specific
snapshot per recipe and exposes the values through a searchable and paginated
Variables tab.

The snapshots contain final expanded values and variable flags, including
PACKAGECONFIG[...] entries. Values inherited unchanged from global
configuration or classes, functions and inactive overrides are excluded.

This information is intended to provide build-specific context to tools using
Toaster as a backend, including vulnerability-assessment agents consuming the
data through MCP.

The series is split into separate changes for variable collection, database
schema, persistence, reusable table controls and the user interface.

Changes in v2:
- Split the original patch into five incremental patches.
- Cover direct assignments, variable operations and active overrides.
- Include recipe and bbappend .inc files while excluding class-only metadata.
- Preserve variable flags, including PACKAGECONFIG[...] values.
- Store one compressed snapshot per build and recipe.
- Add transactional replacement and backward-compatibility handling.
- Add extraction, persistence, pagination, searching, escaping and count tests.
- Keep the BitBake cache version at 157.

Testing:
- PATH="$PWD/bin:$PATH" PYTHONPATH=lib python3 -m unittest \
    bb.tests.cache_extra bb.tests.parse
- Focused Toaster database and view tests
- Python compilation and git diff --check

Paolo Wattebled (5):
  cache_extra: Collect recipe variable snapshots
  toaster: Add recipe variable snapshot model
  toaster: Store recipe variable snapshots
  toaster: Generalize detail table controls
  toaster: Add recipe variables view on UI

 bin/bitbake-selftest                          |   1 +
 lib/bb/cache.py                               |   2 +-
 lib/bb/cache_extra.py                         | 101 +++++++-
 lib/bb/cookerdata.py                          |   5 +-
 lib/bb/tests/cache_extra.py                   | 235 ++++++++++++++++++
 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, 770 insertions(+), 12 deletions(-)
 create mode 100644 lib/bb/tests/cache_extra.py
 create mode 100644 lib/toaster/orm/migrations/0022_recipevariable.py

--
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.