feat: capability split for runtime-lite vs ingest-full#21
Conversation
✅ Compliance Gate ResultsSummary:
Details:
Artifacts and run links: The compliance evidence artifact contains the complete SARIF reports, summary JSON, and evidence bundle for this run. |
There was a problem hiding this comment.
Pull request overview
Splits the project’s Python dependencies into installable capability extras and updates container/CI wiring so the default build path stays lightweight while still supporting ingest workflows via opt-in profiles.
Changes:
- Introduces optional dependency groups (
ingest-lite,ingest-full,llm-review) and updates lockfile accordingly. - Refactors Docker targets/stages so
runtime-liteis the default andingest-fullis built on-demand. - Updates CI (GitHub Actions + ADO) and docs/justfile to use the new extras and targets; makes Foundry client test conditional.
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Moves heavy deps into optional extras for capability-based installs. |
uv.lock |
Reflects new optional-dependency layout and bumps a few pinned versions. |
Dockerfile |
Adds runtime-lite/ingest-full targets and reorders stages for lean default builds. |
.github/workflows/docker-build.yml |
Builds runtime-lite by default; adds scheduled/manual ingest-full build job and size metrics. |
azure-pipelines.yml |
Adds imageTarget variable and builds the runtime-lite target. |
ado/templates/ci.yml |
Uses uv sync --extra ingest-lite for CI. |
ado/templates/selftest.yml |
Uses uv sync --extra ingest-lite for selftest artifacts. |
justfile |
Default install uses ingest-lite; adds explicit docker build/smoke commands per target. |
reqif_ingest_cli/docling_adapter.py |
Improves PDF fallback ordering and adds guided error when docling is unavailable. |
tests/test_reqif_ingest_cli_foundry.py |
Skips Foundry client creation test when llm-review extra isn’t installed. |
README.md |
Documents install profiles and updates link formatting. |
README-reqif-ingest-cli.md |
Adds install profile guidance for ingest and optional LLM review. |
.dockerignore |
Keeps runtime docs and justfile in Docker build context. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| try: | ||
| from docling.document_converter import DocumentConverter | ||
| except Exception as exc: | ||
| return Failure(_missing_docling_error(resolved, exc)) |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
✅ Compliance Gate ResultsSummary:
Details:
Artifacts and run links: The compliance evidence artifact contains the complete SARIF reports, summary JSON, and evidence bundle for this run. |
❌ Compliance Gate ResultsSummary:
Meta-policy failures:
Processing failures:
Details:
Artifacts and run links: The compliance evidence artifact contains the complete SARIF reports, summary JSON, and evidence bundle for this run. |
✅ Compliance Gate ResultsSummary:
Details:
Artifacts and run links: The compliance evidence artifact contains the complete SARIF reports, summary JSON, and evidence bundle for this run. |
Why
Container builds are heavy because docling and torch-class dependencies are in the default install path.
What changed
pyproject.toml:ingest-lite:openpyxl,pypdfingest-full:doclingstack (plus lite deps)llm-review:azure-ai-inferenceruntime-lite(lean default)ingest-full(docling-enabled)demo-full(alias on ingest-full)defaultnow points toruntime-lite--target runtime-litedoes not build full ingest deps.pypdffallback and adding explicit install guidance when docling is missing.runtime-liteby defaultingest-fullbuild job added--target runtime-lite--extra ingest-litejustfile:build-runtime-lite,build-ingest-full,smoke-runtime-litellm-reviewavailability.Validation
uv run mypy reqif_ingest_cliuv run ruff check reqif_ingest_cli testsuv run pytest -q tests/test_reqif_ingest_cli_docling_distill.py tests/test_reqif_ingest_cli_foundry.pydocker build --target runtime-lite -t reqif-opa-mcp:runtime-lite-test .Known unrelated issue
tests/test_reqif_ingest_cli_xlsx.py::test_extract_aescsf_core_profile_and_paragraph_chunkingcurrently fails onF2vsD2anchor expectation in existing extractor behavior; not modified in this PR.