Skip to content
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

Implement more permissive pex3 lock sync locked resolve selection in multi-resolve locks. #2386

Open
jsirois opened this issue Mar 18, 2024 · 0 comments

Comments

@jsirois
Copy link
Member

jsirois commented Mar 18, 2024

Unlike a pex3 lock update, a pex3 lock sync can update any characteristic of an existing lock; not just individual top-level requirements. As such, changing options that affect accepted artifact types, like syncing from a --style universal lock that admits sdists to a --style universal --no-build that does not or changing --interpreter-constraints when syncing a lock that contains platform-specific artifacts, requires ignoring existing artifacts when selecting which locked resolve to sync using which target. Currently a full subset match is required which includes matching a compatible artifact and this leads to a failure to sync locks with multiple locked resolves and platform specific artifacts when settings are changed that shift the artifacts that are acceptable in the new lock. Instead of using a subset operation to select locked resolves, pex3 lock sync should use a softer match that ignores artifacts and just looks at requires_python and individual requirement environment markers when determining compatibility with a target.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant