Skip to content

Commit 36346b4

Browse files
committed
feat: complete release v5.0.0 (Covenant) architectures, contract verification and lint/style fixes
1 parent f83d0f4 commit 36346b4

145 files changed

Lines changed: 6949 additions & 12037 deletions

File tree

Some content is hidden

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

.flake8

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[flake8]
2+
max-line-length = 100
3+
ignore = E203, W503
4+
exclude = .git, __pycache__, build, dist, temp_tests, temp_tests_augmented

.github/workflows/pypi-publish.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
pypi-publish:
13+
name: Build and publish Python distribution to PyPI
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v4
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: "3.12"
23+
cache: "pip"
24+
25+
- name: Install build dependencies
26+
run: |
27+
python -m pip install --upgrade pip
28+
pip install build twine
29+
30+
- name: Build binary wheel and source tarball
31+
run: python -m build
32+
33+
- name: Check package metadata description
34+
run: python -m twine check dist/*
35+
36+
- name: Publish package distribution to PyPI
37+
uses: pypa/gh-action-pypi-publish@release/v1
38+
with:
39+
password: ${{ secrets.PYPI_API }}

.github/workflows/python-app.yaml

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -117,53 +117,38 @@ jobs:
117117
- name: CLI Test - Help
118118
run: imgshape --help
119119

120-
- name: CLI Test - Version (non-blocking)
121-
run: imgshape --version || true
122-
123-
- name: CLI Test - Shape detection
124-
run: python -m imgshape.cli --path sample/test.png --shape
125-
126-
- name: CLI Test - Analysis
127-
run: python -m imgshape.cli --path sample/test.png --analyze
128-
129-
- name: CLI Test - Recommendation
130-
run: python -m imgshape.cli --path sample/test.png --recommend --augment
131-
132-
- name: CLI Test - Report (Markdown) (non-blocking)
133-
run: python -m imgshape.cli --path sample --report --augment --out tmp/ci_report.md || true
134-
135-
- name: CLI Test - Report (HTML) (non-blocking)
136-
run: python -m imgshape.cli --path sample --report --augment --out tmp/ci_report.html || true
137-
138-
- name: CLI Test - Visualization (non-blocking) — run script
120+
- name: Create Test Contract
139121
shell: bash
140122
run: |
141-
# run deterministic script that attempts to generate an interactive plot (if viz available)
142-
mkdir -p .github/scripts
143-
python .github/scripts/plot_test.py || true
123+
cat << 'EOF' > tmp/test_contract.yaml
124+
schema_version: "5.0"
125+
dataset:
126+
expected_channels: 3
127+
allowed_formats: [png, jpg]
128+
resolution_min: [100, 100]
129+
quality:
130+
blur_threshold: 1.0
131+
EOF
144132
145-
- name: CLI Test - Model Compatibility (non-blocking)
146-
run: python -m imgshape.cli --dir sample --check mobilenet_v2 || true
133+
- name: CLI Test - Validate Contract
134+
run: imgshape validate sample tmp/test_contract.yaml --lock
147135

148-
- name: CLI Test - TorchLoader (transform snippet) (non-blocking)
149-
run: python -m imgshape.cli --path sample --torchloader --out tmp/transform_snippet.py || true
136+
- name: CLI Test - Run Dataset Tests (Markdown)
137+
run: imgshape test sample tmp/test_contract.yaml --output markdown --save tmp/test_report.md
150138

151-
# ---- v4 Atlas Tests ----
152-
- name: CLI Test - v4 Fingerprint
153-
run: imgshape --fingerprint --path sample --out tmp/v4_fingerprint.json
139+
- name: CLI Test - Run Dataset Tests (JSON)
140+
run: imgshape test sample tmp/test_contract.yaml --output json --save tmp/test_report.json
154141

155-
- name: CLI Test - v4 Atlas Analyze
156-
run: imgshape --atlas --path sample --intent training --out tmp/v4_analysis.json
142+
- name: CLI Test - Extract Fingerprint
143+
run: imgshape fingerprint sample --save tmp/baseline_fingerprint.json
157144

158-
- name: CLI Test - v4 Decisions
159-
run: imgshape --decisions --path sample --intent training --out tmp/v4_decisions.json
145+
- name: CLI Test - Diff Datasets
146+
run: imgshape diff tmp/baseline_fingerprint.json sample
160147

148+
# ---- Run Test Suite ----
161149
- name: Run pytest (all tests)
162150
run: pytest -q --disable-warnings --maxfail=1
163151

164-
- name: Run pytest (v4 tests only)
165-
run: pytest tests/v4_test.py -v --disable-warnings
166-
167152
- name: Build distributions
168153
run: python -m build
169154

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,3 +170,9 @@ docs/_build/
170170

171171
.vercel
172172
.env*.local
173+
174+
temp_tests/
175+
docs/
176+
.antigravitycli/
177+
.todos/
178+
temp_tests_augmented/

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ This project follows [Semantic Versioning](https://semver.org/).
55

66
---
77

8+
## [5.0.0] - 2026-05-30
9+
10+
### v5.0.0 "Covenant"
11+
12+
The **v5.0.0** release is a ground-up architectural pivot from a local web/dashboard service into a lean, developer-first **dataset governance and contract enforcement engine**. It provides CI/CD-native verification tools and Python APIs to guarantee dataset quality, integrity, and reproducibility.
13+
14+
**Highlights:**
15+
- **Vision Dataset Governance**: Declarative YAML contracts validation with JSON schema support and clause-specific severity overrides (`error` or `warning`).
16+
- **Atlas Profiler Suite**: A unified engine divided into 5 distinct profilers (Spatial, Signal, Distribution, Quality, Semantic) computing deterministic, cross-platform metrics.
17+
- **Test Runner (`imgshape test`)**: Pytest-style vision dataset assertions with tabular CLI reporting and markdown/JSON output renderers.
18+
- **Dataset Diff Engine (`imgshape diff`)**: Git-like comparison of baseline and candidate datasets/fingerprints measuring class distribution, entropy shifts, and semantic drift (DINOv2). Exits with exit code `1` on significant drift.
19+
- **Deterministic Audit Trails**: Cryptographically robust SHA256 content-based `provenance_id` and cross-platform `.fingerprint_lock` lockfiles for dataset version verification.
20+
- **Lean Packaging**: Removed all web components (React UI, Streamlit, FastAPI, Uvicorn, Docker, Cloud Run configurations) reducing dependency footprint and package size.
21+
22+
---
23+
824
## [4.2.0] - 2026-04-16
925

1026
### v4.2.0 "Bento Intelligence"

0 commit comments

Comments
 (0)