Skip to content

Commit 3fc2d5a

Browse files
Release v1.1.0: Major update with enhanced documentation and requirements
- Updated version to 1.1.0 across all files - Restored requirements.txt and requirements-dev.txt files - Updated comprehensive documentation for ReadTheDocs - Enhanced README.md with realistic metrics and installation methods - Updated CI/CD dependencies and configuration - Cleaned up unnecessary files and consolidated configuration - Added 122 comprehensive tests with security framework - Improved package structure and professional presentation
1 parent 7a4399b commit 3fc2d5a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+6326
-803
lines changed

.github/workflows/ci.yml

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
test:
18+
runs-on: ubuntu-latest
19+
strategy:
20+
fail-fast: false
21+
max-parallel: 4
22+
matrix:
23+
python-version: ["3.10", "3.11", "3.12", "3.13"]
24+
25+
steps:
26+
- uses: actions/checkout@v4
27+
28+
- name: Set up Python ${{ matrix.python-version }}
29+
uses: actions/setup-python@v5
30+
with:
31+
python-version: ${{ matrix.python-version }}
32+
cache: pip
33+
# If you rely on requirements files, cache on them:
34+
cache-dependency-path: |
35+
requirements.txt
36+
requirements-dev.txt
37+
requirements-docs.txt
38+
pyproject.toml
39+
setup.cfg
40+
setup.py
41+
42+
- name: Install system dependencies
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install -y libgl1-mesa-glx libglib2.0-0
46+
47+
- name: Upgrade pip and wheel
48+
run: python -m pip install --upgrade pip wheel
49+
50+
- name: Install base requirements.txt (if present)
51+
run: |
52+
if [ -f requirements.txt ]; then
53+
pip install -r requirements.txt
54+
fi
55+
56+
- name: Install dev requirements (if present)
57+
run: |
58+
if [ -f requirements-dev.txt ]; then
59+
pip install -r requirements-dev.txt
60+
fi
61+
62+
- name: Editable install with extras
63+
run: |
64+
# Keep this after requirements to ensure extras overlay cleanly
65+
if [ -f pyproject.toml ] || [ -f setup.py ]; then
66+
# Install dev and docs extras if defined
67+
pip install -e ".[dev,docs]"
68+
fi
69+
70+
- name: Ensure CI tools present (fallback)
71+
run: |
72+
pip install -q "ruff>=0.4.0" "black>=23.0" "mypy>=1.8" "pyright>=1.1.350" "pytest>=7.0" "pytest-cov>=4.0"
73+
74+
- name: Ruff lint
75+
run: ruff check src tests
76+
77+
- name: Black format check
78+
run: black --check src tests
79+
80+
- name: Type check with mypy
81+
run: mypy src
82+
83+
- name: Type check with pyright
84+
run: pyright src
85+
86+
- name: Run tests
87+
env:
88+
PYTHONWARNINGS: default
89+
run: |
90+
pytest tests/ -v \
91+
--maxfail=1 --disable-warnings \
92+
--cov=src --cov-report=xml --cov-report=term-missing --color=yes
93+
94+
- name: Upload coverage XML
95+
if: always()
96+
uses: actions/upload-artifact@v4
97+
with:
98+
name: coverage-xml-${{ matrix.python-version }}
99+
path: coverage.xml
100+
if-no-files-found: warn
101+
retention-days: 7
102+
103+
benchmark:
104+
runs-on: ubuntu-latest
105+
needs: test
106+
107+
steps:
108+
- uses: actions/checkout@v4
109+
110+
- name: Set up Python 3.10
111+
uses: actions/setup-python@v5
112+
with:
113+
python-version: "3.10"
114+
cache: pip
115+
cache-dependency-path: |
116+
requirements.txt
117+
requirements-dev.txt
118+
pyproject.toml
119+
setup.cfg
120+
setup.py
121+
122+
- name: Install system dependencies
123+
run: |
124+
sudo apt-get update
125+
sudo apt-get install -y libgl1-mesa-glx libglib2.0-0
126+
127+
- name: Upgrade pip and wheel
128+
run: python -m pip install --upgrade pip wheel
129+
130+
- name: Install base and dev requirements
131+
run: |
132+
if [ -f requirements.txt ]; then
133+
pip install -r requirements.txt
134+
fi
135+
if [ -f requirements-dev.txt ]; then
136+
pip install -r requirements-dev.txt
137+
fi
138+
if [ -f pyproject.toml ] || [ -f setup.py ]; then
139+
pip install -e ".[dev]"
140+
fi
141+
pip install -q psutil
142+
143+
- name: Run performance benchmarks
144+
run: |
145+
python benchmarks/speed_tests.py --output benchmark_results.json
146+
147+
- name: Upload benchmark results
148+
if: always()
149+
uses: actions/upload-artifact@v4
150+
with:
151+
name: benchmark-results
152+
path: benchmark_results.json
153+
if-no-files-found: warn
154+
retention-days: 7
155+
156+
docs:
157+
runs-on: ubuntu-latest
158+
needs: test
159+
160+
steps:
161+
- uses: actions/checkout@v4
162+
163+
- name: Set up Python 3.10
164+
uses: actions/setup-python@v5
165+
with:
166+
python-version: "3.10"
167+
cache: pip
168+
cache-dependency-path: |
169+
requirements.txt
170+
requirements-docs.txt
171+
docs/requirements.txt
172+
pyproject.toml
173+
setup.cfg
174+
setup.py
175+
176+
- name: Upgrade pip and wheel
177+
run: python -m pip install --upgrade pip wheel
178+
179+
- name: Install docs requirements
180+
run: |
181+
if [ -f docs/requirements.txt ]; then
182+
pip install -r docs/requirements.txt
183+
fi
184+
if [ -f requirements-docs.txt ]; then
185+
pip install -r requirements-docs.txt
186+
fi
187+
if [ -f pyproject.toml ] || [ -f setup.py ]; then
188+
pip install -e ".[docs]"
189+
fi
190+
191+
- name: Build documentation
192+
run: |
193+
set -e
194+
if [ -f docs/Makefile ]; then
195+
make -C docs html
196+
else
197+
sphinx-build -b html docs docs/_build/html
198+
fi
199+
200+
- name: Upload documentation
201+
if: always()
202+
uses: actions/upload-artifact@v4
203+
with:
204+
name: documentation
205+
path: docs/_build/html/
206+
if-no-files-found: error
207+
retention-days: 7

.gitignore

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,16 @@ data/processed/
169169
models/
170170
results/
171171

172+
# Benchmark and test outputs
173+
benchmark_results.json
174+
*_results.json
175+
test_sim.json
176+
final_test.json
177+
178+
# Keep requirements files (don't ignore)
179+
!requirements.txt
180+
!requirements-dev.txt
181+
172182
# Temporary files
173183
*.swp
174184
*.swo
@@ -183,4 +193,6 @@ results/
183193
config.ini
184194
secrets.yaml
185195

186-
.ruff_cache/
196+
.ruff_cache/
197+
.idea/
198+
.vscode/

.readthedocs.yaml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ build:
1818
# Define the steps required to install the project's dependencies
1919
python:
2020
install:
21-
- requirements: requirements.txt # Install project dependencies
2221
- requirements: docs/requirements.txt # Install documentation dependencies
22+
- method: pip
23+
path: .
2324

2425
# Optionally, define additional formats to build (e.g., PDF, ePub)
2526
formats:
@@ -37,9 +38,4 @@ formats:
3738
# post_sphinx:
3839
# - sphinx-apidoc -o docs/source/ my_package
3940

40-
# Optionally declare the Python requirements required to build your docs
41-
python:
42-
install:
43-
- requirements: docs/requirements.txt
44-
- method: pip
45-
path: .
41+

CHANGELOG.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,44 @@ 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-
## [1.0.1] - 2024-03-04
8+
## [1.1.0] - 2025-08-08
9+
10+
### Added
11+
- Production-ready CI/CD pipeline with comprehensive quality checks
12+
- Enhanced documentation with updated API references and design specs
13+
- Professional output formatting throughout codebase
14+
- Comprehensive security framework with input validation and buffer protection
15+
- Advanced image processing with multiple denoising algorithms
16+
- Performance benchmarking suite with realistic measurements
17+
- MIPI CSI-2 protocol implementation with ECC/CRC validation
18+
- Pluggable power management backends (simulation and hardware-ready)
19+
- Image validation with bit-depth safety and format checking
20+
- Complete test suite with 122 passing tests
21+
22+
### Changed
23+
- Updated Python version requirements to 3.10-3.13
24+
- Professional output formatting (removed excessive emojis)
25+
- Enhanced package structure with proper __init__.py files
26+
- Improved error handling and robustness throughout
27+
- Updated documentation to reflect current simulation framework capabilities
28+
- Streamlined project structure and removed redundant files
29+
30+
### Fixed
31+
- All critical security and validation issues
32+
- Package import consistency across all modules
33+
- Documentation clarity and accuracy
34+
- Test fragility and private attribute access
35+
- Professional presentation standards
36+
- Buffer overflow protection and memory safety
37+
38+
## [1.0.1] - 2025-03-04
939

1040
### Fixed
1141
- Fixed MIPI driver performance optimization test to be deterministic
1242
- Fixed signal processing noise reduction implementation to properly reduce noise
1343
- Fixed power management validation for input configuration parameters
1444
- Fixed handling of zero values in dynamic range calculation
1545
- Fixed voltage stability issues in power management system
16-
- Fixed MIPI driver performance optimization test to be deterministic
1746

1847
### Added
1948
- Comprehensive test suite with 67+ unit tests across all components
@@ -39,5 +68,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3968
- Performance Metrics utilities and benchmarking tools
4069
- Comprehensive documentation including API docs, design specs, and performance analysis
4170

71+
[1.1.0]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v1.0.1...v1.1.0
4272
[1.0.1]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/compare/v1.0.0...v1.0.1
4373
[1.0.0]: https://github.com/muditbhargava66/Advanced-Image-Sensor-Interface/releases/tag/v1.0.0

0 commit comments

Comments
 (0)