Skip to main content

kas wrapper for Yocto BSP builds - repo tool sync, pre-flight checks, triage

Project description

bakar

CI PyPI Python License

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.

bakar build UI

Features

  • Multi-BSP, out of the box - NXP i.MX (repo XML), 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-container build 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 > user config.toml > BSP default, plus a settings CRUD 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 - init wizard (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bakar-0.8.0.tar.gz (127.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bakar-0.8.0-py3-none-any.whl (163.9 kB view details)

Uploaded Python 3

File details

Details for the file bakar-0.8.0.tar.gz.

File metadata

  • Download URL: bakar-0.8.0.tar.gz
  • Upload date:
  • Size: 127.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bakar-0.8.0.tar.gz
Algorithm Hash digest
SHA256 3a4886df67c530e1684d5c2d6f124065e85f6c6b3de53845895fb90d60ed7503
MD5 6cd10bb21a4170d986cef27902143c22
BLAKE2b-256 e69e227b40f9dee89b1cf0855bb36e850a40b9b4aa85694003a3c67c8019a15c

See more details on using hashes here.

Provenance

The following attestation bundles were made for bakar-0.8.0.tar.gz:

Publisher: publish.yml on jetm/bakar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bakar-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: bakar-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 163.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bakar-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93a44aa53ea7403a9c5915476ccf7807efef7f6946b54e40e99c0ca109551f12
MD5 97a55aceb65c8b254622a1bea7d553b4
BLAKE2b-256 358bf6c2fbd87f37ac02b9f47fd9bd5a8b0d0bab71a745d980b3a5395cc4da92

See more details on using hashes here.

Provenance

The following attestation bundles were made for bakar-0.8.0-py3-none-any.whl:

Publisher: publish.yml on jetm/bakar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page