Skip to content

Commit b561e88

Browse files
Release v2.0.1: Security fix, CI improvements, and dependency updates
Security: - Updated fonttools to 4.60.2 (CVE-2025-66034 fix) CI/CD Fixes: - Fixed ruff linting failures on all platforms (Linux, macOS, Windows) - Added docs/ directory to .ruff.toml per-file-ignores for F401 - All CI jobs now pass for Python 3.10, 3.11, 3.12, 3.13 Dependencies: - Updated Pillow constraint from <11.0.0 to <12.0.0 - Synchronized constraints across requirements files Documentation: - Fixed MIPIConfig example in API reference (correct parameters) - Updated version to 2.0.1 in docs/conf.py
1 parent a0ac922 commit b561e88

8 files changed

Lines changed: 62 additions & 29 deletions

File tree

.ruff.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ ignore = [
4747
"F401", # Unused imports in examples (might be used by users)
4848
"D1", "PLR2004"
4949
]
50+
"docs/**/*.py" = [
51+
"F401", # Unused imports for optional extension detection
52+
"D1"
53+
]
5054
"src/advanced_image_sensor_interface/sensor_interface/gpu_acceleration.py" = [
5155
"F401", # Optional dependency imports (numba)
5256
]

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,27 @@ All notable changes to the Advanced Image Sensor Interface project will be docum
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.1] - 2025-12-18
9+
10+
### 🔒 Security
11+
12+
- Updated `fonttools` to 4.60.2 to address CVE-2025-66034 (moderate severity)
13+
14+
### 🔧 Fixed
15+
16+
- **CI Pipeline**: Fixed ruff linting failures across all platforms (Linux, macOS, Windows)
17+
- Added `docs/` directory to ruff per-file-ignores for optional extension imports
18+
- All CI jobs now pass for Python 3.10, 3.11, 3.12, and 3.13
19+
- **Documentation**: Corrected MIPIConfig example in API reference to match actual class signature
20+
- Fixed incorrect parameters (`data_rate_mbps`, `pixel_format`) to correct ones (`lanes`, `data_rate`, `channel`)
21+
22+
### 📦 Dependencies
23+
24+
- Updated `Pillow` constraint from `<11.0.0` to `<12.0.0` to allow latest secure versions
25+
- Synchronized dependency constraints across `requirements.in`, `requirements.txt`, and `pyproject.toml`
26+
27+
---
28+
829
## [2.0.0] - 2025-08-10
930

1031
### 🚀 Major Release - Multi-Protocol Camera Interface Framework
@@ -242,6 +263,7 @@ This major release represents a significant advancement in camera interface tech
242263
- Performance Metrics utilities and benchmarking tools
243264
- Comprehensive documentation including API docs, design specs, and performance analysis
244265

266+
[2.0.1]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v2.0.0...v2.0.1
245267
[2.0.0]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v1.1.0...v2.0.0
246268
[1.1.0]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v1.0.1...v1.1.0
247269
[1.0.1]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v1.0.0...v1.0.1

docs/api_reference.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -65,34 +65,31 @@ async def process_frames():
6565
#### MIPI CSI-2 Driver
6666

6767
```python
68-
from advanced_image_sensor_interface.sensor_interface.mipi_driver import MIPIDriver
69-
from advanced_image_sensor_interface.config.constants import MIPIConfig
68+
from advanced_image_sensor_interface.sensor_interface.mipi_driver import MIPIDriver, MIPIConfig
7069

7170
# Configure MIPI interface
7271
config = MIPIConfig(
73-
lanes=4,
74-
data_rate_mbps=2500,
75-
pixel_format="RAW12",
76-
resolution=(4096, 3072),
77-
frame_rate=30.0
72+
lanes=4, # Number of data lanes (1-4)
73+
data_rate=2.5, # Data rate in Gbps per lane
74+
channel=0 # Virtual channel ID (0-3)
7875
)
7976

8077
# Initialize driver
8178
driver = MIPIDriver(config)
8279

83-
# Connect and start streaming
84-
if driver.connect():
85-
driver.start_streaming()
86-
87-
# Capture frames
88-
for _ in range(100):
89-
frame_data = driver.capture_frame()
90-
if frame_data:
91-
# Process frame
92-
process_frame(frame_data)
93-
94-
driver.stop_streaming()
95-
driver.disconnect()
80+
# Get driver status
81+
status = driver.get_status()
82+
print(f"Throughput: {status['throughput']:.2f} Gbps")
83+
84+
# Send data
85+
test_data = b"Hello MIPI!" * 100
86+
if driver.send_data(test_data):
87+
print(f"Sent {len(test_data)} bytes successfully")
88+
89+
# Receive data
90+
received = driver.receive_data(len(test_data))
91+
if received:
92+
print(f"Received {len(received)} bytes")
9693
```
9794

9895
#### CoaXPress Driver

docs/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
author = 'Mudit Bhargava'
2121

2222
# The full version, including alpha/beta/rc tags
23-
release = 'v2.0.0'
24-
version = '2.0.0'
23+
release = 'v2.0.1'
24+
version = '2.0.1'
2525

2626
# -- General configuration ---------------------------------------------------
2727

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "advanced_image_sensor_interface"
7-
version = "2.0.0"
7+
version = "2.0.1"
88
description = "A high-performance interface for next-generation camera modules"
99
readme = "README.md"
1010
authors = [{ name = "Mudit Bhargava", email = "muditbhargava666@gmail.com" }]
@@ -26,7 +26,7 @@ dependencies = [
2626
"numpy>=1.23.5",
2727
"scipy>=1.10.0",
2828
"matplotlib>=3.7.0",
29-
"Pillow>=10.0.0",
29+
"Pillow>=10.0.0,<12.0.0",
3030
"tqdm>=4.66.0",
3131
"psutil>=5.9.0",
3232
]
@@ -38,7 +38,7 @@ core = [
3838
"numpy>=1.23.5",
3939
"scipy>=1.10.0",
4040
"matplotlib>=3.7.0",
41-
"Pillow>=10.0.0",
41+
"Pillow>=10.0.0,<12.0.0",
4242
"tqdm>=4.66.0",
4343
"psutil>=5.9.0",
4444
]

requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ matplotlib>=3.7.0,<4.0.0
99

1010
# Image processing
1111
opencv-python>=4.8.1,<5.0.0
12-
Pillow>=10.0.0,<11.0.0
12+
Pillow>=10.0.0,<12.0.0
1313
scikit-image>=0.20.0,<1.0.0
1414

1515
# Data analysis and machine learning

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ cycler==0.12.1
1010
# via matplotlib
1111
dataclasses-json==0.6.7
1212
# via -r requirements.in
13-
fonttools==4.59.0
13+
fonttools==4.60.2
1414
# via matplotlib
1515
h5py==3.14.0
1616
# via -r requirements.in

src/advanced_image_sensor_interface/_version.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Version information for Advanced Image Sensor Interface."""
22

3-
__version__ = "2.0.0"
4-
__version_info__ = (2, 0, 0)
3+
__version__ = "2.0.1"
4+
__version_info__ = (2, 0, 1)
55

66
# Release information
77
__title__ = "Advanced Image Sensor Interface"
@@ -13,6 +13,16 @@
1313

1414
# Version history
1515
VERSION_HISTORY = {
16+
"2.0.1": {
17+
"release_date": "2025-12-18",
18+
"major_features": [
19+
"Security fix for fonttools CVE-2025-66034",
20+
"Updated Pillow dependency constraint to allow 11.x",
21+
"Fixed CI pipeline for all platforms",
22+
"Fixed MIPIConfig documentation examples",
23+
"Added docs/ to ruff ignore for optional imports",
24+
],
25+
},
1626
"2.0.0": {
1727
"release_date": "2025-01-10",
1828
"major_features": [

0 commit comments

Comments
 (0)