fix(python): prefer field-level pyproject identity fallback#820
Merged
Conversation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> Signed-off-by: Maxim Stykow <maxim.stykow@gmail.com>
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
pyproject.tomlidentity precedence so incomplete[project]metadata can fall back per field to[tool.poetry]or legacy top-level metadata instead of suppressing a stronger available identityrepository/vcs_urlas a fallbackdownload_url, and keepdownload_urlaligned with explicit download links or the synthetic PyPI source tarball[project]+[tool.poetry]identity fallback and update the existing pyproject golden expectation to reflect the corrected download URL semanticsScope and exclusions
src/parsers/python/pyproject.rsfield-level precedence for identity-bearing fields and URL fallback tighteningsrc/parsers/python/test.rsregression coverage for mixed-surface identity fallback and repository-vs-download behaviortestdata/python/golden/pyproject.toml-expected.jsonexpected output update for correcteddownload_urlpyproject.tomlIntentional differences from Python
[project],[tool.poetry], and legacy top-level metadata, instead of letting a present-but-incomplete higher-priority table suppress a stronger lower-priority identity.Expected-output fixture changes
testdata/python/golden/pyproject.toml-expected.jsondownload_urlshould describe an artifact download, not the source repository homepagevcs_url