ci: add wheel+verify job, extras resolution matrix, py3.10, pip cache#9
Merged
mohitgargai merged 1 commit intomainfrom Apr 24, 2026
Merged
ci: add wheel+verify job, extras resolution matrix, py3.10, pip cache#9mohitgargai merged 1 commit intomainfrom
mohitgargai merged 1 commit intomainfrom
Conversation
Closes four real gaps in the CI pipeline that let packaging and dependency regressions slip through to users: - verify job: builds the wheel, installs from the built artifact (not `-e .`), asserts `_verify_data/` is present in site-packages, and runs `gdb verify` end-to-end. Catches the "works editable, broken in wheel" class of bugs around package-data globs. - extras job: matrix over openai, anthropic, gemini, hub, metrics, all-providers. Surfaces broken version pins in optional deps at CI time instead of on a user's machine. Heavy ML extras (svg-/lottie-/layout-metrics, vllm*) are intentionally excluded. - test matrix: add Python 3.10 (requires-python is >=3.9, and 3.10 is the default on Ubuntu 22.04 / many corporate envs). - pip cache via setup-python's built-in cache: 'pip' (shaves ~10s per job). - concurrency cancel for PR runs (keeps main history intact). Verified locally: wheel build + install-from-wheel + `gdb verify` produces metrics for all 5 v0-smoke benchmarks and exits 0. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses four real gaps in the CI pipeline that currently let packaging and dependency regressions slip through to users. All four are cases where the existing
testmatrix was green but a user runningpip install lica-gdbwould still hit a broken install.verifyjob — builds the wheel withpython -m build, installs from the built artifact (not-e .), asserts_verify_data/is present in site-packages, and runsgdb verifyend-to-end. This catches the "works editable, broken in wheel" class of bugs aroundpackage-dataglobs, which is how a bad 0.2.0 could have shipped the bundled fixture half-broken.extrasmatrix — resolves each optional extra (openai,anthropic,gemini,hub,metrics,all-providers) independently. If any provider SDK or metrics dep drifts to an incompatible version, it fails loudly here instead of on a user's machine. Heavy ML extras (svg-metrics,lottie-metrics,layout-metrics,vllm*) are intentionally excluded — they pull in torch/transformers/GPU deps.testmatrix.requires-python = ">=3.9"permits 3.10, which is the default on Ubuntu 22.04 and in many corporate environments; skipping it was a real blind spot.setup-python@v5'scache: 'pip'(shaves ~10s per matrix job) and PR concurrency cancellation so superseded PR runs don't pile up.Explicitly deferred: PyPI publish workflow with Trusted Publishing (worth a dedicated PR + PyPI config change).
What I verified locally
Reproduced the new
verifyjob end-to-end:```
python -m build --wheel
pip install dist/lica_gdb-0.2.0-py3-none-any.whl
python -c "from pathlib import Path; import gdb; assert (Path(gdb.file).parent / '_verify_data').is_dir()"
gdb verify
→ [verify] OK — install is functional.
```
All 5
v0-smokebenchmarks run against the bundled fixture and the command exits 0.Test plan
lintgreentest (3.9 / 3.10 / 3.11 / 3.12)all greenverify (wheel + bundled fixture)greenextras (openai / anthropic / gemini / hub / metrics / all-providers)all greenMade with Cursor