kas wrapper for Yocto BSP builds - repo tool sync, pre-flight checks, triage
Project description
bakar
kas-based BSP build orchestrator for Yocto. Wraps kas-container with manifest-driven sync, pre-flight checks, structured telemetry, and post-mortem tooling. Works with NXP i.MX (repo XML), TI Sitara (oe-layertool), bitbake-setup workspaces, and any bring-your-own kas YAML.
Features
- Multi-BSP, out of the box - NXP i.MX (
repoXML), TI Sitara (oe-layertool), bitbake-setup workspaces, meta-avocado, and any bring-your-own kas YAML, with automatic family detection. See docs/workspace.md. - Idempotent build pipeline -
doctor->sync->gen-kas->kas-containerbuild in one command, with dry-run, keep-going, and from-scratch rebuild. See docs/build.md, docs/sync.md, docs/gen-kas.md. - Pre-flight diagnostics - ~30 host/container/workspace checks with PASS/WARN/BLOCK gating and PSI throttle calibration. See docs/doctor.md.
- Live build UI - a phase-aware Rich display: a parse-progress bar, then a per-task table showing every recipe building in parallel with task-type icons, an ETA, and stuck-task highlighting (a recipe running far longer than its peers turns red). Assumes a truecolor terminal and a Nerd Font.
- Observability and post-mortem - per-run telemetry (
events.jsonl, logs, timing, disk usage), log tail, failure triage, and success reports. See docs/triage.md, docs/report.md, docs/log.md. - Reproducibility - pin floating layer SHAs, diff manifests/configs, flatten the resolved kas YAML, and pre-fetch sources for offline builds. See docs/lock.md, docs/diff.md, docs/dump.md, docs/prefetch.md.
- Build performance and robustness - ccache (per-workspace or shared), NPROC-scaled parallelism, PSI throttling, curated mirrors, persistent hash-equivalence server, and age-based sstate/ccache pruning. See docs/hashserv.md, docs/clean-cache.md.
- Shell and scripting - interactive/one-shot kas-container shell, run a command in every source repo, boot a QEMU image from the build dir. See docs/shell.md, docs/for-all.md, docs/run.md.
- Layered configuration - CLI >
BAKAR_*env > workspace.bakar.toml> userconfig.toml> BSP default, plus asettingsCRUD interface and a vendor config layer for custom board families. See docs/settings.md, docs/configuration.md. - Advanced tooling - swap the BSP-bundled bitbake for a local upstream checkout, and stress-test the bitbake parser fork race. See docs/bitbake-override.md, docs/stress-parse.md.
- Workspace scaffolding -
initwizard (interactive or--family) writes.bakar.toml. See docs/init.md.
Install
uv tool install git+https://github.com/jetm/bakar.git
Quickstart
# NXP i.MX manifest-driven build
bakar build -f imx-6.12.49-2.2.0.xml -m imx8mp-var-dart
# Bring-your-own kas YAML
bakar build my-project.yml
# Post-mortem a failed build
bakar triage
Documentation
Full command reference, workflow guides, and configuration: docs/index.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bakar-0.7.0.tar.gz.
File metadata
- Download URL: bakar-0.7.0.tar.gz
- Upload date:
- Size: 123.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22065e3b5a0d9a69d24986a7e138aa41fd0391bd4be4703c3482aaea4c3c3e5f
|
|
| MD5 |
da40a52b27d89992416eaeca376c4e6f
|
|
| BLAKE2b-256 |
e907781278c409fd0e4ad040091ecf5e6e29009519e89bc4666fd4eec6e1c3df
|
Provenance
The following attestation bundles were made for bakar-0.7.0.tar.gz:
Publisher:
publish.yml on jetm/bakar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bakar-0.7.0.tar.gz -
Subject digest:
22065e3b5a0d9a69d24986a7e138aa41fd0391bd4be4703c3482aaea4c3c3e5f - Sigstore transparency entry: 1705664904
- Sigstore integration time:
-
Permalink:
jetm/bakar@78864f08598c1eceabd95b9d9116d05dcbf1b594 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/jetm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@78864f08598c1eceabd95b9d9116d05dcbf1b594 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bakar-0.7.0-py3-none-any.whl.
File metadata
- Download URL: bakar-0.7.0-py3-none-any.whl
- Upload date:
- Size: 159.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95928a2d90ab4ba35e124c69e6524ab5bf185fd9a2e7368a3d634cb257781eac
|
|
| MD5 |
11cc072174359156a42c69abcc0c3783
|
|
| BLAKE2b-256 |
b9e653f6be75224ee1003f7191c21630396216b3cb4e8f6b61fb0e52d7fdf3a0
|
Provenance
The following attestation bundles were made for bakar-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on jetm/bakar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bakar-0.7.0-py3-none-any.whl -
Subject digest:
95928a2d90ab4ba35e124c69e6524ab5bf185fd9a2e7368a3d634cb257781eac - Sigstore transparency entry: 1705664942
- Sigstore integration time:
-
Permalink:
jetm/bakar@78864f08598c1eceabd95b9d9116d05dcbf1b594 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/jetm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@78864f08598c1eceabd95b9d9116d05dcbf1b594 -
Trigger Event:
push
-
Statement type: