GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||
GeezerVison is showing github.com — Fix VEX pyproject product purl name (#1547) by mikolalysenko · Pull Request #1577 · SocketDev/socket-patch Conversation
|
| Issue variant | Test | Without fix | With fix |
|---|---|---|---|
#1547 PEP 621 My_Service (binary, vex --no-verify) |
e2e_vex::auto_detect_pyproject_uses_canonical_pypi_name |
pkg:pypi/[email protected] ❌ |
✅ |
#1547 PEP 621 My_Service (detector) |
vex::product::tests::detect_pyproject_canonicalizes_pep621_name |
❌ | ✅ |
#1547 legacy [tool.poetry] My_Service and Demo_Pkg.Core |
pyproject_canonicalizes_tool_poetry_name |
pkg:pypi/[email protected] ❌ |
✅ |
[tool.pdm] legacy table |
pyproject_canonicalizes_tool_pdm_name |
❌ | ✅ |
| Poetry names equal after canonicalization | pyproject_poetry_names_equal_after_canonicalization |
❌ | ✅ |
| Whitespace around name and version | pyproject_trims_name_and_version |
n/a (added after review) | ✅ |
Run locally:
cargo fmt --all -- --check: clean.cargo clippy --workspace --all-features -- -D warnings: clean.cargo test -p socket-patch-core --all-features: 6519 passed, 4copy_tree,vlt_heal, pypi_poetry, pypi_requirements) that fail only becausecargo test -p socket-patch-cli --all-features --lib --test e2e_vex --test vex_terminal_output --test cli_parse_vex --test covgap_commands_vex --test e2e_embedded_vex: all pass (921 + 132).cargo test --workspace locally: its ~30 GB/code-review high)1.0.0-rc1 stays as written, while a built wheel records1.0.0rc1). The purl spec doesn't require version normalization, andutils::purl::pypi_purl itself.pypi_purl rejects names or versions containing/, \\, : or NUL. None of these can appear in a valid PEP 503 nameGenerated by Claude Code
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Claude Code:claude-opus-5-5
A Python project named `My_Service` got the VEX product `pkg:pypi/[email protected]`. SBOMs, and the pypi components in the same document, use the PEP 503 name (`my-service`). OpenVEX consumers match products by exact purl, so they silently ignored every statement in the document. The pyproject.toml product (PEP 621 `[project]`, `[tool.poetry]` and legacy `[tool.pdm]`) is now built through `utils::purl::pypi_purl`, which normalizes the name. Poetry's two name fields are now compared after normalization: `My_Service` and `my-service` name the same distribution, so they no longer count as a conflict. Fixes #1547 Assisted-by: Claude Code:claude-opus-5-5
A pyproject.toml version written with surrounding spaces ended up inside the product purl, so the purl was invalid and matched nothing. The name was already trimmed when it was canonicalized. Refs #1547 Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 4a442ec. Configure here.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
VEX product purl detected from pyproject.toml keeps the raw project name (pkg:pypi/My_Service) instead of the normalized pypi name
There was an error while loading. Please reload this page.