diff --git a/dev/environment b/dev/environment
index e84e552d3220..45a356ac8c35 100644
--- a/dev/environment
+++ b/dev/environment
@@ -5,6 +5,8 @@ WAREHOUSE_ENV=development
 WAREHOUSE_TOKEN=insecuretoken
 WAREHOUSE_IP_SALT="insecure himalayan pink salt"
 
+USERDOCS_DOMAIN="http://localhost:10000"
+
 TERMS_NOTIFICATION_BATCH_SIZE=0
 
 AWS_ACCESS_KEY_ID=foo
diff --git a/docs/mkdocs-user-docs.yml b/docs/mkdocs-user-docs.yml
index d455ad481ade..2cdb3c0179a0 100644
--- a/docs/mkdocs-user-docs.yml
+++ b/docs/mkdocs-user-docs.yml
@@ -61,6 +61,9 @@ edit_uri: blob/main/docs/user/
 
 nav:
   - "index.md"
+  - "Project Management":
+      - "project-management/storage-limits.md"
+      - "project-management/yanking.md"
   - "Organization Accounts":
       - "organization-accounts/index.md"
       - "organization-accounts/org-acc-faq.md"
diff --git a/docs/user/assets/project-size-and-limits.png b/docs/user/assets/project-size-and-limits.png
new file mode 100644
index 000000000000..a42dc6720131
Binary files /dev/null and b/docs/user/assets/project-size-and-limits.png differ
diff --git a/docs/user/assets/release-options-yank.png b/docs/user/assets/release-options-yank.png
new file mode 100644
index 000000000000..0c67c27871c3
Binary files /dev/null and b/docs/user/assets/release-options-yank.png differ
diff --git a/docs/user/assets/yank-confirm-modal.png b/docs/user/assets/yank-confirm-modal.png
new file mode 100644
index 000000000000..cd06bcd01dec
Binary files /dev/null and b/docs/user/assets/yank-confirm-modal.png differ
diff --git a/docs/user/project-management/storage-limits.md b/docs/user/project-management/storage-limits.md
new file mode 100644
index 000000000000..834a5d3137f3
--- /dev/null
+++ b/docs/user/project-management/storage-limits.md
@@ -0,0 +1,104 @@
+---
+title: Storage Limits
+---
+
+PyPI imposes storage limits on the size of individually uploaded files,
+as well as the total size of all files in a project.
+
+The current default limits are **100.0 MB** for individual files and **10.0 GB**
+for the entire project.
+
+You can see your project's current size and storage limits on
+the project settings page (`https://pypi.org/manage/project/YOUR-PROJECT/settings/`):
+
+![](/assets/project-size-and-limits.png)
+
+## File size limits
+
+By default, PyPI limits the size of individual files to **100.0 MB**.
+If you attempt to upload a file that exceeds this limit, you'll receive
+an error like the following:
+
+```console
+Uploading sampleproject-1.2.3.tar.gz
+HTTPError: 400 Client Error: File too large. Limit for project 'sampleproject' is 100 MB.
+```
+
+### Requesting a file size limit increase
+
+!!! note
+
+    Note: All users submitting feedback, reporting issues or contributing to
+    PyPI are expected to follow the
+    [PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).
+
+If you can't upload your project's release to PyPI because you're hitting the
+upload file size limit, we can sometimes increase your limit. Make sure you've
+uploaded at least one release for the project that's under the limit
+(a [developmental release version number](https://packaging.python.org/en/latest/specifications/version-specifiers/#developmental-releases) is fine). Then,
+[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
+us:
+
+- A link to your project on PyPI (or TestPyPI)
+- The size of your release, in megabytes
+- Which index/indexes you need the increase for (PyPI, TestPyPI, or both)
+- A brief description of your project, including the reason for the additional size.
+
+## Project size limits
+
+By default, PyPI limits the total size of all files in a project to **10.0 GB**.
+If you attempt to upload a file that would exceed this limit, you'll receive
+an error like the following:
+
+```console
+Uploading sampleproject-1.2.3.tar.gz
+HTTPError: 400 Client Error: Project size too large. Limit for project 'sampleproject' total size is 10 GB.
+```
+
+### Freeing up storage on an existing project
+
+!!! important
+
+    Deleting and [yanking](./yanking.md) are two different actions. Yanking a release or file
+    does **not** free up storage space.
+
+!!! warning
+
+    Deleting releases and files from your project is permanent and cannot be undone
+    without administrative intervention.
+
+!!! warning
+
+    Deletion can be very disruptive for downstream dependencies of your project,
+    since it breaks installation for
+    [pinned versions](https://pip.pypa.io/en/stable/topics/repeatable-installs/).
+
+    Before performing a deletion, we **strongly** recommend that you
+    consider the potential impact on your downstreams.
+
+If you're hitting the project size limit, you can free up storage by removing
+old releases or individual files from your project. To do this:
+
+1. Navigate to the release management for your project: `https://pypi.org/manage/project/YOUR-PROJECT/releases/`;
+2. Click on `Options` next to the release you wish to delete from;
+    - If you wish to delete the entire release, click `Delete`;
+    - If you wish to delete individual files from the release, click `Manage`,
+      then use each file's `Options` menu to delete it.
+
+### Requesting a project size limit increase
+
+!!! note
+
+    Note: All users submitting feedback, reporting issues or contributing to
+    PyPI are expected to follow the
+    [PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).
+
+If you can't upload your project's release to PyPI because you're hitting the project size limit,
+first [remove any unnecessary releases or individual files](#freeing-up-storage-on-an-existing-project)
+to lower your overall project size.
+
+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:
+
+- A link to your project on PyPI (or TestPyPI)
+- The total size of your project, in gigabytes
+- A brief description of your project, including the reason for the additional size.
diff --git a/docs/user/project-management/yanking.md b/docs/user/project-management/yanking.md
new file mode 100644
index 000000000000..2c491e9163da
--- /dev/null
+++ b/docs/user/project-management/yanking.md
@@ -0,0 +1,51 @@
+---
+title: Yanking
+---
+
+!!! note
+
+    PyPI currently only supports yanking of *entire releases*, not individual files.
+
+PyPI supports *yanking* as a non-destructive alternative to deletion.
+
+A *yanked release* is a release that is always ignored by an installer, unless it
+is the only release that matches a [version specifier] (using either `==` or `===`).
+See [PEP 592] for more information.
+
+[version specifier]: https://packaging.python.org/en/latest/specifications/version-specifiers/
+
+[PEP 592]: https://peps.python.org/pep-0592/
+
+## When should I yank a release?
+
+Like deletion, yanking should be done sparingly since it can be disruptive to
+downstream users of a package.
+
+Maintainers should consider yanking a release when:
+
+- The release is broken or uninstallable.
+- The release violates its own compatibility guarantees. For example, `sampleproject 1.0.1`
+  might be yanked if it's *unintentionally* incompatible with `sampleproject 1.0.0`.
+- The release contains a security vulnerability.
+
+## How do I yank a release?
+
+To yank a release, go to the release management page for your project:
+`https://pypi.org/manage/project/YOUR-PROJECT/releases/`.
+
+Click on the `Options` button next to the release you wish to yank, then click `Yank`:
+
+![](/assets/release-options-yank.png)
+
+A modal dialogue will appear, asking you to confirm the yank and provide an
+optional reason for yanking:
+
+![](/assets/yank-confirm-modal.png)
+
+The reason, if provided, will be displayed on the release page as well
+as in the [index APIs](../api/index-api.md) used by installers.
+
+!!! tip
+
+    Providing a reason for yanking is **strongly encouraged**, as it can
+    help downstream users determine how to respond to the yank.
diff --git a/tests/unit/forklift/test_init.py b/tests/unit/forklift/test_init.py
index 280a7d65baae..24805d9f3bd6 100644
--- a/tests/unit/forklift/test_init.py
+++ b/tests/unit/forklift/test_init.py
@@ -25,6 +25,9 @@ def test_includeme(forklift_domain, monkeypatch):
     _help_url = pretend.stub()
     monkeypatch.setattr(forklift, "_help_url", _help_url)
 
+    _user_docs_url = pretend.stub()
+    monkeypatch.setattr(forklift, "_user_docs_url", _user_docs_url)
+
     config = pretend.stub(
         get_settings=lambda: settings,
         include=pretend.call_recorder(lambda n: None),
@@ -56,7 +59,10 @@ def test_includeme(forklift_domain, monkeypatch):
         ),
     ]
 
-    assert config.add_request_method.calls == [pretend.call(_help_url, name="help_url")]
+    assert config.add_request_method.calls == [
+        pretend.call(_help_url, name="help_url"),
+        pretend.call(_user_docs_url, name="user_docs_url"),
+    ]
     if forklift_domain:
         assert config.add_template_view.calls == [
             pretend.call(
@@ -90,3 +96,16 @@ def test_help_url():
     assert request.route_url.calls == [
         pretend.call("help", _host=warehouse_domain, _anchor="foo")
     ]
+
+
+def test_user_docs_url():
+    docs_domain = "http://example.com"
+    request = pretend.stub(
+        registry=pretend.stub(settings={"userdocs.domain": docs_domain}),
+    )
+
+    assert forklift._user_docs_url(request, "/foo") == f"{docs_domain}/foo"
+    assert (
+        forklift._user_docs_url(request, "/foo", anchor="bar")
+        == f"{docs_domain}/foo#bar"
+    )
diff --git a/tests/unit/forklift/test_legacy.py b/tests/unit/forklift/test_legacy.py
index 00701848d5a8..9717f6b89532 100644
--- a/tests/unit/forklift/test_legacy.py
+++ b/tests/unit/forklift/test_legacy.py
@@ -856,9 +856,7 @@ def test_fails_with_invalid_names(self, pyramid_config, db_request, name):
 
         assert resp.status_code == 400
         assert resp.status == (
-            "400 The name {!r} isn't allowed. "
-            "See /the/help/url/ "
-            "for more information."
+            "400 The name {!r} isn't allowed. See /the/help/url/ for more information."
         ).format(name)
 
     @pytest.mark.parametrize(
@@ -1622,29 +1620,25 @@ def test_upload_fails_with_deprecated_classifier(
             {"md5_digest": "bad"},
             {
                 "sha256_digest": (
-                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad"
-                    "badbadb"
+                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
                 )
             },
             {
                 "md5_digest": "bad",
                 "sha256_digest": (
-                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad"
-                    "badbadb"
+                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
                 ),
             },
             {
                 "md5_digest": _TAR_GZ_PKG_MD5,
                 "sha256_digest": (
-                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad"
-                    "badbadb"
+                    "badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb"
                 ),
             },
             {
                 "md5_digest": "bad",
                 "sha256_digest": (
-                    "4a8422abcc484a4086bdaa618c65289f749433b07eb433c51c4e37714"
-                    "3ff5fdb"
+                    "4a8422abcc484a4086bdaa618c65289f749433b07eb433c51c4e377143ff5fdb"
                 ),
             },
         ],
@@ -1722,9 +1716,7 @@ def test_upload_fails_with_invalid_file(self, pyramid_config, db_request):
         resp = excinfo.value
 
         assert resp.status_code == 400
-        assert resp.status == (
-            "400 Invalid distribution file. " "File is not a zipfile"
-        )
+        assert resp.status == ("400 Invalid distribution file. File is not a zipfile")
 
     def test_upload_fails_end_of_file_error(
         self, pyramid_config, db_request, project_service
@@ -1769,9 +1761,7 @@ def test_upload_fails_end_of_file_error(
         resp = excinfo.value
 
         assert resp.status_code == 400
-        assert resp.status == (
-            "400 Invalid distribution file. " "File is not a tarfile"
-        )
+        assert resp.status == ("400 Invalid distribution file. File is not a tarfile")
 
     def test_upload_fails_with_too_large_file(self, pyramid_config, db_request):
         user = UserFactory.create()
@@ -1800,14 +1790,21 @@ def test_upload_fails_with_too_large_file(self, pyramid_config, db_request):
                 ),
             }
         )
-        db_request.help_url = pretend.call_recorder(lambda **kw: "/the/help/url/")
+        db_request.user_docs_url = pretend.call_recorder(
+            lambda *a, **kw: "/the/help/url/"
+        )
 
         with pytest.raises(HTTPBadRequest) as excinfo:
             legacy.file_upload(db_request)
 
         resp = excinfo.value
 
-        assert db_request.help_url.calls == [pretend.call(_anchor="file-size-limit")]
+        assert db_request.user_docs_url.calls == [
+            pretend.call(
+                "/project-management/storage-limits",
+                anchor="requesting-a-file-size-limit-increase",
+            )
+        ]
         assert resp.status_code == 400
         assert resp.status == (
             "400 File too large. Limit for project 'foobar' is 100 MB. "
@@ -1847,14 +1844,21 @@ def test_upload_fails_with_too_large_project_size_default_limit(
                 ),
             }
         )
-        db_request.help_url = pretend.call_recorder(lambda **kw: "/the/help/url/")
+        db_request.user_docs_url = pretend.call_recorder(
+            lambda *a, **kw: "/the/help/url/"
+        )
 
         with pytest.raises(HTTPBadRequest) as excinfo:
             legacy.file_upload(db_request)
 
         resp = excinfo.value
 
-        assert db_request.help_url.calls == [pretend.call(_anchor="project-size-limit")]
+        assert db_request.user_docs_url.calls == [
+            pretend.call(
+                "/project-management/storage-limits",
+                anchor="requesting-a-project-size-limit-increase",
+            )
+        ]
         assert resp.status_code == 400
         assert resp.status == (
             "400 Project size too large."
@@ -1901,14 +1905,21 @@ def test_upload_fails_with_too_large_project_size_custom_limit(
                 ),
             }
         )
-        db_request.help_url = pretend.call_recorder(lambda **kw: "/the/help/url/")
+        db_request.user_docs_url = pretend.call_recorder(
+            lambda *a, **kw: "/the/help/url/"
+        )
 
         with pytest.raises(HTTPBadRequest) as excinfo:
             legacy.file_upload(db_request)
 
         resp = excinfo.value
 
-        assert db_request.help_url.calls == [pretend.call(_anchor="project-size-limit")]
+        assert db_request.user_docs_url.calls == [
+            pretend.call(
+                "/project-management/storage-limits",
+                anchor="requesting-a-project-size-limit-increase",
+            )
+        ]
         assert resp.status_code == 400
         assert resp.status == (
             "400 Project size too large."
diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py
index 4835bb8dec9b..c467800c3348 100644
--- a/tests/unit/test_config.py
+++ b/tests/unit/test_config.py
@@ -312,6 +312,7 @@ def __init__(self):
         "terms.revision": "initial",
         "terms.notification_batch_size": 1000,
         "warehouse.commit": "null",
+        "userdocs.domain": "https://docs.pypi.org",
         "site.name": "Warehouse",
         "token.two_factor.max_age": 300,
         "remember_device.days": 30,
@@ -355,17 +356,11 @@ def __init__(self):
                     "pyramid_debugtoolbar.panels.versions.VersionDebugPanel",
                     "pyramid_debugtoolbar.panels.settings.SettingsDebugPanel",
                     "pyramid_debugtoolbar.panels.headers.HeaderDebugPanel",
-                    (
-                        "pyramid_debugtoolbar.panels.request_vars."
-                        "RequestVarsDebugPanel"
-                    ),
+                    ("pyramid_debugtoolbar.panels.request_vars.RequestVarsDebugPanel"),
                     "pyramid_debugtoolbar.panels.renderings.RenderingsDebugPanel",
                     "pyramid_debugtoolbar.panels.session.SessionDebugPanel",
                     "pyramid_debugtoolbar.panels.logger.LoggingPanel",
-                    (
-                        "pyramid_debugtoolbar.panels.performance."
-                        "PerformanceDebugPanel"
-                    ),
+                    ("pyramid_debugtoolbar.panels.performance.PerformanceDebugPanel"),
                     "pyramid_debugtoolbar.panels.routes.RoutesDebugPanel",
                     "pyramid_debugtoolbar.panels.sqla.SQLADebugPanel",
                     "pyramid_debugtoolbar.panels.tweens.TweensDebugPanel",
diff --git a/warehouse/config.py b/warehouse/config.py
index 8f486547c8bb..e9926d42929e 100644
--- a/warehouse/config.py
+++ b/warehouse/config.py
@@ -349,6 +349,9 @@ def configure(settings=None):
     maybe_set(settings, "warehouse.domain", "WAREHOUSE_DOMAIN")
     maybe_set(settings, "forklift.domain", "FORKLIFT_DOMAIN")
     maybe_set(settings, "auth.domain", "AUTH_DOMAIN")
+    maybe_set(
+        settings, "userdocs.domain", "USERDOCS_DOMAIN", default="https://docs.pypi.org"
+    )
     maybe_set(settings, "warehouse.legacy_domain", "WAREHOUSE_LEGACY_DOMAIN")
     maybe_set(settings, "site.name", "SITE_NAME", default="Warehouse")
     maybe_set(settings, "aws.key_id", "AWS_ACCESS_KEY_ID")
diff --git a/warehouse/forklift/__init__.py b/warehouse/forklift/__init__.py
index b1b73a653302..ce0f356fb008 100644
--- a/warehouse/forklift/__init__.py
+++ b/warehouse/forklift/__init__.py
@@ -14,12 +14,26 @@
 #       will go away eventually, once we split forklift out into it's own
 #       project.
 
+from rfc3986 import builder
+
 
 def _help_url(request, **kwargs):
     warehouse_domain = request.registry.settings.get("warehouse.domain")
     return request.route_url("help", _host=warehouse_domain, **kwargs)
 
 
+def _user_docs_url(request, path, anchor: str | None = None):
+    docs_domain = request.registry.settings.get("userdocs.domain")
+    return (
+        builder.URIBuilder()
+        .from_uri(docs_domain)
+        .add_path(path)
+        .add_fragment(anchor)
+        .finalize()
+        .unsplit()
+    )
+
+
 def includeme(config):
     # We need to get the value of the Warehouse and Forklift domains, we'll use
     # these to segregate the Warehouse routes from the Forklift routes until
@@ -46,6 +60,7 @@ def includeme(config):
     )
 
     config.add_request_method(_help_url, name="help_url")
+    config.add_request_method(_user_docs_url, name="user_docs_url")
 
     if forklift:
         config.add_template_view(
diff --git a/warehouse/forklift/legacy.py b/warehouse/forklift/legacy.py
index b329ccc3d4cf..782a91a6ef77 100644
--- a/warehouse/forklift/legacy.py
+++ b/warehouse/forklift/legacy.py
@@ -792,8 +792,7 @@ def file_upload(request):
         if rendered is None:
             if meta.description_content_type:
                 message = (
-                    "The description failed to render "
-                    "for '{description_content_type}'."
+                    "The description failed to render for '{description_content_type}'."
                 ).format(description_content_type=description_content_type)
             else:
                 message = (
@@ -1048,7 +1047,10 @@ def file_upload(request):
                             name=project.name, limit=file_size_limit // ONE_MIB
                         )
                         + "See "
-                        + request.help_url(_anchor="file-size-limit")
+                        + request.user_docs_url(
+                            "/project-management/storage-limits",
+                            anchor="requesting-a-file-size-limit-increase",
+                        )
                         + " for more information.",
                     )
                 if file_size + project.total_size > project_size_limit:
@@ -1059,7 +1061,10 @@ def file_upload(request):
                             name=project.name, limit=project_size_limit // ONE_GIB
                         )
                         + "See "
-                        + request.help_url(_anchor="project-size-limit"),
+                        + request.user_docs_url(
+                            "/project-management/storage-limits",
+                            anchor="requesting-a-project-size-limit-increase",
+                        ),
                     )
                 fp.write(chunk)
                 for hasher in file_hashes.values():
diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot
index 81584f2f2bbc..e94655773497 100644
--- a/warehouse/locale/messages.pot
+++ b/warehouse/locale/messages.pot
@@ -973,65 +973,63 @@ msgstr ""
 #: warehouse/templates/pages/help.html:20
 #: warehouse/templates/pages/help.html:230
 #: warehouse/templates/pages/help.html:237
-#: warehouse/templates/pages/help.html:251
-#: warehouse/templates/pages/help.html:278
 #: warehouse/templates/pages/help.html:282
-#: warehouse/templates/pages/help.html:339
-#: warehouse/templates/pages/help.html:361
-#: warehouse/templates/pages/help.html:366
-#: warehouse/templates/pages/help.html:371
-#: warehouse/templates/pages/help.html:373
-#: warehouse/templates/pages/help.html:378
-#: warehouse/templates/pages/help.html:379
-#: warehouse/templates/pages/help.html:380
+#: warehouse/templates/pages/help.html:286
+#: warehouse/templates/pages/help.html:343
+#: warehouse/templates/pages/help.html:365
+#: warehouse/templates/pages/help.html:370
+#: warehouse/templates/pages/help.html:375
+#: warehouse/templates/pages/help.html:377
+#: warehouse/templates/pages/help.html:382
+#: warehouse/templates/pages/help.html:383
 #: warehouse/templates/pages/help.html:384
-#: warehouse/templates/pages/help.html:417
-#: warehouse/templates/pages/help.html:419
-#: warehouse/templates/pages/help.html:422
-#: warehouse/templates/pages/help.html:458
-#: warehouse/templates/pages/help.html:463
-#: warehouse/templates/pages/help.html:469
-#: warehouse/templates/pages/help.html:548
-#: warehouse/templates/pages/help.html:580
-#: warehouse/templates/pages/help.html:586
-#: warehouse/templates/pages/help.html:589
-#: warehouse/templates/pages/help.html:591
-#: warehouse/templates/pages/help.html:600
-#: warehouse/templates/pages/help.html:622
-#: warehouse/templates/pages/help.html:629
-#: warehouse/templates/pages/help.html:647
-#: warehouse/templates/pages/help.html:654
-#: warehouse/templates/pages/help.html:665
-#: warehouse/templates/pages/help.html:691
-#: warehouse/templates/pages/help.html:704
-#: warehouse/templates/pages/help.html:709
-#: warehouse/templates/pages/help.html:731
-#: warehouse/templates/pages/help.html:753
-#: warehouse/templates/pages/help.html:767
-#: warehouse/templates/pages/help.html:776
-#: warehouse/templates/pages/help.html:788
-#: warehouse/templates/pages/help.html:799
-#: warehouse/templates/pages/help.html:804
-#: warehouse/templates/pages/help.html:812
-#: warehouse/templates/pages/help.html:823
-#: warehouse/templates/pages/help.html:868
-#: warehouse/templates/pages/help.html:876
-#: warehouse/templates/pages/help.html:924
-#: warehouse/templates/pages/help.html:929
-#: warehouse/templates/pages/help.html:934
-#: warehouse/templates/pages/help.html:944
-#: warehouse/templates/pages/help.html:953
-#: warehouse/templates/pages/help.html:967
-#: warehouse/templates/pages/help.html:975
-#: warehouse/templates/pages/help.html:983
-#: warehouse/templates/pages/help.html:991
-#: warehouse/templates/pages/help.html:1000
-#: warehouse/templates/pages/help.html:1019
+#: warehouse/templates/pages/help.html:388
+#: warehouse/templates/pages/help.html:421
+#: warehouse/templates/pages/help.html:423
+#: warehouse/templates/pages/help.html:426
+#: warehouse/templates/pages/help.html:462
+#: warehouse/templates/pages/help.html:467
+#: warehouse/templates/pages/help.html:473
+#: warehouse/templates/pages/help.html:552
+#: warehouse/templates/pages/help.html:584
+#: warehouse/templates/pages/help.html:590
+#: warehouse/templates/pages/help.html:593
+#: warehouse/templates/pages/help.html:595
+#: warehouse/templates/pages/help.html:604
+#: warehouse/templates/pages/help.html:626
+#: warehouse/templates/pages/help.html:633
+#: warehouse/templates/pages/help.html:651
+#: warehouse/templates/pages/help.html:658
+#: warehouse/templates/pages/help.html:669
+#: warehouse/templates/pages/help.html:703
+#: warehouse/templates/pages/help.html:708
+#: warehouse/templates/pages/help.html:730
+#: warehouse/templates/pages/help.html:752
+#: warehouse/templates/pages/help.html:766
+#: warehouse/templates/pages/help.html:775
+#: warehouse/templates/pages/help.html:787
+#: warehouse/templates/pages/help.html:798
+#: warehouse/templates/pages/help.html:803
+#: warehouse/templates/pages/help.html:811
+#: warehouse/templates/pages/help.html:822
+#: warehouse/templates/pages/help.html:867
+#: warehouse/templates/pages/help.html:875
+#: warehouse/templates/pages/help.html:923
+#: warehouse/templates/pages/help.html:928
+#: warehouse/templates/pages/help.html:933
+#: warehouse/templates/pages/help.html:943
+#: warehouse/templates/pages/help.html:952
+#: warehouse/templates/pages/help.html:966
+#: warehouse/templates/pages/help.html:974
+#: warehouse/templates/pages/help.html:982
+#: warehouse/templates/pages/help.html:990
+#: warehouse/templates/pages/help.html:999
+#: warehouse/templates/pages/help.html:1018
+#: warehouse/templates/pages/help.html:1033
 #: warehouse/templates/pages/help.html:1034
 #: warehouse/templates/pages/help.html:1035
 #: warehouse/templates/pages/help.html:1036
-#: warehouse/templates/pages/help.html:1037
-#: warehouse/templates/pages/help.html:1042
+#: warehouse/templates/pages/help.html:1041
 #: warehouse/templates/pages/sponsors.html:33
 #: warehouse/templates/pages/sponsors.html:37
 #: warehouse/templates/pages/sponsors.html:41
@@ -3150,7 +3148,7 @@ msgstr ""
 #: warehouse/templates/includes/packaging/project-data.html:170
 #: warehouse/templates/includes/packaging/project-data.html:237
 #: warehouse/templates/includes/packaging/project-data.html:243
-#: warehouse/templates/pages/help.html:633
+#: warehouse/templates/pages/help.html:637
 msgid "Maintainer:"
 msgstr ""
 
@@ -6596,7 +6594,7 @@ msgid "Project Roles"
 msgstr ""
 
 #: warehouse/templates/manage/project/roles.html:46
-#: warehouse/templates/pages/help.html:632
+#: warehouse/templates/pages/help.html:636
 msgid "There are two possible roles for collaborators:"
 msgstr ""
 
@@ -7648,22 +7646,22 @@ msgid "My Account"
 msgstr ""
 
 #: warehouse/templates/pages/help.html:158
-#: warehouse/templates/pages/help.html:577
+#: warehouse/templates/pages/help.html:581
 msgid "Integrating"
 msgstr ""
 
 #: warehouse/templates/pages/help.html:169
-#: warehouse/templates/pages/help.html:614
+#: warehouse/templates/pages/help.html:618
 msgid "Administration of projects on PyPI"
 msgstr ""
 
 #: warehouse/templates/pages/help.html:185
-#: warehouse/templates/pages/help.html:727
+#: warehouse/templates/pages/help.html:726
 msgid "Troubleshooting"
 msgstr ""
 
 #: warehouse/templates/pages/help.html:204
-#: warehouse/templates/pages/help.html:920
+#: warehouse/templates/pages/help.html:919
 msgid "About"
 msgstr ""
 
@@ -7721,45 +7719,45 @@ msgid ""
 "A yanked release is a release that is always ignored by an installer, "
 "unless it is the only release that matches a version specifier (using "
 "either <code>==</code> or <code>===</code>). See <a href=\"%(href)s\" "
-"title=\"%(title)s\" target=\"_blank\" rel=\"noopener\"><abbr "
-"title=\"Python enhancement proposal\">PEP</abbr> 592</a> for more "
-"information."
+"title=\"%(title)s\">the user documentation</a> for more information, "
+"including how to yank a release."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:258
+#: warehouse/templates/pages/help.html:262
+#, python-format
 msgid ""
 "An archived project is a project that is no longer receiving any updates."
 " A project maintainer can mark a project as archived to signal to users "
 "that future updates should not be expected. Archived projects are "
 "publicly visible and can still be resolved from the index by default, "
-"unlike deleted or <a href=\"#yanked\">yanked</a> releases."
+"unlike deleted or <a href=\"%(href)s\">yanked</a> releases."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:269
+#: warehouse/templates/pages/help.html:273
 msgid "My account"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:272
+#: warehouse/templates/pages/help.html:276
 msgid ""
 "Currently, PyPI requires a verified email address to perform the "
 "following operations:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:274
+#: warehouse/templates/pages/help.html:278
 msgid "Register a new project."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:275
+#: warehouse/templates/pages/help.html:279
 msgid "Upload a new version or file."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:277
+#: warehouse/templates/pages/help.html:281
 msgid ""
 "The list of activities that require a verified email address is likely to"
 " grow over time."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:278
+#: warehouse/templates/pages/help.html:282
 #, python-format
 msgid ""
 "This policy will allow us to enforce a key policy of <a href=\"%(href)s\""
@@ -7769,7 +7767,7 @@ msgid ""
 " create many accounts in an automated fashion."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:279
+#: warehouse/templates/pages/help.html:283
 #, python-format
 msgid ""
 "You can manage your account's email addresses in your <a "
@@ -7778,7 +7776,7 @@ msgid ""
 "began enforcing this policy."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:282
+#: warehouse/templates/pages/help.html:286
 #, python-format
 msgid ""
 "<p> PyPI itself has not suffered a breach. This is a protective measure "
@@ -7804,7 +7802,7 @@ msgid ""
 "href=\"%(reset_pwd_href)s\">reset your password</a>. </p>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:317
+#: warehouse/templates/pages/help.html:321
 #, python-format
 msgid ""
 "<p> All PyPI user events are stored under security history in account "
@@ -7814,7 +7812,7 @@ msgid ""
 "href=\"mailto:%(admin_email)s\">%(admin_email)s</a></li> </ul>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:329
+#: warehouse/templates/pages/help.html:333
 msgid ""
 "<p> A PyPI API token linked to your account was posted on a public "
 "website. It was automatically revoked, but before regenerating a new one,"
@@ -7823,7 +7821,7 @@ msgid ""
 "applies too. </p>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:339
+#: warehouse/templates/pages/help.html:343
 msgid ""
 "<p> Two-factor authentication (2FA) makes your account more secure by "
 "requiring two things in order to log in: <em>something you know</em> and "
@@ -7836,7 +7834,7 @@ msgid ""
 "provide their second method of identity verification. </p>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:361
+#: warehouse/templates/pages/help.html:365
 #, python-format
 msgid ""
 "PyPI users can set up two-factor authentication using any authentication "
@@ -7845,21 +7843,21 @@ msgid ""
 "password\">TOTP</abbr> standard</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:362
+#: warehouse/templates/pages/help.html:366
 msgid ""
 "<abbr title=\"time-based one-time password\">TOTP</abbr> authentication "
 "applications generate a regularly changing authentication code to use "
 "when logging into your account."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:363
+#: warehouse/templates/pages/help.html:367
 msgid ""
 "Because <abbr title=\"time-based one-time password\">TOTP</abbr> is an "
 "open standard, there are many applications that are compatible with your "
 "PyPI account. Popular applications include:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:366
+#: warehouse/templates/pages/help.html:370
 #, python-format
 msgid ""
 "Google Authenticator for <a href=\"%(android_href)s\" title=\"%(title)s\""
@@ -7868,14 +7866,14 @@ msgid ""
 "rel=\"noopener\">iOS</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:369
-#: warehouse/templates/pages/help.html:371
-#: warehouse/templates/pages/help.html:376
-#: warehouse/templates/pages/help.html:378
+#: warehouse/templates/pages/help.html:373
+#: warehouse/templates/pages/help.html:375
+#: warehouse/templates/pages/help.html:380
+#: warehouse/templates/pages/help.html:382
 msgid "(proprietary)"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:373
+#: warehouse/templates/pages/help.html:377
 #, python-format
 msgid ""
 "Duo Mobile for <a href=\"%(android_href)s\" title=\"%(title)s\" "
@@ -7884,12 +7882,12 @@ msgid ""
 "rel=\"noopener\">iOS</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:379
-#: warehouse/templates/pages/help.html:380
+#: warehouse/templates/pages/help.html:383
+#: warehouse/templates/pages/help.html:384
 msgid "(open source)"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:384
+#: warehouse/templates/pages/help.html:388
 #, python-format
 msgid ""
 "Some password managers (e.g. <a href=\"%(href)s\" title=\"%(title)s\" "
@@ -7898,70 +7896,70 @@ msgid ""
 "up one application per account."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:392
+#: warehouse/templates/pages/help.html:396
 msgid ""
 "To set up <abbr title=\"two factor authentication\">2FA</abbr> with an "
 "authentication application:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:394
+#: warehouse/templates/pages/help.html:398
 msgid ""
 "Open an authentication (<abbr title=\"time-based one-time "
 "password\">TOTP</abbr>) application"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:395
+#: warehouse/templates/pages/help.html:399
 msgid ""
 "Log in to your PyPI account, go to your account settings, and choose "
 "\"Add <abbr title=\"two factor authentication\">2FA</abbr> with "
 "authentication application\""
 msgstr ""
 
-#: warehouse/templates/pages/help.html:396
+#: warehouse/templates/pages/help.html:400
 msgid ""
 "PyPI will generate a secret key, specific to your account. This is "
 "displayed as a QR code, and as a text code."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:397
+#: warehouse/templates/pages/help.html:401
 msgid ""
 "Scan the QR code with your authentication application, or type it in "
 "manually. The method of input will depend on the application you have "
 "chosen."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:398
+#: warehouse/templates/pages/help.html:402
 msgid ""
 "Your application will generate an authentication code - use this to "
 "verify your set-up on PyPI"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:401
+#: warehouse/templates/pages/help.html:405
 msgid ""
 "The PyPI server and your application now share your PyPI secret key, "
 "allowing your application to generate valid authentication codes for your"
 " PyPI account."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:403
-#: warehouse/templates/pages/help.html:445
+#: warehouse/templates/pages/help.html:407
+#: warehouse/templates/pages/help.html:449
 msgid "Next time you log in to PyPI you'll need to:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:405
-#: warehouse/templates/pages/help.html:497
+#: warehouse/templates/pages/help.html:409
+#: warehouse/templates/pages/help.html:501
 msgid "Provide your username and password, as normal"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:406
+#: warehouse/templates/pages/help.html:410
 msgid "Open your authentication application to generate an authentication code"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:407
+#: warehouse/templates/pages/help.html:411
 msgid "Use this code to finish logging into PyPI"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:413
+#: warehouse/templates/pages/help.html:417
 msgid ""
 "A security device is a USB key or <a href=\"#utfdevices\">other "
 "device</a> that generates a one-time password and sends that password to "
@@ -7969,11 +7967,11 @@ msgid ""
 "user."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:415
+#: warehouse/templates/pages/help.html:419
 msgid "To set up two-factor authentication with a <em>USB key</em>, you'll need:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:417
+#: warehouse/templates/pages/help.html:421
 #, python-format
 msgid ""
 "To use a <a href=\"%(href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -7982,11 +7980,11 @@ msgid ""
 "the standard implemented by PyPI."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:418
+#: warehouse/templates/pages/help.html:422
 msgid "To be running JavaScript on your browser"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:419
+#: warehouse/templates/pages/help.html:423
 #, python-format
 msgid ""
 "To use a USB key that adheres to the <a href=\"%(href)s\" "
@@ -7994,7 +7992,7 @@ msgid ""
 "specification</a>:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:422
+#: warehouse/templates/pages/help.html:426
 #, python-format
 msgid ""
 "Popular keys include <a href=\"%(yubikey_href)s\" title=\"%(title)s\" "
@@ -8004,17 +8002,17 @@ msgid ""
 "title=\"%(title)s\" target=\"_blank\" rel=\"noopener\">Thetis</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:429
+#: warehouse/templates/pages/help.html:433
 msgid ""
 "Note that some older Yubico USB keys <strong>do not follow the FIDO "
 "specification</strong>, and will therefore not work with PyPI"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:434
+#: warehouse/templates/pages/help.html:438
 msgid "Follow these steps:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:436
+#: warehouse/templates/pages/help.html:440
 msgid ""
 "<li>Log in to your PyPI account, go to your account settings, and choose "
 "\"Add <abbr title=\"two factor authentication\">2FA</abbr> with security "
@@ -8024,19 +8022,19 @@ msgid ""
 "<li>Insert and touch your USB key, as instructed by your browser</li>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:443
+#: warehouse/templates/pages/help.html:447
 msgid ""
 "Once complete, your USB key will be registered to your PyPI account and "
 "can be used during the log in process."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:447
+#: warehouse/templates/pages/help.html:451
 msgid ""
 "<li>Provide your username and password, as normal</li> <li>Insert and "
 "touch your USB key to finish logging into PyPI</li>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:458
+#: warehouse/templates/pages/help.html:462
 #, python-format
 msgid ""
 "There is a growing ecosystem of <a href=\"%(href)s\" title=\"%(title)s\" "
@@ -8044,7 +8042,7 @@ msgid ""
 "and can therefore be used with PyPI."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:463
+#: warehouse/templates/pages/help.html:467
 #, python-format
 msgid ""
 "Emerging solutions include biometric (facial and fingerprint) scanners "
@@ -8053,7 +8051,7 @@ msgid ""
 "rel=\"noopener\">mobile phones to act as security devices</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:469
+#: warehouse/templates/pages/help.html:473
 #, python-format
 msgid ""
 "As PyPI's two-factor implementation follows the <a href=\"%(href)s\" "
@@ -8062,14 +8060,14 @@ msgid ""
 " take advantage of any future developments in this field."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:478
+#: warehouse/templates/pages/help.html:482
 msgid ""
 "If you lose access to your <a href=\"#totp\">authentication "
 "application</a> or <a href=\"#utfkey\">security device</a>, you can use "
 "these codes to log in to PyPI."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:481
+#: warehouse/templates/pages/help.html:485
 msgid ""
 "Recovery codes are <strong>one time use</strong>. They are not a "
 "substitute for an <a href=\"#totp\">authentication application</a> or a "
@@ -8077,72 +8075,72 @@ msgid ""
 "recovery. After using a recovery code to sign in, it becomes inactive."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:487
+#: warehouse/templates/pages/help.html:491
 msgid "To provision recovery codes:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:489
+#: warehouse/templates/pages/help.html:493
 msgid ""
 "Log in to your PyPI account, go to your account settings, and choose "
 "\"Generate recovery codes\""
 msgstr ""
 
-#: warehouse/templates/pages/help.html:490
+#: warehouse/templates/pages/help.html:494
 msgid ""
 "Securely store the displayed recovery codes! Consider printing them out "
 "and storing them in a safe location or saving them in a password manager."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:493
+#: warehouse/templates/pages/help.html:497
 msgid ""
 "If you lose access to your stored recovery codes or use all of them, you "
 "can get new ones by selecting \"Regenerate recovery codes\" in your "
 "account settings."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:495
+#: warehouse/templates/pages/help.html:499
 msgid "To sign in with a recovery code:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:498
+#: warehouse/templates/pages/help.html:502
 msgid ""
 "When prompted for two-factor authentication, select \"Login using "
 "recovery codes\""
 msgstr ""
 
-#: warehouse/templates/pages/help.html:499
+#: warehouse/templates/pages/help.html:503
 msgid ""
 "As each code can be used only once, you might want to mark the code as "
 "used"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:500
+#: warehouse/templates/pages/help.html:504
 msgid ""
 "If you have few recovery codes remaining, you may also want to generate a"
 " new set using the \"Regenerate recovery codes\" button in your account "
 "settings."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:506
+#: warehouse/templates/pages/help.html:510
 msgid ""
 "API tokens are used to authenticate when <strong>uploading "
 "packages</strong> to PyPI."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:511
+#: warehouse/templates/pages/help.html:515
 msgid ""
 "You can create a token for an entire PyPI account, in which case, the "
 "token will work for all projects associated with that account. "
 "Alternatively, you can limit a token's scope to a specific project."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:518
+#: warehouse/templates/pages/help.html:522
 msgid ""
 "When using an API token from a CI provider, we recommend scoping the "
 "token down to the minimum necessary projects."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:525
+#: warehouse/templates/pages/help.html:529
 #, python-format
 msgid ""
 "If you are publishing to PyPI from a CI provider that supports <a "
@@ -8150,41 +8148,41 @@ msgid ""
 "Trusted Publishing instead."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:533
+#: warehouse/templates/pages/help.html:537
 msgid "To make an API token:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:536
+#: warehouse/templates/pages/help.html:540
 msgid "Verify your email address"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:536
+#: warehouse/templates/pages/help.html:540
 #, python-format
 msgid "(check your <a href=\"%(href)s\">account settings</a>)"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:537
+#: warehouse/templates/pages/help.html:541
 #, python-format
 msgid ""
 "In your <a href=\"%(href)s\">account settings</a>, go to the API tokens "
 "section and select \"Add API token\""
 msgstr ""
 
-#: warehouse/templates/pages/help.html:540
+#: warehouse/templates/pages/help.html:544
 msgid "To use an API token:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:543
+#: warehouse/templates/pages/help.html:547
 msgid "Set your username to <code>__token__</code>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:544
+#: warehouse/templates/pages/help.html:548
 msgid ""
 "Set your password to the token value, including the <code>pypi-</code> "
 "prefix"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:548
+#: warehouse/templates/pages/help.html:552
 #, python-format
 msgid ""
 "Where you edit or add these values will depend on your individual use "
@@ -8196,14 +8194,14 @@ msgid ""
 "rel=\"noopener\"><code>.travis.yml</code> if you are using Travis</a>)."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:552
+#: warehouse/templates/pages/help.html:556
 msgid ""
 "Advanced users may wish to inspect their token by decoding it with "
 "base64, and checking the output against the unique identifier displayed "
 "on PyPI."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:556
+#: warehouse/templates/pages/help.html:560
 msgid ""
 "<p>PyPI asks you to confirm your password before you want to perform a "
 "<i>sensitive action</i>. Sensitive actions include things like adding or "
@@ -8214,18 +8212,18 @@ msgid ""
 "actions on your personal, password-protected computer.</strong></p>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:563
+#: warehouse/templates/pages/help.html:567
 msgid "PyPI does not currently support changing a username."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:564
+#: warehouse/templates/pages/help.html:568
 msgid ""
 "Instead, you can create a new account with the desired username, add the "
 "new account as a maintainer of all the projects your old account owns, "
 "and then delete the old account, which will have the same effect."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:568
+#: warehouse/templates/pages/help.html:572
 #, python-format
 msgid ""
 "PyPI users and projects can use <a href=\"%(docs)s\">Trusted "
@@ -8233,15 +8231,15 @@ msgid ""
 "trusted third party service, eliminating the need to use API tokens."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:580
+#: warehouse/templates/pages/help.html:584
 msgid "Yes, including RSS feeds of new packages and new releases."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:580
+#: warehouse/templates/pages/help.html:584
 msgid "See the API reference."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:583
+#: warehouse/templates/pages/help.html:587
 #, python-format
 msgid ""
 "If you need to run your own mirror of PyPI, the <a "
@@ -8250,7 +8248,7 @@ msgid ""
 "terabyte—and growing!"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:586
+#: warehouse/templates/pages/help.html:590
 #, python-format
 msgid ""
 "You can subscribe to the <a href=\"%(rss_href)s\" title=\"%(title)s\" "
@@ -8261,7 +8259,7 @@ msgid ""
 "target=\"_blank\" rel=\"noopener\">GitHub apps</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:589
+#: warehouse/templates/pages/help.html:593
 #, python-format
 msgid ""
 "You can analyze PyPI project/package metadata and <a href=\"%(href)s\" "
@@ -8269,7 +8267,7 @@ msgid ""
 "statistics</a> via our public dataset on Google BigQuery."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:591
+#: warehouse/templates/pages/help.html:595
 #, python-format
 msgid ""
 "<a href=\"%(libs_io_href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -8284,7 +8282,7 @@ msgid ""
 "rel=\"noopener\">other relevant factors</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:600
+#: warehouse/templates/pages/help.html:604
 #, python-format
 msgid ""
 "For recent statistics on uptime and performance, see <a href=\"%(href)s\""
@@ -8292,7 +8290,7 @@ msgid ""
 "page</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:603
+#: warehouse/templates/pages/help.html:607
 msgid ""
 "For each package hosted on PyPI, there are corresponding hashes for that "
 "file. These hashes can be used to verify that the file you are "
@@ -8302,7 +8300,7 @@ msgid ""
 "from the JSON API. Here is an example of generating the hashes:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:610
+#: warehouse/templates/pages/help.html:614
 msgid ""
 "In practice, it would only be necessary to verify one of the hashes. It "
 "is not recommended to use the MD5 hash because of known security issues "
@@ -8310,7 +8308,7 @@ msgid ""
 " only."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:617
+#: warehouse/templates/pages/help.html:621
 #, python-format
 msgid ""
 "PyPI does not support publishing private packages. If you need to publish"
@@ -8318,7 +8316,7 @@ msgid ""
 "run your own deployment of the <a href=\"%(href)s\">devpi project</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:620
+#: warehouse/templates/pages/help.html:624
 msgid ""
 "Your publishing tool may return an error that your new project can't be "
 "created with your desired name, despite no evidence of a project or "
@@ -8326,7 +8324,7 @@ msgid ""
 "reasons this may occur:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:622
+#: warehouse/templates/pages/help.html:626
 #, python-format
 msgid ""
 "The project name conflicts with a <a href=\"%(href)s\" "
@@ -8334,13 +8332,13 @@ msgid ""
 "Library</a> module from any major version from 2.5 to present."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:623
+#: warehouse/templates/pages/help.html:627
 msgid ""
 "The project name is too similar to an existing project and may be "
 "confusable."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:624
+#: warehouse/templates/pages/help.html:628
 #, python-format
 msgid ""
 "The project name has been explicitly prohibited by the PyPI "
@@ -8349,18 +8347,18 @@ msgid ""
 "with a malicious package."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:625
+#: warehouse/templates/pages/help.html:629
 msgid ""
 "The project name has been registered by another user, but no releases "
 "have been created."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:625
+#: warehouse/templates/pages/help.html:629
 #, python-format
 msgid "See <a href=\"%(href)s\">%(anchor_text)s</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:629
+#: warehouse/templates/pages/help.html:633
 #, python-format
 msgid ""
 "Follow the <a href=\"%(href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -8368,23 +8366,23 @@ msgid ""
 "title=\"Python enhancement proposal\">PEP</abbr> 541."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:633
+#: warehouse/templates/pages/help.html:637
 msgid ""
 "Can upload releases for a package. Cannot add collaborators. Cannot "
 "delete files, releases, or the project."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:634
+#: warehouse/templates/pages/help.html:638
 msgid "Owner:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:634
+#: warehouse/templates/pages/help.html:638
 msgid ""
 "Can upload releases. Can add other collaborators. Can delete files, "
 "releases, or the entire project."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:637
+#: warehouse/templates/pages/help.html:641
 msgid ""
 "Only the current owners of a project have the ability to add new owners "
 "or maintainers. If you need to request ownership, you should contact the "
@@ -8393,19 +8391,19 @@ msgid ""
 "project page."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:638
+#: warehouse/templates/pages/help.html:642
 #, python-format
 msgid "If the owner is unresponsive, see <a href=\"%(href)s\">%(anchor_text)s</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:642
+#: warehouse/templates/pages/help.html:646
 msgid ""
 "When using <code>pyproject.toml</code> for project metadata, you can use "
 "the extension of the <code>readme</code> field value to control how PyPI "
 "renders your description."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:647
+#: warehouse/templates/pages/help.html:651
 #, python-format
 msgid ""
 "For example, <code>readme = \"README.md\"</code> will render the "
@@ -8414,7 +8412,7 @@ msgid ""
 "rel=\"noopener\">reStructuredText</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:654
+#: warehouse/templates/pages/help.html:658
 #, python-format
 msgid ""
 "Refer to the <a href=\"%(href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -8422,62 +8420,40 @@ msgid ""
 "available formats."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:665
+#: warehouse/templates/pages/help.html:669
 #, python-format
 msgid ""
 "If you can't upload your project's release to PyPI because you're hitting"
 " the upload file size limit (%(max_file_size_mb)s MiB by default; "
-"individual projects may differ), we can sometimes increase your limit. "
-"Make sure you've uploaded at least one release for the project that's "
-"<em>under</em> the limit (a <a href=\"%(dev_release_href)s\" "
-"title=\"%(title)s\" target=\"_blank\" rel=\"noopener\">developmental "
-"release version number</a> is fine). Then, <a "
-"href=\"%(file_issue_href)s\" title=\"%(title)s\" target=\"_blank\" "
-"rel=\"noopener\">file an issue</a> and tell us:"
-msgstr ""
-
-#: warehouse/templates/pages/help.html:674
-#: warehouse/templates/pages/help.html:696
-msgid "A link to your project on PyPI (or Test PyPI)"
-msgstr ""
-
-#: warehouse/templates/pages/help.html:675
-msgid "The size of your release, in megabytes"
+"individual projects may differ), we can sometimes increase your limit."
 msgstr ""
 
 #: warehouse/templates/pages/help.html:676
-msgid "Which index/indexes you need the increase for (PyPI, Test PyPI, or both)"
-msgstr ""
-
-#: warehouse/templates/pages/help.html:677
-#: warehouse/templates/pages/help.html:698
+#, python-format
 msgid ""
-"A brief description of your project, including the reason for the "
-"additional size."
+"See the <a href=\"%(href)s\">user documentation</a> for more information "
+"on requesting a file size limit increase."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:684
+#: warehouse/templates/pages/help.html:685
 #, python-format
 msgid ""
 "If you can't upload your project's release to PyPI because you're hitting"
 " the project size limit (%(max_project_size_gb)s GiB by default; "
-"individual projects may differ), first remove any unnecessary releases or"
-" individual files to lower your overall project size."
+"individual projects may differ), first <a href=\"%(href)s\">remove any "
+"unnecessary releases or individual files</a> to lower your overall "
+"project size."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:691
+#: warehouse/templates/pages/help.html:694
 #, python-format
 msgid ""
-"If that is not possible, we can sometimes increase your limit. <a "
-"href=\"%(file_issue_href)s\" title=\"%(title)s\" target=\"_blank\" "
-"rel=\"noopener\">File an issue</a> and tell us:"
-msgstr ""
-
-#: warehouse/templates/pages/help.html:697
-msgid "The total size of your project, in gigabytes"
+"If that is not possible, we can sometimes increase your limit. See the <a"
+" href=\"%(href)s\">user documentation</a> for more information on "
+"requesting a project size limit increase."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:704
+#: warehouse/templates/pages/help.html:703
 #, python-format
 msgid ""
 "PyPI receives reports on vulnerabilities in the packages hosted on it "
@@ -8488,7 +8464,7 @@ msgid ""
 "Advisory Database</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:709
+#: warehouse/templates/pages/help.html:708
 #, python-format
 msgid ""
 "If you believe vulnerability data for your project is invalid or "
@@ -8496,7 +8472,7 @@ msgid ""
 "target=\"_blank\" rel=\"noopener\">file an issue</a> with details."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:716
+#: warehouse/templates/pages/help.html:715
 msgid ""
 "Deletion of a project, release or file on PyPI is permanent and "
 "irreversable, without exception. Deletion of a project makes it "
@@ -8506,7 +8482,7 @@ msgid ""
 "PyPI administrators."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:731
+#: warehouse/templates/pages/help.html:730
 #, python-format
 msgid ""
 "PyPI will reject uploads if the package description fails to render. You "
@@ -8514,47 +8490,47 @@ msgid ""
 "command</a> to locally check a description for validity."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:737
+#: warehouse/templates/pages/help.html:736
 msgid ""
 "If you've forgotten your PyPI password, but you remember your email "
 "address or username, follow these steps to reset your password:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:739
+#: warehouse/templates/pages/help.html:738
 #, python-format
 msgid "Go to <a href=\"%(href)s\">reset your password</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:740
+#: warehouse/templates/pages/help.html:739
 msgid "Enter the email address or username you used for PyPI and submit the form."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:741
+#: warehouse/templates/pages/help.html:740
 msgid "You'll receive an email with a password reset link."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:746
+#: warehouse/templates/pages/help.html:745
 msgid ""
 "If you've lost access to your PyPI account or can't fully verify it due "
 "to:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:748
+#: warehouse/templates/pages/help.html:747
 msgid "Lost access to the email address associated with your account"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:749
+#: warehouse/templates/pages/help.html:748
 msgid "Accidentally registered with an email address you cannot verify"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:750
+#: warehouse/templates/pages/help.html:749
 msgid ""
 "Lost two-factor authentication <a href=\"#totp\">application</a>, <a "
 "href=\"#utfkey\">device</a>, and <a href=\"#recoverycodes\">recovery "
 "codes</a>"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:753
+#: warehouse/templates/pages/help.html:752
 #, python-format
 msgid ""
 "You can proceed to <a href=\"%(href)s\" title=\"%(title)s\" "
@@ -8562,28 +8538,28 @@ msgid ""
 "request assistance with account recovery."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:761
+#: warehouse/templates/pages/help.html:760
 msgid "Ensure that your API Token is valid and has not been revoked."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:762
+#: warehouse/templates/pages/help.html:761
 msgid ""
 "Ensure that your API Token is <a href=\"#apitoken\">properly "
 "formatted</a> and does not contain any trailing characters such as "
 "newlines."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:763
+#: warehouse/templates/pages/help.html:762
 msgid "Ensure that the username you are using is <code>__token__</code>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:765
+#: warehouse/templates/pages/help.html:764
 msgid ""
 "Remember that PyPI and TestPyPI each require you to create an account, so"
 " your credentials may be different."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:767
+#: warehouse/templates/pages/help.html:766
 #, python-format
 msgid ""
 "If you're using Windows and trying to paste your token in the Command "
@@ -8595,7 +8571,7 @@ msgid ""
 "module."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:776
+#: warehouse/templates/pages/help.html:775
 #, python-format
 msgid ""
 "Transport Layer Security, or TLS, is part of how we make sure connections"
@@ -8607,7 +8583,7 @@ msgid ""
 "target=\"_blank\" rel=\"noopener\">Learn why on the PSF blog</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:783
+#: warehouse/templates/pages/help.html:782
 #, python-format
 msgid ""
 "If you are having trouble with <code>%(command)s</code> and get a "
@@ -8616,7 +8592,7 @@ msgid ""
 "information:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:785
+#: warehouse/templates/pages/help.html:784
 msgid ""
 "If you see an error like <code>There was a problem confirming the ssl "
 "certificate</code> or <code>tlsv1 alert protocol version</code> or "
@@ -8624,7 +8600,7 @@ msgid ""
 "PyPI with a newer TLS support library."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:786
+#: warehouse/templates/pages/help.html:785
 msgid ""
 "The specific steps you need to take will depend on your operating system "
 "version, where your installation of Python originated (python.org, your "
@@ -8632,7 +8608,7 @@ msgid ""
 " Python, <code>setuptools</code>, and <code>pip</code>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:788
+#: warehouse/templates/pages/help.html:787
 #, python-format
 msgid ""
 "For help, go to <a href=\"%(irc_href)s\" title=\"%(title)s\" "
@@ -8645,7 +8621,7 @@ msgid ""
 "of <code>%(command)s</code>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:799
+#: warehouse/templates/pages/help.html:798
 #, python-format
 msgid ""
 "We take <a href=\"%(href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -8653,7 +8629,7 @@ msgid ""
 "website easy to use for everyone."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:804
+#: warehouse/templates/pages/help.html:803
 #, python-format
 msgid ""
 "If you are experiencing an accessibility problem, <a href=\"%(href)s\" "
@@ -8661,7 +8637,7 @@ msgid ""
 " GitHub</a>, so we can try to fix the problem, for you and others."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:812
+#: warehouse/templates/pages/help.html:811
 #, python-format
 msgid ""
 "In a previous version of PyPI, it used to be possible for maintainers to "
@@ -8671,7 +8647,7 @@ msgid ""
 "rel=\"noopener\">use twine to upload your project to PyPI</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:821
+#: warehouse/templates/pages/help.html:820
 msgid ""
 "Spammers return to PyPI with some regularity hoping to place their Search"
 " Engine Optimized phishing, scam, and click-farming content on the site. "
@@ -8680,7 +8656,7 @@ msgid ""
 "prime target."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:823
+#: warehouse/templates/pages/help.html:822
 #, python-format
 msgid ""
 "When the PyPI administrators are overwhelmed by spam <strong>or</strong> "
@@ -8691,35 +8667,35 @@ msgid ""
 "have updated it with reasoning for the intervention."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:832
+#: warehouse/templates/pages/help.html:831
 msgid "PyPI will return these errors for one of these reasons:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:834
+#: warehouse/templates/pages/help.html:833
 msgid "Filename has been used and file exists"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:835
+#: warehouse/templates/pages/help.html:834
 msgid "Filename has been used but file no longer exists"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:836
+#: warehouse/templates/pages/help.html:835
 msgid "A file with the exact same content exists"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:839
+#: warehouse/templates/pages/help.html:838
 msgid ""
 "PyPI does not allow for a filename to be reused, even once a project has "
 "been deleted and recreated."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:845
+#: warehouse/templates/pages/help.html:844
 msgid ""
 "A distribution filename on PyPI consists of the combination of project "
 "name, version number, and distribution type."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:851
+#: warehouse/templates/pages/help.html:850
 msgid ""
 "This ensures that a given distribution for a given release for a given "
 "project will always resolve to the same file, and cannot be "
@@ -8727,14 +8703,14 @@ msgid ""
 " party (it can only be removed)."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:859
+#: warehouse/templates/pages/help.html:858
 msgid ""
 "To avoid this situation in most cases, you will need to change the "
 "version number to one that you haven't previously uploaded to PyPI, "
 "rebuild the distribution, and then upload the new distribution."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:868
+#: warehouse/templates/pages/help.html:867
 #, python-format
 msgid ""
 "If you would like to request a new trove classifier file a pull request "
@@ -8743,7 +8719,7 @@ msgid ""
 " to include a brief justification of why it is important."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:876
+#: warehouse/templates/pages/help.html:875
 #, python-format
 msgid ""
 "If you're experiencing an issue with PyPI itself, we welcome "
@@ -8754,14 +8730,14 @@ msgid ""
 " first check that a similar issue does not already exist."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:883
+#: warehouse/templates/pages/help.html:882
 msgid ""
 "If you are having an issue is with a specific package installed from "
 "PyPI, you should reach out to the maintainers of that project directly "
 "instead."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:888
+#: warehouse/templates/pages/help.html:887
 msgid ""
 "If you are having issues while setting up a <abbr title=\"time-based one-"
 "time password\">TOTP</abbr> device, it may be because your device time is"
@@ -8769,7 +8745,7 @@ msgid ""
 "automatically, and try setting up the device again."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:895
+#: warehouse/templates/pages/help.html:894
 #, python-format
 msgid ""
 "Projects may get placed in quarantine for any number of reasons, such as "
@@ -8779,14 +8755,14 @@ msgid ""
 "Policy</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:904
+#: warehouse/templates/pages/help.html:903
 msgid ""
 "While in quarantine, the project is not installable by clients, and "
 "cannot be being modified by its maintainers. PyPI Administrators will "
 "need to review this project before it can be restored."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:911
+#: warehouse/templates/pages/help.html:910
 #, python-format
 msgid ""
 "If you believe your project has mistakenly been flagged for quarantine, "
@@ -8794,7 +8770,7 @@ msgid ""
 "details."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:924
+#: warehouse/templates/pages/help.html:923
 #, python-format
 msgid ""
 "PyPI is powered by the Warehouse project; <a href=\"%(href)s\" "
@@ -8804,7 +8780,7 @@ msgid ""
 "Group (PackagingWG)."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:929
+#: warehouse/templates/pages/help.html:928
 #, python-format
 msgid ""
 "The <a href=\"%(href)s\" title=\"%(title)s\" target=\"_blank\" "
@@ -8813,7 +8789,7 @@ msgid ""
 "Python packaging."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:934
+#: warehouse/templates/pages/help.html:933
 #, python-format
 msgid ""
 "The <a href=\"%(packaging_wg_href)s\" title=\"%(title)s\" "
@@ -8826,7 +8802,7 @@ msgid ""
 "Warehouse's security and accessibility."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:944
+#: warehouse/templates/pages/help.html:943
 #, python-format
 msgid ""
 "PyPI is powered by <a href=\"%(warehouse_href)s\" title=\"%(title)s\" "
@@ -8835,14 +8811,14 @@ msgid ""
 " sponsors</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:951
+#: warehouse/templates/pages/help.html:950
 msgid ""
 "As of April 16, 2018, PyPI.org is at \"production\" status, meaning that "
 "it has moved out of beta and replaced the old site (pypi.python.org). It "
 "is now robust, tested, and ready for expected browser and API traffic."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:953
+#: warehouse/templates/pages/help.html:952
 #, python-format
 msgid ""
 "PyPI is heavily cached and distributed via <abbr title=\"content delivery"
@@ -8859,7 +8835,7 @@ msgid ""
 "href=\"%(private_index_href)s\">private index</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:967
+#: warehouse/templates/pages/help.html:966
 #, python-format
 msgid ""
 "We have a huge amount of work to do to continue to maintain and improve "
@@ -8867,22 +8843,22 @@ msgid ""
 "target=\"_blank\" rel=\"noopener\">the Warehouse project</a>)."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:972
+#: warehouse/templates/pages/help.html:971
 msgid "Financial:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:972
+#: warehouse/templates/pages/help.html:971
 #, python-format
 msgid ""
 "We would deeply appreciate <a href=\"%(href)s\">your donations to fund "
 "development and maintenance</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:973
+#: warehouse/templates/pages/help.html:972
 msgid "Development:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:973
+#: warehouse/templates/pages/help.html:972
 msgid ""
 "Warehouse is open source, and we would love to see some new faces working"
 " on the project. You <strong>do not</strong> need to be an experienced "
@@ -8890,7 +8866,7 @@ msgid ""
 " you make your first open source pull request!"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:975
+#: warehouse/templates/pages/help.html:974
 #, python-format
 msgid ""
 "If you have skills in Python, Full-Text Search, HTML, SCSS, JavaScript, "
@@ -8904,7 +8880,7 @@ msgid ""
 "here."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:983
+#: warehouse/templates/pages/help.html:982
 #, python-format
 msgid ""
 "Issues are grouped into <a href=\"%(href)s\" title=\"%(title)s\" "
@@ -8914,11 +8890,11 @@ msgid ""
 " we can guide you through the contribution process."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:990
+#: warehouse/templates/pages/help.html:989
 msgid "Stay updated:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:991
+#: warehouse/templates/pages/help.html:990
 #, python-format
 msgid ""
 "You can also follow the ongoing development of the project on the <a "
@@ -8926,7 +8902,7 @@ msgid ""
 "rel=\"noopener\">Python packaging forum on Discourse</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1000
+#: warehouse/templates/pages/help.html:999
 #, python-format
 msgid ""
 "Changes to PyPI are generally announced on both the <a "
@@ -8938,21 +8914,21 @@ msgid ""
 "rel=\"noopener\">RSS</a> feed."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1009
+#: warehouse/templates/pages/help.html:1008
 #, python-format
 msgid ""
 "All traffic is routed through our global CDN, which lists their public IP"
 " addresses here: <a href=\"%(href)s\">%(href)s</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1010
+#: warehouse/templates/pages/help.html:1009
 #, python-format
 msgid ""
 "More information about this list can be found here: <a "
 "href=\"%(href)s\">%(href)s</a>."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1014
+#: warehouse/templates/pages/help.html:1013
 msgid ""
 "When Warehouse's maintainers are deploying new features, at first we mark"
 " them with a small \"beta feature\" symbol to tell you: this should "
@@ -8960,11 +8936,11 @@ msgid ""
 "functionality."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1015
+#: warehouse/templates/pages/help.html:1014
 msgid "Currently, no features are in beta."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1019
+#: warehouse/templates/pages/help.html:1018
 #, python-format
 msgid ""
 "\"PyPI\" should be pronounced like \"pie pea eye\", specifically with the"
@@ -8974,39 +8950,39 @@ msgid ""
 "implementation of the Python language."
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1031
+#: warehouse/templates/pages/help.html:1030
 msgid "Resources"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1032
+#: warehouse/templates/pages/help.html:1031
 msgid "Looking for something else? Perhaps these links will help:"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1034
+#: warehouse/templates/pages/help.html:1033
 msgid "Python Packaging User Guide"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1035
+#: warehouse/templates/pages/help.html:1034
 msgid "Python documentation"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1036
+#: warehouse/templates/pages/help.html:1035
 msgid "(main Python website)"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1037
+#: warehouse/templates/pages/help.html:1036
 msgid "Python community page"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1037
+#: warehouse/templates/pages/help.html:1036
 msgid "(lists IRC channels, mailing lists, etc.)"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1040
+#: warehouse/templates/pages/help.html:1039
 msgid "Contact"
 msgstr ""
 
-#: warehouse/templates/pages/help.html:1042
+#: warehouse/templates/pages/help.html:1041
 #, python-format
 msgid ""
 "The <a href=\"%(pypa_href)s\" title=\"%(title)s\" target=\"_blank\" "
diff --git a/warehouse/templates/manage/project/release.html b/warehouse/templates/manage/project/release.html
index a8f94babf79d..c571e51270e0 100644
--- a/warehouse/templates/manage/project/release.html
+++ b/warehouse/templates/manage/project/release.html
@@ -191,7 +191,7 @@ <h3>{% trans %}Delete release{% endtrans %}</h3>
     {% endif %}
       <p>{% trans %}You will not be able to re-upload a new distribution of the same type with the same version number.{% endtrans %}</p>
       <p>{% trans %}Deletion will break any downstream projects relying on a pinned version of this package. It is intended as a last resort to address legal issues or remove harmful releases.{% endtrans %}</p>
-      <p>{% trans yank_href=request.help_url(_anchor='yanked'), post_href='https://www.python.org/dev/peps/pep-0440/#post-releases', title=gettext('External link') %}Consider <a href="{{ yank_href }}" title="{{ title }}" target="_blank" rel="noopener">yanking</a> this release, making a new release or a <a href="{{ post_href }}" title="{{ title }}" target="_blank" rel="noopener">post release</a> instead.{% endtrans %}</p>
+      <p>{% trans yank_href=request.user_docs_url('/project-management/yanking'), post_href='https://www.python.org/dev/peps/pep-0440/#post-releases', title=gettext('External link') %}Consider <a href="{{ yank_href }}" title="{{ title }}" target="_blank" rel="noopener">yanking</a> this release, making a new release or a <a href="{{ post_href }}" title="{{ title }}" target="_blank" rel="noopener">post release</a> instead.{% endtrans %}</p>
       <ul class="no-bullets">
         <li><input type="checkbox" data-action="input->delete-confirm#check" data-delete-confirm-target="input"> {% trans release_version=release.version %}I understand that I am permanently deleting all files for the {{ release_version }} release of this project.{% endtrans %}</li>
         <li><input type="checkbox" data-action="input->delete-confirm#check" data-delete-confirm-target="input"> {% trans %}I understand that my users will no longer be able to install this release of this project.{% endtrans %}</li>
diff --git a/warehouse/templates/manage/project/releases.html b/warehouse/templates/manage/project/releases.html
index 2323dced787b..edb92153045b 100644
--- a/warehouse/templates/manage/project/releases.html
+++ b/warehouse/templates/manage/project/releases.html
@@ -137,7 +137,7 @@
           {% set custom_warning_text %}
           <p>{% trans %}You will not be able to re-upload a new distribution of the same type with the same version number.{% endtrans %}</p>
           <p>{% trans %}Deletion will break any downstream projects relying on a pinned version of this package. It is intended as a last resort to address legal issues or remove harmful releases.{% endtrans %}</p>
-          <p>{% trans yank_href=request.help_url(_anchor='yanked'), post_href='https://www.python.org/dev/peps/pep-0440/#post-releases', title=gettext('External link') %}Consider <a href="{{ yank_href }}" title="{{ title }}" target="_blank" rel="noopener">yanking</a> this release, making a new release or a <a href="{{ post_href }}" title="{{ title }}" target="_blank" rel="noopener">post release</a> instead.{% endtrans %}</p>
+          <p>{% trans yank_href=request.user_docs_url('/project-management/yanking'), post_href='https://www.python.org/dev/peps/pep-0440/#post-releases', title=gettext('External link') %}Consider <a href="{{ yank_href }}" title="{{ title }}" target="_blank" rel="noopener">yanking</a> this release, making a new release or a <a href="{{ post_href }}" title="{{ title }}" target="_blank" rel="noopener">post release</a> instead.{% endtrans %}</p>
           {% endset %}
           {{ confirm_modal(title, gettext('Version'), 'delete_version', release.version, slug, custom_warning_text=custom_warning_text, action=action) }}
         {% endif %}
diff --git a/warehouse/templates/manage/project/settings.html b/warehouse/templates/manage/project/settings.html
index 940aecc8549a..baf8f12737fe 100644
--- a/warehouse/templates/manage/project/settings.html
+++ b/warehouse/templates/manage/project/settings.html
@@ -28,7 +28,7 @@ <h2>{% trans %}Project settings{% endtrans %}</h2>
     {% else %}
       Default ({{  MAX_FILESIZE|filesizeformat(binary=True) }})
     {% endif %}
-    {% trans help_url=request.help_url(_anchor='file-size-limit') %}
+    {% trans help_url=request.user_docs_url("/project-management/storage-limits", anchor="requesting-a-file-size-limit-increase") %}
     <a href="{{ help_url }}"> (request an increase) </a>{% endtrans %}</li>
     <li>Project total size limit:
     {% if project.total_size_limit %}
@@ -36,7 +36,7 @@ <h2>{% trans %}Project settings{% endtrans %}</h2>
     {% else %}
       Default ({{  MAX_PROJECT_SIZE|filesizeformat(binary=True) }})
     {% endif %}
-    {% trans help_url=request.help_url(_anchor='project-size-limit') %}
+    {% trans help_url=request.user_docs_url("/project-management/storage-limits", anchor="requesting-a-project-size-limit-increase") %}
     <a href="{{ help_url }}"> (request an increase) </a>{% endtrans %}</li>
   </ul>
 
diff --git a/warehouse/templates/pages/help.html b/warehouse/templates/pages/help.html
index ba11f64550d4..ea0e46667a38 100644
--- a/warehouse/templates/pages/help.html
+++ b/warehouse/templates/pages/help.html
@@ -248,19 +248,23 @@ <h3 id="trove-classifier">{{ trove_classifier() }}</h3>
 
         <h3 id="yanked">{{ yanked() }}</h3>
         <p>
-          {% trans href='https://www.python.org/dev/peps/pep-0592/', title=gettext('External link') %}
-          A yanked release is a release that is always ignored by an installer, unless it is the only release that matches a version specifier (using either <code>==</code> or <code>===</code>). See <a href="{{ href }}" title="{{ title }}" target="_blank" rel="noopener"><abbr title="Python enhancement proposal">PEP</abbr> 592</a> for more information.
+          {% trans href=request.user_docs_url('/project-management/yanking') %}
+          A yanked release is a release that is always ignored by an installer,
+          unless it is the only release that matches a version specifier (using either
+          <code>==</code> or <code>===</code>).
+          See <a href="{{ href }}" title="{{ title }}">the user documentation</a>
+          for more information, including how to yank a release.
           {% endtrans %}
         </p>
 
         <h3 id="archived-project">{{ archived_project() }}</h3>
         <p>
-          {% trans %}
+          {% trans href=request.user_docs_url('/project-management/yanking') %}
           An archived project is a project that is no longer receiving any updates.
           A project maintainer can mark a project as archived to signal to users that future
           updates should not be expected. Archived projects are publicly visible and
           can still be resolved from the index by default, unlike deleted or
-          <a href="#yanked">yanked</a> releases.
+          <a href="{{ href }}">yanked</a> releases.
           {% endtrans %}
         </p>
       </section>
@@ -663,41 +667,36 @@ <h3 id="file-size-limit">{{ file_size_limit() }}</h3>
         {% set max_file_size_mb = request.registry.settings.get('warehouse.forklift.legacy.MAX_FILESIZE_MIB') %}
         <p>
           {% trans dev_release_href='https://www.python.org/dev/peps/pep-0440/#developmental-releases', file_issue_href='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', title=gettext('External link') %}
-            If you can't upload your project's release to PyPI because you're hitting the upload file size limit ({{ max_file_size_mb }} MiB by default; individual projects may differ),
-            we can sometimes increase your limit. Make sure you've uploaded at least one release
-            for the project that's <em>under</em> the limit
-            (a <a href="{{ dev_release_href }}" title="{{ title }}" target="_blank" rel="noopener">developmental release version number</a> is fine).
-            Then, <a href="{{ file_issue_href }}" title="{{ title }}" target="_blank" rel="noopener">file an issue</a> and tell us:
+            If you can't upload your project's release to PyPI because you're hitting the upload
+            file size limit ({{ max_file_size_mb }} MiB by default; individual projects may differ),
+            we can sometimes increase your limit.
+          {% endtrans %}
+        </p>
+        <p>
+          {% trans href=request.user_docs_url('/project-management/storage-limits/', anchor="requesting-a-file-size-limit-increase") %}
+            See the <a href="{{ href }}">user documentation</a> for more information
+            on requesting a file size limit increase.
           {% endtrans %}
         </p>
-        <ul>
-          <li>{% trans %}A link to your project on PyPI (or Test PyPI){% endtrans %}</li>
-          <li>{% trans %}The size of your release, in megabytes{% endtrans %}</li>
-          <li>{% trans %}Which index/indexes you need the increase for (PyPI, Test PyPI, or both){% endtrans %}</li>
-          <li>{% trans %}A brief description of your project, including the reason for the additional size.{% endtrans %}</li>
-        </ul>
-        {{ code_of_conduct() }}
 
         <h3 id="project-size-limit">{{ project_size_limit() }}</h3>
         <p>
           {% set max_project_size_gb = request.registry.settings.get('warehouse.forklift.legacy.MAX_PROJECT_SIZE_GIB') %}
-          {% trans %}
+          {% trans href=request.user_docs_url('/project-management/storage-limits/', anchor="freeing-up-storage-on-an-existing-project") %}
             If you can't upload your project's release to PyPI because you're
-            hitting the project size limit ({{ max_project_size_gb }} GiB by default; individual projects may differ), first remove any unnecessary
-            releases or individual files to lower your overall project size.
+            hitting the project size limit ({{ max_project_size_gb }} GiB by default;
+            individual projects may differ), first
+            <a href="{{ href }}">remove any unnecessary releases or individual files</a> to lower
+            your overall project size.
           {% endtrans %}
         </p>
         <p>
-          {% trans file_issue_href='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', title=gettext('External link') %}
-            If that is not possible, we can sometimes increase your limit. <a href="{{ file_issue_href }}" title="{{ title }}" target="_blank" rel="noopener">File an issue</a> and tell us:
+          {% trans href=request.user_docs_url('/project-management/storage-limits/', anchor="requesting-a-project-size-limit-increase") %}
+            If that is not possible, we can sometimes increase your limit.
+            See the <a href="{{ href }}">user documentation</a> for more information
+            on requesting a project size limit increase.
           {% endtrans %}
         </p>
-        <ul>
-          <li>{% trans %}A link to your project on PyPI (or Test PyPI){% endtrans %}</li>
-          <li>{% trans %}The total size of your project, in gigabytes{% endtrans %}</li>
-          <li>{% trans %}A brief description of your project, including the reason for the additional size.{% endtrans %}</li>
-        </ul>
-        {{ code_of_conduct() }}
 
         <h3 id="vulnerability-data">{{ vulnerability_data() }}</h3>
         <p>