Skip to content

ci: add wheel+verify job, extras resolution matrix, py3.10, pip cache#9

Merged
mohitgargai merged 1 commit intomainfrom
ci/harden-pipeline
Apr 24, 2026
Merged

ci: add wheel+verify job, extras resolution matrix, py3.10, pip cache#9
mohitgargai merged 1 commit intomainfrom
ci/harden-pipeline

Conversation

@mohitgargai
Copy link
Copy Markdown
Contributor

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 test matrix was green but a user running pip install lica-gdb would still hit a broken install.

  • verify job — builds the wheel with python -m build, installs from the built artifact (not -e .), asserts _verify_data/ is present in site-packages, and runs gdb verify end-to-end. This catches the "works editable, broken in wheel" class of bugs around package-data globs, which is how a bad 0.2.0 could have shipped the bundled fixture half-broken.
  • extras matrix — 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.
  • Python 3.10 added to the test matrix. 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.
  • pip caching via setup-python@v5's cache: '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 verify job 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-smoke benchmarks run against the bundled fixture and the command exits 0.

Test plan

  • lint green
  • test (3.9 / 3.10 / 3.11 / 3.12) all green
  • verify (wheel + bundled fixture) green
  • extras (openai / anthropic / gemini / hub / metrics / all-providers) all green

Made with Cursor

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
@mohitgargai mohitgargai requested a review from purvanshi as a code owner April 24, 2026 10:47
@mohitgargai mohitgargai merged commit bdcae9c into main Apr 24, 2026
12 checks passed
@mohitgargai mohitgargai deleted the ci/harden-pipeline branch April 24, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant