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

Pants should be distributed on Github Releases #12397

Closed
stuhood opened this issue Jul 21, 2021 · 9 comments
Closed

Pants should be distributed on Github Releases #12397

stuhood opened this issue Jul 21, 2021 · 9 comments
Assignees

Comments

@stuhood
Copy link
Member

stuhood commented Jul 21, 2021

There are two large problems with our use of PyPI:

  1. The https://github.com/pantsbuild/setup script resolves using PIP for the specified pantsbuild.pants wheel version, but without using a lockfile. (relates to Verifying Pants installations)
  2. We have hit PyPI's size limits in the past, and are close to doing so again. See Manage pantsbuild.pants release size on PyPI #11614.

To ensure that using a particular version of Pants is reproducible over time, and to reduce load on PyPI, we should either:

  1. distribute Pants as a pre-built PEX
  2. distribute Pants as a lockfile that fully pins transitive dependencies for supported platforms (with the same considerations as Interpreter constraints do not play well with lock files. #12200)
  3. have the pants script dynamically generate and recommend committing a lockfile EDIT: Does not resolve Manage pantsbuild.pants release size on PyPI #11614.
  4. switch the distribution model of Pants to a native binary
@stuhood
Copy link
Member Author

stuhood commented Oct 14, 2021

#13234 (comment) discusses how to accomplish this with PEX: we should prioritize it to resolve #11614.

@stuhood stuhood changed the title Pants bootstrap should use a lockfile or equivalent Pants should be distributed as a PEX Jan 4, 2022
@stuhood
Copy link
Member Author

stuhood commented Jan 4, 2022

I've updated the title (but not the description, yet) to reflect the fact that we should almost certainly do this by shipping a PEX, as explained in #13234 (comment). The reasoning is that shipping a PEX resolves #11614, while also being a natural incremental step toward shipping a rust binary in #7369.

@jsirois
Copy link
Contributor

jsirois commented Jan 6, 2022

Noting that none of this solves the pantsbuild.pants release size on PyPI since we must live there to satisfy plugin dependencies. We can cheat and etc, but we'll be fighting reality a bit so we should be fully aware there are issues here.

@stuhood
Copy link
Member Author

stuhood commented Jan 6, 2022

Noting that none of this solves the pantsbuild.pants release size on PyPI since we must live there to satisfy plugin dependencies. We can cheat and etc, but we'll be fighting reality a bit so we should be fully aware there are issues here.

That is addressed in the comment that I linked: #13234 (comment)

@jsirois
Copy link
Contributor

jsirois commented Jan 6, 2022

It's not, that only partially addresses, and you can do it easier withPEX_TOOLS=1 pants.pex repository .... You aren't considering plugin development for example. We need some Pants distribution out there for that, at least type stubs. My point stands, we're cheating here and need to be careful and consider all the angles.

@jsirois
Copy link
Contributor

jsirois commented Jan 6, 2022

Expanded there. There are vague mentions of developing a plugin, but fwict they are not fleshed out.

@stuhood stuhood added onboarding Issues that affect a new user's onboarding experience and removed onboarding Issues that affect a new user's onboarding experience labels Mar 31, 2022
@Eric-Arellano
Copy link
Contributor

@chrisjrn is currently working on #7369 and going directly for PyOxizider, rather than this intermediate Pex step. That's preferable to avoid this middle step.

Let's re-open this if PyOxidizer ends up not working out.

@stuhood stuhood changed the title Pants should be distributed as a PEX Pants should be distributed on Github Releases May 18, 2023
@stuhood
Copy link
Member Author

stuhood commented May 18, 2023

I've update the title and description a bit, since #7369 didn't address #11614, or the reproducibility issue.

This ticket lightly dupes #11614, but I view it as more strategic ("how do we stop using PyPI") whereas #11614 is more tactical ("how do we (ab)use PyPI less").

@stuhood
Copy link
Member Author

stuhood commented Sep 18, 2023

Huge thanks to @thejcannon for this one.

@stuhood stuhood closed this as completed Sep 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants