- Added .dockerignore to exclude unnecessary files from Docker context. - Updated Makefile to include a new setup-regression target for installing dependencies for all PR PDK profiles. - Enhanced README with installation instructions for Docker and Nix environments. - Created Dockerfile for a lock-pinned Ubuntu 22.04 development image. - Added entrypoint script for Docker container to set up the environment. - Introduced flake.lock and flake.nix for Nix package management. - Updated dependency_lock.py to validate Nix inputs and container images in the lock file. - Implemented development_environment.py for managing the development environment setup. - Enhanced package.py to include container components in the SBOM. - Added tests to ensure the development environment contract is lock-pinned and validate container and Nix environment files.
Build and Quality Scripts
This directory contains the Python implementation of setup, dependency locking, build manifests, flow execution, simulation checks, regression orchestration, quality checks, metrics, packaging, and cleanup.
Scripts are part of the build contract. Prefer existing helpers over ad-hoc
shell behavior, preserve structured JSON results, and keep setup/download
behavior controlled by config/dependencies.lock.json.
development_environment.py is the shared Docker, Nix, and manual bootstrap
entry point. It installs only the checksum-verified open-source tool bundles and
hash-pinned Python dependencies; project-local PDK and source setup remains under
the existing Make targets.
publish_fatfs_artifact.sh is the manual release helper for the lock-pinned
FatFs R0.16 archive. It verifies the archive, GitHub authentication, release
absence, and the published asset checksum before reporting the checksum-pinned
URL.
parse_performance_log.py converts the APP=benchmark UART PERF records
into meta/performance.json. The parser requires the terminal
PERF_BENCHMARK_PASS marker and deliberately does not alter the common
simulation success-marker policy.
Update or add tests in ../tests for script behavior. Run
ruff check . and python3 -m pytest -q; build-flow changes also require the
relevant dry-run or regression profile from AGENTS.md.