188 lines
7.7 KiB
Markdown
188 lines
7.7 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [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).
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- Docker deployment configuration for public demo
|
|
- Dockerfile with Python 3.11-slim and WeasyPrint dependencies
|
|
- .dockerignore to exclude tests, docs, and development files
|
|
- deploy/ directory with docker-compose, nginx config, and Cloudflare Tunnel setup
|
|
- PDF Report Generation (Sprint 18)
|
|
- Professional PDF reports from test results with charts and styling
|
|
- `ReportGenerator` class orchestrating data gathering, chart generation, and PDF output
|
|
- `ReportConfig` for customising company name, logo, charts, and DPI
|
|
- HTML templates with Jinja2 for report structure
|
|
- CSS stylesheet optimised for A4 PDF output via WeasyPrint
|
|
- Matplotlib-based chart generation (voltage vs temperature, results summary)
|
|
- New CLI commands:
|
|
- `list-runs`: Display recent test runs with IDs
|
|
- `export-report`: Generate PDF report from run ID
|
|
- Dashboard PDF download button in Results Viewer
|
|
- Reporting configuration section in default.yaml
|
|
- Unit tests for models, HTML renderer, and chart generator
|
|
- Integration test for full report generation pipeline
|
|
|
|
### Changed
|
|
- Added `matplotlib>=3.8` to reports optional dependencies
|
|
|
|
## [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 |
|