Skip to content

Commit d23a701

Browse files
WIP: Ran make translations
2 parents 14f6547 + dfcdab7 commit d23a701

File tree

191 files changed

+42616
-38219
lines changed

Some content is hidden

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

191 files changed

+42616
-38219
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
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.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: Yanking
3+
---
4+
5+
!!! note
6+
7+
PyPI currently only supports yanking of *entire releases*, not individual files.
8+
9+
PyPI supports *yanking* as a non-destructive alternative to deletion.
10+
11+
A *yanked release* is a release that is always ignored by an installer, unless it
12+
is the only release that matches a [version specifier] (using either `==` or `===`).
13+
See [PEP 592] for more information.
14+
15+
[version specifier]: https://packaging.python.org/en/latest/specifications/version-specifiers/
16+
17+
[PEP 592]: https://peps.python.org/pep-0592/
18+
19+
## When should I yank a release?
20+
21+
Like deletion, yanking should be done sparingly since it can be disruptive to
22+
downstream users of a package.
23+
24+
Maintainers should consider yanking a release when:
25+
26+
- The release is broken or uninstallable.
27+
- The release violates its own compatibility guarantees. For example, `sampleproject 1.0.1`
28+
might be yanked if it's *unintentionally* incompatible with `sampleproject 1.0.0`.
29+
- The release contains a security vulnerability.
30+
31+
## How do I yank a release?
32+
33+
To yank a release, go to the release management page for your project:
34+
`https://pypi.org/manage/project/YOUR-PROJECT/releases/`.
35+
36+
Click on the `Options` button next to the release you wish to yank, then click `Yank`:
37+
38+
![](/assets/release-options-yank.png)
39+
40+
A modal dialogue will appear, asking you to confirm the yank and provide an
41+
optional reason for yanking:
42+
43+
![](/assets/yank-confirm-modal.png)
44+
45+
The reason, if provided, will be displayed on the release page as well
46+
as in the [index APIs](../api/index-api.md) used by installers.
47+
48+
!!! tip
49+
50+
Providing a reason for yanking is **strongly encouraged**, as it can
51+
help downstream users determine how to respond to the yank.

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)