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

Limit Request: pantsbuild.pants - 40 GB #1376

Closed
2 tasks done
stuhood opened this issue Oct 12, 2021 · 8 comments
Closed
2 tasks done

Limit Request: pantsbuild.pants - 40 GB #1376

stuhood opened this issue Oct 12, 2021 · 8 comments

Comments

@stuhood
Copy link

stuhood commented Oct 12, 2021

Project URL

https://pypi.org/project/pantsbuild.pants/

Does this project already exist?

  • Yes

Which limit do you want increased?

total project size

New limit

40 GB

Which indexes

PyPI

Reasons for the request

Hey folks!

The https://www.pantsbuild.org/ project has been releasing to PyPI for 7 years, initially with weekly stable releases, briefly with quarterly stable releases, and for the last few years with monthly stable releases. We've accumulated a lot of releases as a result.

We have used the pypi-cleanup tool to delete as many of our dev and rc releases as possible, but we're getting into the danger zone of considering whether some releases are too recent to delete, and we're probably a few months away from needing to delete stable releases. See pantsbuild/pants#11614 for more backstory.

Our wheel(s) contain 30% native code (which makes up most of the total volume on disk) and 70% python. Unfortunately, we are not able to publish a universal wheel (because APIs are not stable enough across 3.x minor versions), so we end up needing to publish across multiple Python versions.

We're asking for our limit to be increased from 20GB to 40GB (doubled) in order to avoid needing to bug you all again in the next few years (fingers crossed).

Thank you for your consideration!

Code of Conduct

  • I agree to follow the PSF Code of Conduct
@pradyunsg pradyunsg changed the title Limit Request: pantsbuild.pants - 40,000 MB Limit Request: pantsbuild.pants - 40 GB Oct 13, 2021
@pradyunsg
Copy link
Contributor

pradyunsg commented Oct 15, 2021

Collecting the relevant numbers to help other moderators/admins make a decision here.

Looking at https://pypi.org/project/pantsbuild.pants/#history, the project get a new release roughly every 7-10 days and each release seems to be ~200 MB (two ~60 MB manylinux wheel + four ~9MB MacOS wheels + an sdist).

With an additional 20 GB, that'll give this project ~20000 MB more, which is ~100 releases which would last... two-three years at their current release cadence and size, without deletions.

The project seems to regularly trim their older developement and pre-releases though! Between 1 April 2021 to 15 Oct 2021, there have been 55 releases. Of this, 49 are pre-releases (17 dev, 32 rc). The six stable releases are 2.7.0, 2.6.1, 2.6.0, 2.5.2, 2.5.1 and 2.5.0. From 1 April 2020 to 15 Oct 2020, there are currently only six releases (1.30.1, 1.30.0, 1.29.0, 1.28.0, 1.27.0, 1.26.0).

I think it is reasonable to expect that they'll continue to trim older pre-releases like this, with which they'll end up with 12 releases every year, which would last >8 years.

@pradyunsg
Copy link
Contributor

Question for @stuhood: What's the story with the 60 MB manylinux wheel vs the 9 MB MacOS? What makes it so much bigger than the MacOS wheels?

@pradyunsg
Copy link
Contributor

My thoughts on this one: This is a reasonable request overall. The project is well established and is generally mindful of their PyPI usage (they have a step of deleting stale releases in their release process -- pantsbuild/pants#13234).

This is a big enough request though, that I'd like to wait on at least one more moderator / admin to comment before actioning on this. :)

@stuhood
Copy link
Author

stuhood commented Oct 15, 2021

Thank you for the very thoughtful analysis!

Question for @stuhood: What's the story with the 60 MB manylinux wheel vs the 9 MB MacOS? What makes it so much bigger than the MacOS wheels?

I think that the situation there is that on Linux many system APIs end up embedded in the binary (which improves compatibility), whereas macOS makes that effectively impossible, and requires that you dynamically link in more cases.

But: we also ship with debug symbols in order to improve debuggability (which recently helped us here, for example). That doesn't explain the Linux/macOS difference, but disabling/stripping debug symbols would likely shrink these significantly.

If the PyPI community would prefer that we disable those moving forward, we would be willing to: we would still need an increased limit, but possibly not quite as much.

@pradyunsg
Copy link
Contributor

pradyunsg commented Oct 28, 2021

I think it's worthwhile to investigate how much of a difference it'd make.

Right now, the Linux wheels are ~7x the size of MacOS wheels.

If they come down to around the same size as the MacOS wheels, that would make your entire releases be 9x7 = 63 MB, which is about as big as a single Linux wheel right now. With such reduction, the requested limit increase would be sufficient for >300 releases, which is >20 years.

@pradyunsg
Copy link
Contributor

This is a big enough request though, that I'd like to wait on at least one more moderator / admin to comment before actioning on this. :)

This is basically what we're waiting on now. I've pinged the relevant people, who might be able to take a closer look when they have time.

@ewdurbin
Copy link
Member

ewdurbin commented Feb 7, 2022

Project total size for pantsbuild.pants increased to 40GiB.

@stuhood
Copy link
Author

stuhood commented Feb 7, 2022

Thank you!

stuhood added a commit to pantsbuild/pants that referenced this issue Feb 7, 2022
… hooks. (#14390)

pypi/support#1376 was approved, so increase the limit for the pre-release size check. Additionally, remove the deprecated `validate` goal from the commit hooks.

[ci skip-rust]
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

3 participants