You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: use pip --dry-run --report for pyproject.toml (#406)
## Summary
- Replace the venv + pip install/freeze/show chain with a single `pip
install --dry-run --ignore-installed --report` command for
pyproject.toml dependency resolution
- Parse pip report JSON to build the full dependency tree directly,
eliminating temporary file creation and virtual environment setup
- Add comprehensive tests for pip report parsing, extras filtering, name
canonicalization, and SBOM generation
## Jira
[TC-4087](https://redhat.atlassian.net/browse/TC-4087)
## Test plan
- [x] All existing pyproject tests pass (26 tests)
- [x] New pip report parsing tests pass (7 tests: direct deps,
transitive graph, extras filtering, root exclusion, name
canonicalization, helper methods)
- [x] SBOM generation integration tests (3 tests: provideStack,
provideComponent, exhortignore — skipped in local env due to
pre-existing CycloneDX classpath issue)
- [x] CI pipeline passes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
[TC-4087]:
https://redhat.atlassian.net/browse/TC-4087?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
---------
Signed-off-by: Ruben Romero Montes <rromerom@redhat.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
<li><ahref="https://www.python.org/">Python</a> - <ahref="https://pypi.org/project/pip/">pip Installer</a> (<code>requirements.txt</code>, <code>pyproject.toml</code> with PEP 621 format). <strong>Note:</strong> Poetry-style dependencies (<code>[tool.poetry.dependencies]</code>) are not supported.</li>
0 commit comments