-
Notifications
You must be signed in to change notification settings - Fork 9
Scenarios with ambigious solutions with respect to the spec? #160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Yeah this is tough... Ideally we'd test against the specification rather than uv's design principles. I'm not sure what we should do when the spec is ambiguous. Ideally the spec wouldn't be ambiguous so maybe we should propose changes. I worry about allowing multiple expected outcomes, it sounds complicated but perhaps that's the right solution. We could also consider some sort of "feature flag" style annotation for scenarios outcome where, for example, we have two pre-release modes explicit and implicit and the scenario is tagged as such so it can be filtered out of implementations based on the mode they support. |
I would be comfortable with a mode that meant something like "allow package to be marked prerelease by transitive dependency" and when False then pip wouldn't test against it. |
Closing this for the same reason as this one: #171 (comment) |
For what it's worth, I'm supportive of any work to separate the scenarios into cases where
I just can't prioritize that work myself right now — maintaining and improving uv is higher impact. |
100%, it needs someone outside astral to be motivated to onboard packse for it to have impact. That might be me in the future, but not right now, and I have enough experience now that there needs to be a bigger design aim issue, rather than specific scenario issues, to do it. |
This is the scenario: https://github.com/astral-sh/packse/blob/0.3.12/scenarios/prereleases.json#L320
It's listed as:
But there are many ways to interpret the spec, especially given the spec does not explicitly consider resolution. Currently pip resolves this scenario with:
a==1.0.0 b==1.0.0 c==2.0.0b1
.What is packse's intent here? To set tests against the design principles of uv or against the spec?
Might it worth "expected" being a list of possible options when facing ambigious scenarios like this?
The text was updated successfully, but these errors were encountered: