Skip to content

Commit 344784f

Browse files
authored
Merge branch 'pypi:main' into main
2 parents 8cdaeb6 + 7808bbf commit 344784f

File tree

222 files changed

+43965
-38931
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

222 files changed

+43965
-38931
lines changed

.github/workflows/node-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
persist-credentials: false
3333
- uses: actions/setup-node@v4
3434
with:
35-
node-version: 23.9.0
35+
node-version: 23.10.0
3636
cache: 'npm'
3737
- name: Install Node dependencies
3838
run: npm ci

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# First things first, we build an image which is where we're going to compile
22
# our static assets with. We use this stage in development.
3-
FROM node:23.9.0-bookworm AS static-deps
3+
FROM node:23.10.0-bookworm AS static-deps
44

55
WORKDIR /opt/warehouse/src/
66

dev/environment

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ WAREHOUSE_ENV=development
55
WAREHOUSE_TOKEN=insecuretoken
66
WAREHOUSE_IP_SALT="insecure himalayan pink salt"
77

8+
USERDOCS_DOMAIN="http://localhost:10000"
9+
810
TERMS_NOTIFICATION_BATCH_SIZE=0
911

1012
AWS_ACCESS_KEY_ID=foo

docs/mkdocs-user-docs.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ edit_uri: blob/main/docs/user/
6161

6262
nav:
6363
- "index.md"
64+
- "Project Management":
65+
- "project-management/storage-limits.md"
66+
- "project-management/yanking.md"
6467
- "Organization Accounts":
6568
- "organization-accounts/index.md"
6669
- "organization-accounts/org-acc-faq.md"
29 KB
Loading
51.6 KB
Loading
55.4 KB
Loading

docs/user/attestations/producing-attestations.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -187,18 +187,11 @@ Before uploading attestations to the index, please:
187187
aud: pypi
188188
script:
189189
# Install dependencies
190-
- apt update && apt install -y jq
191-
- python -m pip install -U twine id
190+
- python -m pip install -U twine
192191

193-
# Retrieve the OIDC token from GitLab CI/CD, and exchange it for a PyPI API token
194-
- oidc_token=$(python -m id pypi)
195-
# Replace "https://pypi.org/*" with "https://test.pypi.org/*" if uploading to TestPyPI
196-
- resp=$(curl -X POST https://pypi.org/_/oidc/mint-token -d "{\"token\":\"${oidc_token}\"}")
197-
- api_token=$(jq --raw-output '.token' <<< "${resp}")
198-
199-
# Upload to PyPI authenticating via the newly-minted token, including the generated attestations
192+
# Upload to PyPI using Trusted Publishing, including the generated attestations
200193
# Add "--repository testpypi" if uploading to TestPyPI
201-
- twine upload --verbose --attestations -u __token__ -p "${api_token}" python_pkg/dist/*
194+
- twine upload --attestations python_pkg/dist/*
202195
```
203196

204197
Note how, compared with the [Trusted Publishing workflow][GitLab Trusted Publishing], it has the

docs/user/organization-accounts/pricing-and-payments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ title: Pricing and Payments
1414

1515
### Payment Terms
1616

17-
Invoiced monthly, based on usage. Payment is due upon reciept and will be charged to the billing information on file.
17+
Invoiced monthly, based on usage. Payment is due upon receipt and will be charged to the billing information on file.
1818

1919
## Community Organizations
2020

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: Storage Limits
3+
---
4+
5+
PyPI imposes storage limits on the size of individually uploaded files,
6+
as well as the total size of all files in a project.
7+
8+
The current default limits are **100.0 MB** for individual files and **10.0 GB**
9+
for the entire project.
10+
11+
You can see your project's current size and storage limits on
12+
the project settings page (`https://pypi.org/manage/project/YOUR-PROJECT/settings/`):
13+
14+
![](/assets/project-size-and-limits.png)
15+
16+
## File size limits
17+
18+
By default, PyPI limits the size of individual files to **100.0 MB**.
19+
If you attempt to upload a file that exceeds this limit, you'll receive
20+
an error like the following:
21+
22+
```console
23+
Uploading sampleproject-1.2.3.tar.gz
24+
HTTPError: 400 Client Error: File too large. Limit for project 'sampleproject' is 100 MB.
25+
```
26+
27+
### Requesting a file size limit increase
28+
29+
!!! note
30+
31+
Note: All users submitting feedback, reporting issues or contributing to
32+
PyPI are expected to follow the
33+
[PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).
34+
35+
If you can't upload your project's release to PyPI because you're hitting the
36+
upload file size limit, we can sometimes increase your limit. Make sure you've
37+
uploaded at least one release for the project that's under the limit
38+
(a [developmental release version number](https://packaging.python.org/en/latest/specifications/version-specifiers/#developmental-releases) is fine). Then,
39+
[file an issue](https://github.com/pypi/support/issues/new?assignees=&labels=limit+request&template=limit-request-file.yml&title=File+Limit+Request%3A+PROJECT_NAME+-+000+MB) and tell
40+
us:
41+
42+
- A link to your project on PyPI (or TestPyPI)
43+
- The size of your release, in megabytes
44+
- Which index/indexes you need the increase for (PyPI, TestPyPI, or both)
45+
- A brief description of your project, including the reason for the additional size.
46+
47+
## Project size limits
48+
49+
By default, PyPI limits the total size of all files in a project to **10.0 GB**.
50+
If you attempt to upload a file that would exceed this limit, you'll receive
51+
an error like the following:
52+
53+
```console
54+
Uploading sampleproject-1.2.3.tar.gz
55+
HTTPError: 400 Client Error: Project size too large. Limit for project 'sampleproject' total size is 10 GB.
56+
```
57+
58+
### Freeing up storage on an existing project
59+
60+
!!! important
61+
62+
Deleting and [yanking](./yanking.md) are two different actions. Yanking a release or file
63+
does **not** free up storage space.
64+
65+
!!! warning
66+
67+
Deleting releases and files from your project is permanent and cannot be undone
68+
without administrative intervention.
69+
70+
!!! warning
71+
72+
Deletion can be very disruptive for downstream dependencies of your project,
73+
since it breaks installation for
74+
[pinned versions](https://pip.pypa.io/en/stable/topics/repeatable-installs/).
75+
76+
Before performing a deletion, we **strongly** recommend that you
77+
consider the potential impact on your downstreams.
78+
79+
If you're hitting the project size limit, you can free up storage by removing
80+
old releases or individual files from your project. To do this:
81+
82+
1. Navigate to the release management for your project: `https://pypi.org/manage/project/YOUR-PROJECT/releases/`;
83+
2. Click on `Options` next to the release you wish to delete from;
84+
- If you wish to delete the entire release, click `Delete`;
85+
- If you wish to delete individual files from the release, click `Manage`,
86+
then use each file's `Options` menu to delete it.
87+
88+
### Requesting a project size limit increase
89+
90+
!!! note
91+
92+
Note: All users submitting feedback, reporting issues or contributing to
93+
PyPI are expected to follow the
94+
[PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).
95+
96+
If you can't upload your project's release to PyPI because you're hitting the project size limit,
97+
first [remove any unnecessary releases or individual files](#freeing-up-storage-on-an-existing-project)
98+
to lower your overall project size.
99+
100+
If that is not possible, we can sometimes increase your limit. [File an issue](https://github.com/pypi/support/issues/new?assignees=&labels=limit+request&template=limit-request-project.yml&title=Project+Limit+Request%3A+PROJECT_NAME+-+00+GB) and tell us:
101+
102+
- A link to your project on PyPI (or TestPyPI)
103+
- The total size of your project, in gigabytes
104+
- A brief description of your project, including the reason for the additional size.

0 commit comments

Comments
 (0)