Skip to content

Commit 0e32996

Browse files
committed
add CHANGELOG.md: initial documentation of features, changes, fixes, and migration steps
1 parent 78daf9e commit 0e32996

1 file changed

Lines changed: 154 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# Changelog
2+
3+
All notable changes to OVMobileBench will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
12+
- **Three flexible OpenVINO distribution modes**
13+
- **Build mode**: Build OpenVINO from source with custom configurations
14+
- **Install mode**: Use existing OpenVINO installation directory
15+
- **Link mode**: Download OpenVINO archives with "latest" auto-detection support
16+
- **Automatic platform detection** for downloading appropriate OpenVINO builds
17+
- **Comprehensive test coverage** for new OpenVINO modes with 46 new tests
18+
- **New documentation**: `docs/openvino-modes.md` with detailed usage examples
19+
- **Support for `archive_url: "latest"`** to automatically fetch the latest OpenVINO build
20+
- **Enhanced architecture documentation** with Mermaid diagrams
21+
- **Android SDK/NDK installer module** for automated setup
22+
- **SSH device support** for Linux ARM devices using Paramiko
23+
- **Temperature monitoring** and performance tuning capabilities
24+
- **GitHub Actions CI/CD** integration with automated testing
25+
- **Device abstraction layer** supporting Android (ADB) and Linux (SSH)
26+
- **Matrix testing capabilities** for parameter sweep benchmarking
27+
- **JSON and CSV report generation** with detailed metrics
28+
- **Pre-commit hooks** for code quality enforcement
29+
- **Pydantic-based configuration** with strong typing and validation
30+
- **Typer CLI framework** for modern command-line interface
31+
- **Pure Python adbutils** integration (no external ADB binary required)
32+
- **Benchmark result parsing** with detailed metrics extraction
33+
- **Artifact management system** for organized storage of builds and results
34+
- **Custom exception hierarchy** for better error handling
35+
- **Structured logging** with multiple verbosity levels
36+
- **Docker support** for development environment (planned)
37+
- **Web dashboard** for real-time monitoring (planned)
38+
39+
### Changed
40+
41+
- **Configuration schema**: `build` section renamed to `openvino` with new `mode` field
42+
- **Updated example YAML files** to demonstrate all three OpenVINO modes
43+
- **Improved configuration documentation** with mode-specific examples
44+
- **Enhanced pipeline** to handle OpenVINO distribution flexibly
45+
- **Modernized architecture documentation** with professional diagrams
46+
- **Updated pre-commit hooks** to latest versions
47+
- **Improved device abstraction** with pure Python adbutils
48+
- **Enhanced error handling** with custom exception hierarchy
49+
- **Refactored builders** to support multiple platforms
50+
- **Better separation of concerns** in pipeline stages
51+
- **Improved test organization** with dedicated test files per module
52+
53+
### Fixed
54+
55+
- **Unified YAML comment formatting** across example configurations
56+
- **Pre-commit hook compliance** for all new code
57+
- **ADB connection stability** issues on newer Android versions
58+
- **Memory leaks** in long-running benchmarks
59+
- **Report generation** for large datasets
60+
- **SSH timeout issues** on slow network connections
61+
- **CMake cache corruption** on interrupted builds
62+
- **Path handling** for Windows compatibility
63+
- **Unicode handling** in benchmark output parsing
64+
- **Timezone issues** in timestamp generation
65+
66+
### Security
67+
68+
- **No hardcoded credentials** - all secrets via environment variables
69+
- **Input validation** using Pydantic schemas
70+
- **Command injection prevention** with parameterized shell commands
71+
- **Path traversal prevention** in file operations
72+
- **Secure SSH key handling** for Linux devices
73+
74+
### Deprecated
75+
76+
- **Old configuration format** with `build.enabled` field - use `openvino.mode` instead
77+
- **Direct ADB binary calls** - replaced with adbutils Python library
78+
- **Manual device detection** - now automatic with device abstraction layer
79+
80+
### Migration Guide
81+
82+
To migrate from the old configuration format to the new one:
83+
84+
**Old format (deprecated):**
85+
86+
```yaml
87+
build:
88+
enabled: true
89+
openvino_repo: "/path/to/openvino"
90+
openvino_commit: "HEAD"
91+
build_type: "Release"
92+
```
93+
94+
**New format (current):**
95+
96+
```yaml
97+
openvino:
98+
mode: "build" # or "install" or "link"
99+
source_dir: "/path/to/openvino"
100+
commit: "HEAD"
101+
build_type: "Release"
102+
```
103+
104+
### Key Features
105+
106+
- **End-to-end automation**: From build to report generation
107+
- **Multi-platform support**: Android, Linux ARM, iOS (planned)
108+
- **Flexible OpenVINO distribution**: Three modes to suit different workflows
109+
- **Matrix testing**: Comprehensive parameter sweep capabilities
110+
- **Device abstraction**: Uniform interface for different device types
111+
- **Rich reporting**: Multiple output formats with detailed metrics
112+
- **CI/CD ready**: GitHub Actions integration included
113+
- **Extensible architecture**: Plugin system for custom devices and reports
114+
- **Production ready**: Comprehensive testing and error handling
115+
116+
### Supported Platforms
117+
118+
**Host Platforms:**
119+
120+
- Linux (x86_64, ARM64)
121+
- macOS (x86_64, Apple Silicon)
122+
- Windows (x86_64, ARM64)
123+
124+
**Target Devices:**
125+
126+
- Android devices (ARM64, x86_64) via ADB
127+
- Linux ARM devices (Raspberry Pi, Jetson) via SSH
128+
- iOS devices (planned)
129+
130+
**OpenVINO Versions:**
131+
132+
- 2024.x releases
133+
- Nightly builds
134+
- Custom builds from source
135+
136+
### Requirements
137+
138+
- Python 3.11+
139+
- CMake 3.24+ (for build mode)
140+
- Ninja 1.11+ (for build mode)
141+
- Android NDK r26d+ (for Android targets)
142+
- SSH access (for Linux targets)
143+
144+
## Contributors
145+
146+
- Alexander Nesterov (@allnes) - Project Lead
147+
- Community contributors via GitHub
148+
149+
## Links
150+
151+
- [GitHub Repository](https://github.com/embedded-dev-research/OVMobileBench)
152+
- [Documentation](https://github.com/embedded-dev-research/OVMobileBench/tree/main/docs)
153+
- [Issue Tracker](https://github.com/embedded-dev-research/OVMobileBench/issues)
154+
- [Discussions](https://github.com/embedded-dev-research/OVMobileBench/discussions)

0 commit comments

Comments
 (0)