diff --git a/tests/unit/forklift/test_legacy.py b/tests/unit/forklift/test_legacy.py index 12608e071488..8760ed0aab84 100644 --- a/tests/unit/forklift/test_legacy.py +++ b/tests/unit/forklift/test_legacy.py @@ -619,7 +619,9 @@ def test_fails_with_invalid_names(self, pyramid_config, db_request, name): resp = excinfo.value assert resp.status_code == 400 - assert resp.status == "400 The name {!r} is not allowed.".format(name) + assert resp.status == ("400 The name {!r} is not allowed. " + "See https://pypi.org/help/#project-name " + "for more information.").format(name) @pytest.mark.parametrize("name", ["xml", "XML", "pickle", "PiCKle", "main", "future", "al", "uU", "test", @@ -648,8 +650,9 @@ def test_fails_with_stdlib_names(self, pyramid_config, db_request, name): assert resp.status_code == 400 assert resp.status == (("400 The name {!r} is not allowed (conflict " - "with Python Standard Libary module name).") - .format(name)) + "with Python Standard Libary module name). " + "See https://pypi.org/help/#project-name " + "for more information.").format(name)) def test_upload_fails_without_file(self, pyramid_config, db_request): pyramid_config.testing_securitypolicy(userid=1) diff --git a/warehouse/forklift/legacy.py b/warehouse/forklift/legacy.py index 491bb2673ee0..0addaafd4386 100644 --- a/warehouse/forklift/legacy.py +++ b/warehouse/forklift/legacy.py @@ -648,7 +648,10 @@ def file_upload(request): func.normalize_pep426_name(form.name.data))).scalar(): raise _exc_with_message( HTTPBadRequest, - "The name {!r} is not allowed.".format(form.name.data), + ("The name {!r} is not allowed. " + "See https://pypi.org/help/#project-name " + "for more information.") + .format(form.name.data), ) from None # Also check for collisions with Python Standard Library modules. @@ -657,7 +660,9 @@ def file_upload(request): raise _exc_with_message( HTTPBadRequest, ("The name {!r} is not allowed (conflict with Python " - "Standard Libary module name).").format(form.name.data), + "Standard Libary module name). See " + "https://pypi.org/help/#project-name for more information.") + .format(form.name.data), ) from None # The project doesn't exist in our database, so we'll add it along with @@ -693,7 +698,9 @@ def file_upload(request): if not request.has_permission("upload", project): raise _exc_with_message( HTTPForbidden, - "You are not allowed to upload to {!r}.".format(project.name) + ("You are not allowed to upload to {!r}. " + "See https://pypi.org/help#project-name for more information.") + .format(project.name) ) try: diff --git a/warehouse/templates/pages/help.html b/warehouse/templates/pages/help.html index 661a8fc41ba2..6db57db72360 100644 --- a/warehouse/templates/pages/help.html +++ b/warehouse/templates/pages/help.html @@ -80,6 +80,21 @@

What does pre-production mean?This is mostly just a warning at this point that the UI might return funky results, some things might not be great yet and to discourage throwing the full force of people's production traffic at it.

The current hosting arrangement can't handle the full amount of traffic we get from pip install however uploads are fine and we're working on building on the new infrastructure with our future hosting arrangement that can handle the full production load.

+ +

Why isn't my desired Project name available?

+ +

When creating a new Project on PyPI, you may recieve an error from your publishing tool which indicates that a project is not able to be created with your desired name. In addition you may find that there are no associated project or release on pypi.org, currently there are three primary reasons this may occur:

+ + +

How do I claim an abandoned or previously registered Project name?

+ +

There is currently no established process for performing this administrative task that is explicit and fair for all parties. However, one is currently in development with PEP 541

+ +

When PEP 541 is accepted, the project will create a workflow, to be documented here.

diff --git a/warehouse/templates/pages/security.html b/warehouse/templates/pages/security.html index 2d7719944416..6a2e26fa8b5f 100644 --- a/warehouse/templates/pages/security.html +++ b/warehouse/templates/pages/security.html @@ -32,11 +32,12 @@

Reporting a security issue


-

Instead, please email Donald Stufft or Richard Jones directly, providing as much relevant information as possible.

+

Instead, please email Donald Stufft, Ernest W. Durbin III, or Richard Jones directly, providing as much relevant information as possible.

Messages may be optionally encrypted with GPG using key fingerprints (these public keys are available from most commonly-used key servers):