Skip to content

BSP Registry Tools v1

Latest

Choose a tag to compare

@miketsukerman miketsukerman released this 04 May 13:29

This release is a major expansion of bsp-registry-tools, evolving it from a basic BSP registry CLI into a more complete platform for registry composition, remote management, visualization, server APIs, cloud artifact workflows, HIL/LAVA testing, and shell completions.

Highlights

  • Added named remote management with bsp remotes
  • Added registry splitting via top-level include
  • Added tree view with bsp tree
  • Added HTTP server mode with REST + GraphQL
  • Added artifact deploy/gather workflows for Azure Blob Storage and AWS S3
  • Added HIL/LAVA test submission with Robot Framework support
  • Added shell completions for Bash/Zsh/Fish/tcsh
  • Introduced schema v2.0 for the BSP registry model
  • Expanded Python API and internal architecture substantially

New features

Registry and remote management

  • Added persistent named remotes:
    • bsp remotes add/remove/rm/rename/set-url/show
    • stored in ~/.config/bsp/remotes.yaml
  • Added support for multiple remotes and multi-registry loading
  • Added explicit remote filtering in commands like list and tree
  • Added top-level include: support to split registries across multiple YAML files
  • Added circular include detection and deep merge behavior for included files

Registry schema v2.0

  • Migrated from a flat v1 registry model to a richer v2 model with:
    • devices
    • releases
    • features
    • frameworks
    • distro
    • vendors
    • optional named bsp presets
  • Added support for:
    • named environments
    • vendor overrides
    • SoC-vendor overrides
    • vendor sub-releases
    • framework-specific overrides
    • preset-local targets
    • preset-local local_conf
    • testing and deployment configuration in presets

CLI enhancements

  • Added new commands:
    • tree
    • server
    • deploy
    • gather
    • test
    • remotes
    • completions
  • Expanded list to support:
    • bsp list devices
    • bsp list releases
    • bsp list features
    • bsp list distros
  • Added component-based workflows:
    • bsp build --device <device> --release <release>
    • bsp export --device <device> --release <release>
    • bsp shell --device <device> --release <release>
    • bsp deploy/gather/test --device ... --release ...
  • Added new build options:
    • --feature
    • --target
    • --task
    • --path
    • --deploy
    • --test
    • --wait

Tree visualization

  • Added bsp tree to render registry hierarchy
  • Supports:
    • default view
    • --compact
    • --full
  • Shows frameworks, distros, releases, devices, features, presets, and overrides

Server mode

  • Added bsp server using FastAPI
  • Exposes:
    • REST API under /api/v1/...
    • GraphQL API under /graphql
    • Swagger UI under /docs
    • ReDoc under /redoc

Artifact deployment and retrieval

  • Added bsp deploy to upload artifacts
  • Added bsp gather to download artifacts
  • Supports:
    • Azure Blob Storage
    • AWS S3
  • Added deploy config support:
    • provider
    • container/bucket
    • prefix templates
    • archive bundling
    • manifests
    • dry-run mode

HIL / LAVA integration

  • Added bsp test command
  • Added optional --test flow in bsp build
  • Added:
    • LAVA REST client
    • job builder with Jinja2 templates
    • Robot Framework suite integration
    • wait/polling support
    • artifact URL overrides

Shell completions

  • Added completion support for:
    • Bash
    • Zsh
    • Fish
    • tcsh
  • Added dynamic completions for presets, devices, releases, features, and remotes

Documentation

  • README significantly expanded with:
    • new features
    • new CLI reference
    • shell completions
    • server mode
    • deployment/gather workflows
    • HIL/LAVA testing
    • schema v2 examples
  • Added new docs:
    • docs/registry-v2.md
    • docs/registry-v1.md
    • docs/migration-v1-to-v2.md
    • docs/server.md
    • docs/artifact-deployment.md

Internal / Python API changes

  • Added new modules/classes including:
    • resolver.py / V2Resolver
    • remotes_manager.py
    • registry_fetcher multi-remote support
    • deployer.py
    • gatherer.py
    • lava_client.py
    • lava_job_builder.py
    • storage/ backends for Azure and AWS
    • server/ package for REST and GraphQL
    • completions.py
  • Expanded public exports in bsp/__init__.py
  • BspManager now supports:
    • multi-registry mode
    • component-based build/export/shell
    • deploy/gather/test flows
    • tree/list helpers for new schema

Examples and test coverage

  • Reworked examples/ to reflect the new v2 schema
  • Added:
    • split registry examples
    • Yocto and Isar layouts
    • LAVA job template example
    • vendor/device/distro/release examples
  • Test suite expanded substantially for:
    • v2 schema
    • frameworks/distros
    • vendor overrides
    • feature overrides
    • copy handling
    • named environments
    • multi-release presets
    • LAVA config/env support

Dependency and packaging changes

  • Core package now includes additional dependencies:
    • requests
    • jinja2
  • Added optional extras:
    • server
    • azure
    • aws
    • deploy
    • completions
  • Packaging updated to include bsp.server

CI changes

  • Updated workflows to:
    • install package in editable mode / via pip install -e .
    • expand CLI integration coverage
    • update expected example preset names in CLI tests

Breaking / notable changes

  • Registry format is now centered on schema v2.0
  • README and examples now reflect v2 concepts rather than the older flat BSP-only schema
  • CLI surface area expanded significantly; some workflows now prefer component-based or preset-based resolution
  • Package version in pyproject.toml moved from 0.0.2.3 to 0.1.0.0 in the diff, despite the compare target being v1.0.0