# Changelog

All notable changes to **ecu-framework** are documented in this file.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

The single source of truth for the current version is `[project.version]` in
`pyproject.toml`; at runtime it is exposed as `ecu_framework.__version__`.

## [Unreleased]

### Added
- `pyproject.toml` — the framework is now `pip install -e .`-able.
- Top-level `ecu_framework.__version__` is read from installed package metadata
  via `importlib.metadata`, with a `"0.0.0+local"` fallback for source checkouts
  that have not been `pip install`-ed.

### Removed
- Per-subpackage `__version__` strings on `lin`, `power`, `flashing`. Versioning
  is centralized on the distribution; subpackages no longer carry their own.

## [0.1.0] - 2026-05-14

Initial tagged baseline. The framework already supports:

- LIN abstraction (`LinInterface`, `LinFrame`) with mock, MUM, and deprecated BabyLIN adapters
- Owon PSU control with cross-platform serial-port resolution
- UDS-over-LIN flashing scaffold (`HexFlasher`)
- Pytest plugin: requirement traceability, HTML report metadata, CI summary
- LDF parsing helpers and generated per-frame `pack`/`unpack` APIs
- Raspberry Pi deployment recipe and a Docker image for mock-only CI
