Files
py-dvt-ate/CHANGELOG.md
Kai Chappell d0c8135fff
All checks were successful
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 18s
CI / Test (push) Successful in 36s
CI / Release (push) Successful in 6s
Release v0.1.0
2025-12-04 13:18:17 +00:00

6.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.1.0] - 2025-12-04

Added

  • Streamlit Dashboard Enhancement (Sprint 17)
    • HAL-based instrument control (no direct physics access)
    • Test execution page for running TempCo characterisation
    • Results viewer page with filtering and historical data
    • Form-based parameter controls preventing UI clunkiness
    • Live simulation charts with auto-start
  • End-to-end integration tests covering full workflow
  • Updated README with installation and usage instructions
  • Proprietary licence

Changed

  • Integration tests now run 100x faster with simulation time scaling
  • Removed confusing pause/clear chart buttons from dashboard

Fixed

  • CI release workflow now creates proper releases with changelog description

Technical

  • Dashboard uses InstrumentFactory and InstrumentSet abstraction
  • Embedded SimulationServer with threading synchronisation
  • SQLite repository close() method for Windows file handle cleanup
  • 259 unit tests, 12 integration tests all passing
  • Coverage: 100% on core physics/instrument modules

[0.1.0-beta.2] - 2025-12-03

Added

  • Test Executive Framework (Sprint 14)
    • TestContext dataclass providing runtime context for tests
    • ITest abstract base class defining test interface
    • TestLogger for recording measurements, results, and events
    • LimitChecker for evaluating pass/fail against specification limits
    • TestRunner for orchestrating test execution
    • SQLite-based TestRepository for persisting test data
    • Parquet measurement storage for efficient time-series data
  • DVT Test Implementation (Sprint 15)
    • BaseDVTTest providing common test utilities
    • TempCo characterisation test (temperature coefficient measurement)
    • Temperature sweep with automatic thermal settling
    • Linear regression TempCo calculation (ppm/°C)
    • Comprehensive integration tests for end-to-end validation

Technical

  • Test framework supports data logging, limit evaluation, and result persistence
  • TempCo test demonstrates full end-to-end workflow: configure instruments → sweep temperature → measure → calculate → evaluate
  • All framework and test components fully type-checked and linted

[0.1.0-beta.1] - 2025-12-02

Added

  • Hardware Abstraction Layer (HAL) with instrument interface protocols
    • IThermalChamber protocol with temperature control methods
    • IPowerSupply protocol with voltage/current control and measurement
    • IMultimeter protocol with DC voltage, current, and resistance measurement
  • Instrument drivers implementing HAL interfaces
    • ThermalChamberDriver implements IThermalChamber
    • PowerSupplyDriver implements IPowerSupply
    • MultimeterDriver implements IMultimeter
  • Instrument factory pattern for backend abstraction
    • InstrumentSet dataclass containing chamber, PSU, and DMM
    • InstrumentConfig for specifying backend (simulator/pyvisa) and connection details
    • InstrumentFactory.create() for creating instrument sets from configuration
  • Transport layer abstraction
    • Transport ABC defining connect/disconnect/read/write/query interface
    • TCPTransport implementation for TCP/IP connections
  • Comprehensive test suite for HAL (16 tests)
    • Interface implementation verification
    • Factory pattern testing with mocked backends
    • Configuration validation

Changed

  • Drivers now explicitly inherit from interface ABCs for maximum type safety
  • Moved InstrumentServer to instruments/transport for better architecture

Technical

  • ABC-based interfaces ensure compile-time interface compliance
  • Factory pattern enables seamless switching between simulated and real hardware
  • All HAL components fully type-checked with mypy strict mode

[0.1.0-alpha.3] - 2025-12-02

Added

  • Async TCP server for exposing virtual instruments over network
  • InstrumentServer class with multi-port, multi-client support
  • Line-based SCPI protocol (newline-terminated commands/responses)
  • SimulationServer wiring physics engine to all virtual instruments
  • CLI serve command to start simulation server with configurable ports
  • Integration tests for TCP server and instrument connectivity

Infrastructure

  • SCPI foundation (Sprint 5): command parser with IEEE 488.2 support
  • Virtual instrument base class with command dispatch
  • Thermal chamber simulator (TEMP:SETPOINT, TEMP:ACTUAL?, TEMP:STAB?)
  • Power supply simulator (VOLT, CURR, OUTP, MEAS commands)
  • Multimeter simulator (MEAS:VOLT:DC?, MEAS:CURR:DC?, CONF, READ?)

[0.1.0-alpha.2] - 2025-12-02

Added

  • Streamlit dashboard for interactive physics visualisation
  • Real-time temperature charts (chamber, case, junction)
  • Current state metrics display (voltages, currents, power, temperatures)
  • Interactive controls in sidebar:
    • Temperature setpoint slider (-40°C to 125°C)
    • Input voltage slider (0-12V)
    • Load current slider (0-500mA)
    • Output enable toggle
    • Start/Stop/Reset simulation buttons
  • Self-heating demonstration panel with:
    • Junction-case and case-ambient temperature rise display
    • Power dissipation chart
    • Thermal coupling explanation

[0.1.0-alpha.1] - 2025-12-02

Added

  • Physics engine with thermal-electrical coupling
  • First-order thermal response calculations for chamber and case
  • Junction temperature calculation via thermal resistance (θ_jc)
  • Self-heating effects from power dissipation
  • LDO DUT model with temperature-dependent behaviour
    • Output voltage temperature coefficient (ppm/°C)
    • Quiescent current temperature coefficient
    • Dropout voltage temperature dependence
    • Power dissipation calculation
  • Comprehensive physics engine test suite (13 tests)

[0.0.1] - 2025-12-01

Added

  • Initial project scaffolding
  • pyproject.toml with core dependencies
  • Package directory structure with all subpackages
  • Development tooling configuration (ruff, mypy, pytest)
  • CLI entry point with version command
  • Project documentation (requirements, technical specification, architecture decisions)
  • Development plan with vertical slice approach
  • CI/CD pipeline configuration

Version History

Version Date Milestone
0.1.0 2025-12-04 MVP Complete
0.1.0-beta.2 2025-12-03 First DVT test runs
0.1.0-beta.1 2025-12-02 HAL complete
0.1.0-alpha.3 2025-12-02 Network ready
0.1.0-alpha.2 2025-12-02 Visual demo
0.1.0-alpha.1 2025-12-02 Physics engine
0.0.1 2025-12-01 Project scaffolding