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

Lockfiles: figure out invalidation for additional_lockfile_args like manylinux #12832

Closed
Eric-Arellano opened this issue Sep 9, 2021 · 2 comments · Fixed by #16525
Closed
Assignees
Labels

Comments

@Eric-Arellano
Copy link
Contributor

See #12807.

@Eric-Arellano
Copy link
Contributor Author

I think it's buggy that we have not been including python_repos.pex_args, python_setup.manylinux_pex_args, and the [python-setup].no_binary values in the Pants metadata header. Those can change the value of the lock, so we should be warning/erroring when the lock is now stale. Does that sound right, @benjyw @jsirois @chrisjrn?

The issue is users may not realize they need to manually run generate-lockfiles.

All other args are accounted for: interpreter constraints, requirements, and constraints files.

@Eric-Arellano Eric-Arellano self-assigned this Aug 5, 2022
@jsirois
Copy link
Contributor

jsirois commented Aug 5, 2022

Sounds right.

Eric-Arellano added a commit that referenced this issue Aug 15, 2022
… more powerful `[python].resolves_to_only_binary` and `[python].resolves_to_no_binary` (#16513)

Part of the per-resolve config project at https://docs.google.com/document/d/1HAvpSNvNAHreFfvTAXavZGka-A3WWvPuH0sMjGUCo48/edit. 

We already with multiple resolves allow you to have conflicting versions of the same requirement, e.g. Django 2 vs Django 3. So, it's useful to also allow those resolves to set different options for `--no-binary` and `--only-binary`, as you might only need it for certain versions of a project or for certain contexts.

This only works with Pex lockfiles, with similar reasoning to why we closed #16476.

This adds the options to the lockfile header, making progress on #12832.
Eric-Arellano added a commit that referenced this issue Aug 15, 2022
Prework for:

1) Adding per-resolve options for `[python-repos].{repos,indexes}` and `[python].manylinux` 
2) Wiring up these 3 options to lockfile header metadata #12832

End behavior is the same.

[ci skip-rust]
[ci skip-build-wheels]
Eric-Arellano added a commit that referenced this issue Aug 16, 2022
…16525)

Closes #12832. It was a bug that changing `[python-repos].{indexes,repos}` and `[python].resolver_manylinux` did not invalidate lockfiles -- those options could impact the lock result!

V2 of lockfile metadata will continue to work the same as before. Next time someone runs `generate-lockfiles` though, they will get the new v3 lockfile header.

[ci skip-rust]
[ci skip-build-wheels]
Repository owner moved this from Todo to Done in Python multiple user lockfiles Aug 16, 2022
cczona pushed a commit to cczona/pants that referenced this issue Sep 1, 2022
… more powerful `[python].resolves_to_only_binary` and `[python].resolves_to_no_binary` (pantsbuild#16513)

Part of the per-resolve config project at https://docs.google.com/document/d/1HAvpSNvNAHreFfvTAXavZGka-A3WWvPuH0sMjGUCo48/edit. 

We already with multiple resolves allow you to have conflicting versions of the same requirement, e.g. Django 2 vs Django 3. So, it's useful to also allow those resolves to set different options for `--no-binary` and `--only-binary`, as you might only need it for certain versions of a project or for certain contexts.

This only works with Pex lockfiles, with similar reasoning to why we closed pantsbuild#16476.

This adds the options to the lockfile header, making progress on pantsbuild#12832.
cczona pushed a commit to cczona/pants that referenced this issue Sep 1, 2022
Prework for:

1) Adding per-resolve options for `[python-repos].{repos,indexes}` and `[python].manylinux` 
2) Wiring up these 3 options to lockfile header metadata pantsbuild#12832

End behavior is the same.

[ci skip-rust]
[ci skip-build-wheels]
cczona pushed a commit to cczona/pants that referenced this issue Sep 1, 2022
…antsbuild#16525)

Closes pantsbuild#12832. It was a bug that changing `[python-repos].{indexes,repos}` and `[python].resolver_manylinux` did not invalidate lockfiles -- those options could impact the lock result!

V2 of lockfile metadata will continue to work the same as before. Next time someone runs `generate-lockfiles` though, they will get the new v3 lockfile header.

[ci skip-rust]
[ci skip-build-wheels]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants