diff --git a/docs/development/getting-started.rst b/docs/development/getting-started.rst index 8148c0e4443e..29063763a435 100644 --- a/docs/development/getting-started.rst +++ b/docs/development/getting-started.rst @@ -148,6 +148,11 @@ run all of the needed services. The Warehouse repository will be mounted inside the Docker container at :file:`/opt/warehouse/src/`. After the initial build, you should not have to run this command again. +.. note:: + + On some systems ``make build`` may require the prior installation of libpq + and its headers so that psycopg2 can be compiled and installed. + .. _running-warehouse-containers: diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index 9e40af5a077e..92d36c2df06f 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -322,67 +322,68 @@ msgstr "" #: warehouse/templates/packaging/detail.html:344 #: warehouse/templates/pages/classifiers.html:25 #: warehouse/templates/pages/help.html:20 -#: warehouse/templates/pages/help.html:207 -#: warehouse/templates/pages/help.html:214 -#: warehouse/templates/pages/help.html:228 -#: warehouse/templates/pages/help.html:244 -#: warehouse/templates/pages/help.html:248 -#: warehouse/templates/pages/help.html:305 -#: warehouse/templates/pages/help.html:332 -#: warehouse/templates/pages/help.html:337 -#: warehouse/templates/pages/help.html:342 -#: warehouse/templates/pages/help.html:344 -#: warehouse/templates/pages/help.html:349 +#: warehouse/templates/pages/help.html:208 +#: warehouse/templates/pages/help.html:215 +#: warehouse/templates/pages/help.html:229 +#: warehouse/templates/pages/help.html:245 +#: warehouse/templates/pages/help.html:249 +#: warehouse/templates/pages/help.html:306 +#: warehouse/templates/pages/help.html:333 +#: warehouse/templates/pages/help.html:338 +#: warehouse/templates/pages/help.html:343 +#: warehouse/templates/pages/help.html:345 #: warehouse/templates/pages/help.html:350 #: warehouse/templates/pages/help.html:351 -#: warehouse/templates/pages/help.html:355 -#: warehouse/templates/pages/help.html:388 -#: warehouse/templates/pages/help.html:390 -#: warehouse/templates/pages/help.html:393 -#: warehouse/templates/pages/help.html:429 -#: warehouse/templates/pages/help.html:434 -#: warehouse/templates/pages/help.html:440 -#: warehouse/templates/pages/help.html:498 -#: warehouse/templates/pages/help.html:518 -#: warehouse/templates/pages/help.html:524 -#: warehouse/templates/pages/help.html:527 -#: warehouse/templates/pages/help.html:529 -#: warehouse/templates/pages/help.html:538 -#: warehouse/templates/pages/help.html:550 -#: warehouse/templates/pages/help.html:557 -#: warehouse/templates/pages/help.html:569 +#: warehouse/templates/pages/help.html:352 +#: warehouse/templates/pages/help.html:356 +#: warehouse/templates/pages/help.html:389 +#: warehouse/templates/pages/help.html:391 +#: warehouse/templates/pages/help.html:394 +#: warehouse/templates/pages/help.html:430 +#: warehouse/templates/pages/help.html:435 +#: warehouse/templates/pages/help.html:441 +#: warehouse/templates/pages/help.html:499 +#: warehouse/templates/pages/help.html:519 +#: warehouse/templates/pages/help.html:525 +#: warehouse/templates/pages/help.html:528 +#: warehouse/templates/pages/help.html:530 +#: warehouse/templates/pages/help.html:539 +#: warehouse/templates/pages/help.html:551 +#: warehouse/templates/pages/help.html:558 #: warehouse/templates/pages/help.html:570 -#: warehouse/templates/pages/help.html:575 -#: warehouse/templates/pages/help.html:600 -#: warehouse/templates/pages/help.html:613 -#: warehouse/templates/pages/help.html:618 -#: warehouse/templates/pages/help.html:644 -#: warehouse/templates/pages/help.html:667 -#: warehouse/templates/pages/help.html:674 -#: warehouse/templates/pages/help.html:686 -#: warehouse/templates/pages/help.html:697 -#: warehouse/templates/pages/help.html:702 +#: warehouse/templates/pages/help.html:571 +#: warehouse/templates/pages/help.html:576 +#: warehouse/templates/pages/help.html:601 +#: warehouse/templates/pages/help.html:614 +#: warehouse/templates/pages/help.html:619 +#: warehouse/templates/pages/help.html:631 +#: warehouse/templates/pages/help.html:652 +#: warehouse/templates/pages/help.html:675 +#: warehouse/templates/pages/help.html:682 +#: warehouse/templates/pages/help.html:694 +#: warehouse/templates/pages/help.html:705 #: warehouse/templates/pages/help.html:710 -#: warehouse/templates/pages/help.html:721 -#: warehouse/templates/pages/help.html:738 -#: warehouse/templates/pages/help.html:745 +#: warehouse/templates/pages/help.html:718 +#: warehouse/templates/pages/help.html:729 +#: warehouse/templates/pages/help.html:746 #: warehouse/templates/pages/help.html:753 -#: warehouse/templates/pages/help.html:769 -#: warehouse/templates/pages/help.html:774 -#: warehouse/templates/pages/help.html:779 -#: warehouse/templates/pages/help.html:789 -#: warehouse/templates/pages/help.html:798 -#: warehouse/templates/pages/help.html:812 +#: warehouse/templates/pages/help.html:761 +#: warehouse/templates/pages/help.html:777 +#: warehouse/templates/pages/help.html:782 +#: warehouse/templates/pages/help.html:787 +#: warehouse/templates/pages/help.html:797 +#: warehouse/templates/pages/help.html:806 #: warehouse/templates/pages/help.html:820 #: warehouse/templates/pages/help.html:828 #: warehouse/templates/pages/help.html:836 -#: warehouse/templates/pages/help.html:846 -#: warehouse/templates/pages/help.html:861 -#: warehouse/templates/pages/help.html:876 -#: warehouse/templates/pages/help.html:877 -#: warehouse/templates/pages/help.html:878 -#: warehouse/templates/pages/help.html:879 +#: warehouse/templates/pages/help.html:844 +#: warehouse/templates/pages/help.html:854 +#: warehouse/templates/pages/help.html:869 #: warehouse/templates/pages/help.html:884 +#: warehouse/templates/pages/help.html:885 +#: warehouse/templates/pages/help.html:886 +#: warehouse/templates/pages/help.html:887 +#: warehouse/templates/pages/help.html:892 #: warehouse/templates/pages/security.html:36 #: warehouse/templates/pages/sponsors.html:33 #: warehouse/templates/pages/sponsors.html:37 @@ -1719,7 +1720,7 @@ msgstr "" #: warehouse/templates/includes/packaging/project-data.html:84 #: warehouse/templates/includes/packaging/project-data.html:86 -#: warehouse/templates/pages/help.html:561 +#: warehouse/templates/pages/help.html:562 msgid "Maintainer:" msgstr "" @@ -3153,7 +3154,7 @@ msgid "" msgstr "" #: warehouse/templates/manage/roles.html:39 -#: warehouse/templates/pages/help.html:560 +#: warehouse/templates/pages/help.html:561 msgid "There are two possible roles for collaborators:" msgstr "" @@ -4012,6 +4013,10 @@ msgid "" " I correct it?" msgstr "" +#: warehouse/templates/pages/help.html:86 +msgid "Why am I getting \"the description failed to render\" error?" +msgstr "" + #: warehouse/templates/pages/help.html:88 msgid "" "Why am I getting a \"Filename or contents already exists\" or \"Filename " @@ -4081,7 +4086,7 @@ msgid "Common questions" msgstr "" #: warehouse/templates/pages/help.html:113 -#: warehouse/templates/pages/help.html:195 +#: warehouse/templates/pages/help.html:196 msgid "Basics" msgstr "" @@ -4090,26 +4095,26 @@ msgid "My Account" msgstr "" #: warehouse/templates/pages/help.html:141 -#: warehouse/templates/pages/help.html:515 +#: warehouse/templates/pages/help.html:516 msgid "Integrating" msgstr "" #: warehouse/templates/pages/help.html:151 -#: warehouse/templates/pages/help.html:542 +#: warehouse/templates/pages/help.html:543 msgid "Administration of projects on PyPI" msgstr "" #: warehouse/templates/pages/help.html:166 -#: warehouse/templates/pages/help.html:626 +#: warehouse/templates/pages/help.html:627 msgid "Troubleshooting" msgstr "" -#: warehouse/templates/pages/help.html:182 -#: warehouse/templates/pages/help.html:765 +#: warehouse/templates/pages/help.html:183 +#: warehouse/templates/pages/help.html:773 msgid "About" msgstr "" -#: warehouse/templates/pages/help.html:198 +#: warehouse/templates/pages/help.html:199 #, python-format msgid "" "\n" @@ -4133,7 +4138,7 @@ msgid "" " " msgstr "" -#: warehouse/templates/pages/help.html:207 +#: warehouse/templates/pages/help.html:208 #, python-format msgid "" "To learn how to install a file from PyPI, visit the Python Packaging User Guide." msgstr "" -#: warehouse/templates/pages/help.html:214 +#: warehouse/templates/pages/help.html:215 #, python-format msgid "" "For full instructions on configuring, packaging and distributing your " @@ -4153,7 +4158,7 @@ msgid "" "target=\"_blank\" rel=\"noopener\">Python Packaging User Guide." msgstr "" -#: warehouse/templates/pages/help.html:221 +#: warehouse/templates/pages/help.html:222 #, python-format msgid "" "Classifiers are used to categorize projects on PyPI. See PyPI itself has not suffered a breach. This is a protective measure " @@ -4241,7 +4246,7 @@ msgid "" "href=\"%(reset_pwd_href)s\">reset your password.
" msgstr "" -#: warehouse/templates/pages/help.html:283 +#: warehouse/templates/pages/help.html:284 #, python-format msgid "" "All PyPI user events are stored under security history in account " @@ -4251,7 +4256,7 @@ msgid "" "href=\"mailto:%(admin_email)s\">%(admin_email)s
" msgstr "" -#: warehouse/templates/pages/help.html:295 +#: warehouse/templates/pages/help.html:296 msgid "" "A PyPI API token linked to your account was posted on a public " "website. It was automatically revoked, but before regenerating a new one," @@ -4260,7 +4265,7 @@ msgid "" "applies too.
" msgstr "" -#: warehouse/templates/pages/help.html:305 +#: warehouse/templates/pages/help.html:306 #, python-format msgid "" "Two factor authentication (2FA) makes your account more secure by " @@ -4279,7 +4284,7 @@ msgid "" "rel=\"noopener\">discuss.python.org.
" msgstr "" -#: warehouse/templates/pages/help.html:332 +#: warehouse/templates/pages/help.html:333 #, python-format msgid "" "PyPI users can set up two-factor authentication using any authentication " @@ -4288,21 +4293,21 @@ msgid "" "password\">TOTP standard." msgstr "" -#: warehouse/templates/pages/help.html:333 +#: warehouse/templates/pages/help.html:334 msgid "" "TOTP authentication " "applications generate a regularly changing authentication code to use " "when logging into your account." msgstr "" -#: warehouse/templates/pages/help.html:334 +#: warehouse/templates/pages/help.html:335 msgid "" "Because TOTP is an " "open standard, there are many applications that are compatible with your " "PyPI account. Popular applications include:" msgstr "" -#: warehouse/templates/pages/help.html:337 +#: warehouse/templates/pages/help.html:338 #, python-format msgid "" "Google Authenticator for iOS" msgstr "" -#: warehouse/templates/pages/help.html:340 -#: warehouse/templates/pages/help.html:342 -#: warehouse/templates/pages/help.html:347 -#: warehouse/templates/pages/help.html:349 +#: warehouse/templates/pages/help.html:341 +#: warehouse/templates/pages/help.html:343 +#: warehouse/templates/pages/help.html:348 +#: warehouse/templates/pages/help.html:350 msgid "(proprietary)" msgstr "" -#: warehouse/templates/pages/help.html:344 +#: warehouse/templates/pages/help.html:345 #, python-format msgid "" "Duo Mobile for iOS" msgstr "" -#: warehouse/templates/pages/help.html:350 #: warehouse/templates/pages/help.html:351 +#: warehouse/templates/pages/help.html:352 msgid "(open source)" msgstr "" -#: warehouse/templates/pages/help.html:355 +#: warehouse/templates/pages/help.html:356 #, python-format msgid "" "Some password managers (e.g. 2FA with an " "authentication application:" msgstr "" -#: warehouse/templates/pages/help.html:365 +#: warehouse/templates/pages/help.html:366 msgid "" "Open an authentication (TOTP) application" msgstr "" -#: warehouse/templates/pages/help.html:366 +#: warehouse/templates/pages/help.html:367 msgid "" "Log in to your PyPI account, go to your account settings, and choose " "\"Add 2FA with " "authentication application\"" msgstr "" -#: warehouse/templates/pages/help.html:367 +#: warehouse/templates/pages/help.html:368 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:368 +#: warehouse/templates/pages/help.html:369 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:369 +#: warehouse/templates/pages/help.html:370 msgid "" "Your application will generate an authentication code - use this to " "verify your set up on PyPI" msgstr "" -#: warehouse/templates/pages/help.html:372 +#: warehouse/templates/pages/help.html:373 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:374 -#: warehouse/templates/pages/help.html:416 +#: warehouse/templates/pages/help.html:375 +#: warehouse/templates/pages/help.html:417 msgid "Next time you log in to PyPI you'll need to:" msgstr "" -#: warehouse/templates/pages/help.html:376 -#: warehouse/templates/pages/help.html:468 +#: warehouse/templates/pages/help.html:377 +#: warehouse/templates/pages/help.html:469 msgid "Provide your username and password, as normal" msgstr "" -#: warehouse/templates/pages/help.html:377 +#: warehouse/templates/pages/help.html:378 msgid "Open your authentication application to generate an authentication code" msgstr "" -#: warehouse/templates/pages/help.html:378 +#: warehouse/templates/pages/help.html:379 msgid "Use this code to finish logging into PyPI" msgstr "" -#: warehouse/templates/pages/help.html:384 +#: warehouse/templates/pages/help.html:385 msgid "" "A security device is a USB key or other " "device that generates a one-time password and sends that password to " @@ -4412,11 +4417,11 @@ msgid "" "user." msgstr "" -#: warehouse/templates/pages/help.html:386 +#: warehouse/templates/pages/help.html:387 msgid "To set up two factor authentication with a USB key, you'll need:" msgstr "" -#: warehouse/templates/pages/help.html:388 +#: warehouse/templates/pages/help.html:389 #, python-format msgid "" "To use a :" msgstr "" -#: warehouse/templates/pages/help.html:393 +#: warehouse/templates/pages/help.html:394 #, python-format msgid "" "Popular keys include Thetis." msgstr "" -#: warehouse/templates/pages/help.html:400 +#: warehouse/templates/pages/help.html:401 msgid "" "Note that some older Yubico USB keys do not follow the FIDO " "specification, and will therefore not work with PyPI" msgstr "" -#: warehouse/templates/pages/help.html:405 +#: warehouse/templates/pages/help.html:406 msgid "Follow these steps:" msgstr "" -#: warehouse/templates/pages/help.html:407 +#: warehouse/templates/pages/help.html:408 msgid "" "\n" "__token__
"
msgstr ""
-#: warehouse/templates/pages/help.html:494
+#: warehouse/templates/pages/help.html:495
msgid ""
"Set your password to the token value, including the pypi-
"
"prefix"
msgstr ""
-#: warehouse/templates/pages/help.html:498
+#: warehouse/templates/pages/help.html:499
#, python-format
msgid ""
"Where you edit or add these values will depend on your individual use "
@@ -4634,14 +4639,14 @@ msgid ""
"rel=\"noopener\">.travis.yml
if you are using Travis)."
msgstr ""
-#: warehouse/templates/pages/help.html:502
+#: warehouse/templates/pages/help.html:503
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:506
+#: warehouse/templates/pages/help.html:507
msgid ""
"\n"
" PyPI asks you to confirm your password before you want to "
@@ -4655,15 +4660,15 @@ msgid ""
" "
msgstr ""
-#: warehouse/templates/pages/help.html:518
+#: warehouse/templates/pages/help.html:519
msgid "Yes, including RSS feeds of new packages and new releases."
msgstr ""
-#: warehouse/templates/pages/help.html:518
+#: warehouse/templates/pages/help.html:519
msgid "See the API reference."
msgstr ""
-#: warehouse/templates/pages/help.html:521
+#: warehouse/templates/pages/help.html:522
#, python-format
msgid ""
"If you need to run your own mirror of PyPI, the GitHub apps."
msgstr ""
-#: warehouse/templates/pages/help.html:527
+#: warehouse/templates/pages/help.html:528
#, python-format
msgid ""
"You can analyze PyPI project/package metadata and via our public dataset on Google BigQuery."
msgstr ""
-#: warehouse/templates/pages/help.html:529
+#: warehouse/templates/pages/help.html:530
#, python-format
msgid ""
"other relevant factors."
msgstr ""
-#: warehouse/templates/pages/help.html:538
+#: warehouse/templates/pages/help.html:539
#, python-format
msgid ""
"For recent statistics on uptime and performance, see ."
msgstr ""
-#: warehouse/templates/pages/help.html:545
+#: warehouse/templates/pages/help.html:546
#, python-format
msgid ""
"PyPI does not support publishing private packages. If you need to publish"
@@ -4722,7 +4727,7 @@ msgid ""
"run your own deployment of the devpi project."
msgstr ""
-#: warehouse/templates/pages/help.html:548
+#: warehouse/templates/pages/help.html:549
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 "
@@ -4730,7 +4735,7 @@ msgid ""
"reasons this may occur:"
msgstr ""
-#: warehouse/templates/pages/help.html:550
+#: warehouse/templates/pages/help.html:551
#, python-format
msgid ""
"The project name conflicts with a module from any major version from 2.5 to present."
msgstr ""
-#: warehouse/templates/pages/help.html:551
+#: warehouse/templates/pages/help.html:552
msgid ""
"The project name is too similar to an existing project and may be "
"confusable."
msgstr ""
-#: warehouse/templates/pages/help.html:552
+#: warehouse/templates/pages/help.html:553
#, python-format
msgid ""
"The project name has been explicitly prohibited by the PyPI "
@@ -4753,13 +4758,13 @@ msgid ""
"with a malicious package."
msgstr ""
-#: warehouse/templates/pages/help.html:553
+#: warehouse/templates/pages/help.html:554
msgid ""
"The project name has been registered by another user, but no releases "
"have been created."
msgstr ""
-#: warehouse/templates/pages/help.html:557
+#: warehouse/templates/pages/help.html:558
#, python-format
msgid ""
"Follow the PEP 541."
msgstr ""
-#: warehouse/templates/pages/help.html:561
+#: warehouse/templates/pages/help.html:562
msgid ""
"Can upload releases for a package. Cannot add collaborators. Cannot "
"delete files, releases, or the project."
msgstr ""
-#: warehouse/templates/pages/help.html:562
+#: warehouse/templates/pages/help.html:563
msgid "Owner:"
msgstr ""
-#: warehouse/templates/pages/help.html:562
+#: warehouse/templates/pages/help.html:563
msgid ""
"Can upload releases. Can add other collaborators. Can delete files, "
"releases, or the entire project."
msgstr ""
-#: warehouse/templates/pages/help.html:565
+#: warehouse/templates/pages/help.html:566
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 "
@@ -4792,12 +4797,12 @@ msgid ""
"project page."
msgstr ""
-#: warehouse/templates/pages/help.html:566
+#: warehouse/templates/pages/help.html:567
#, python-format
msgid "If the owner is unresponsive, see %(anchor_text)s"
msgstr ""
-#: warehouse/templates/pages/help.html:569
+#: warehouse/templates/pages/help.html:570
#, python-format
msgid ""
"By default, an upload's description will render with readme_renderer, which is the same description "
-"renderer used by PyPI."
-msgstr ""
-
-#: warehouse/templates/pages/help.html:575
+#: warehouse/templates/pages/help.html:576
#, python-format
msgid ""
"If you can't upload your project's release to PyPI because you're hitting"
@@ -4838,34 +4834,34 @@ msgid ""
"rel=\"noopener\">file an issue and tell us:"
msgstr ""
-#: warehouse/templates/pages/help.html:584
-#: warehouse/templates/pages/help.html:605
+#: warehouse/templates/pages/help.html:585
+#: warehouse/templates/pages/help.html:606
msgid "A link to your project on PyPI (or Test PyPI)"
msgstr ""
-#: warehouse/templates/pages/help.html:585
+#: warehouse/templates/pages/help.html:586
msgid "The size of your release, in megabytes"
msgstr ""
-#: warehouse/templates/pages/help.html:586
+#: warehouse/templates/pages/help.html:587
msgid "Which index/indexes you need the increase for (PyPI, Test PyPI, or both)"
msgstr ""
-#: warehouse/templates/pages/help.html:587
-#: warehouse/templates/pages/help.html:607
+#: warehouse/templates/pages/help.html:588
+#: warehouse/templates/pages/help.html:608
msgid ""
"A brief description of your project, including the reason for the "
"additional size."
msgstr ""
-#: warehouse/templates/pages/help.html:593
+#: warehouse/templates/pages/help.html:594
msgid ""
"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 to lower your overall project size."
msgstr ""
-#: warehouse/templates/pages/help.html:600
+#: warehouse/templates/pages/help.html:601
#, python-format
msgid ""
"If that is not possible, we can sometimes increase your limit. File an issue and tell us:"
msgstr ""
-#: warehouse/templates/pages/help.html:606
+#: warehouse/templates/pages/help.html:607
msgid "The total size of your project, in gigabytes"
msgstr ""
-#: warehouse/templates/pages/help.html:613
+#: warehouse/templates/pages/help.html:614
#, python-format
msgid ""
"PyPI receives reports on vulnerabilities in the packages hosted on it "
@@ -4888,7 +4884,7 @@ msgid ""
"Advisory Database."
msgstr ""
-#: warehouse/templates/pages/help.html:618
+#: warehouse/templates/pages/help.html:619
#, python-format
msgid ""
"If you believe vulnerability data for your project is invalid or "
@@ -4896,41 +4892,49 @@ msgid ""
"target=\"_blank\" rel=\"noopener\">file an issue with details."
msgstr ""
-#: warehouse/templates/pages/help.html:629
+#: warehouse/templates/pages/help.html:631
+#, python-format
+msgid ""
+"PyPI will reject uploads if the package description fails to render. You "
+"may use twine's check "
+"command to locally check a description for validity."
+msgstr ""
+
+#: warehouse/templates/pages/help.html:637
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:631
+#: warehouse/templates/pages/help.html:639
#, python-format
msgid "Go to reset your password."
msgstr ""
-#: warehouse/templates/pages/help.html:632
+#: warehouse/templates/pages/help.html:640
msgid "Enter the email address or username you used for PyPI and submit the form."
msgstr ""
-#: warehouse/templates/pages/help.html:633
+#: warehouse/templates/pages/help.html:641
msgid "You'll receive an email with a password reset link."
msgstr ""
-#: warehouse/templates/pages/help.html:638
+#: warehouse/templates/pages/help.html:646
msgid "If you've lost access to your PyPI account due to:"
msgstr ""
-#: warehouse/templates/pages/help.html:640
+#: warehouse/templates/pages/help.html:648
msgid "Lost access to the email address associated with your account"
msgstr ""
-#: warehouse/templates/pages/help.html:641
+#: warehouse/templates/pages/help.html:649
msgid ""
"Lost two factor authentication application, device, and recovery "
"codes"
msgstr ""
-#: warehouse/templates/pages/help.html:644
+#: warehouse/templates/pages/help.html:652
#, python-format
msgid ""
"You can proceed to API Token for uploads:"
msgstr ""
-#: warehouse/templates/pages/help.html:658
+#: warehouse/templates/pages/help.html:666
msgid "Ensure that your API Token is valid and has not been revoked."
msgstr ""
-#: warehouse/templates/pages/help.html:659
+#: warehouse/templates/pages/help.html:667
msgid ""
"Ensure that your API Token is properly "
"formatted and does not contain any trailing characters such as "
"newlines."
msgstr ""
-#: warehouse/templates/pages/help.html:661
+#: warehouse/templates/pages/help.html:669
msgid ""
"In both cases, remember that PyPI and TestPyPI each require you to create"
" an account, so your credentials may be different."
msgstr ""
-#: warehouse/templates/pages/help.html:663
+#: warehouse/templates/pages/help.html:671
msgid ""
"\n"
" If you're using Windows and trying to paste your password or "
@@ -4984,7 +4988,7 @@ msgid ""
" "
msgstr ""
-#: warehouse/templates/pages/help.html:667
+#: warehouse/templates/pages/help.html:675
#, python-format
msgid ""
"This is a Learn why on the PSF blog."
msgstr ""
-#: warehouse/templates/pages/help.html:681
+#: warehouse/templates/pages/help.html:689
#, python-format
msgid ""
"If you are having trouble with {% trans href='http://docutils.sourceforge.net/rst.html', title=gettext('External link') %}By default, an upload's description will render with reStructuredText. If the description is in an alternate format like Markdown, a package may set the {% trans href='https://packaging.python.org/tutorials/distributing-packages/#description', title=gettext('External link') %}Refer to the Python Packaging User Guide for details on the available formats.{% endtrans %} {% trans href='https://pypi.org/project/readme_renderer/' %}PyPI will reject uploads if the description fails to render. To check a description locally for validity, you may use readme_renderer, which is the same description renderer used by PyPI.{% endtrans %} For how to check a description for validity, see also: {{ description_render_failure() }}
@@ -625,6 +626,13 @@
+ {% trans trimmed href='https://twine.readthedocs.io/en/latest/#twine-check', title=gettext('External link') %}
+ PyPI will reject uploads if the package description fails to render. You may use twine's check command to locally check a description for validity.
+ {% endtrans %}
+ {% trans %}If you've forgotten your PyPI password but you remember your email address or username, follow these steps to reset your password:{% endtrans %}%(command)s
and get a "
@@ -5013,7 +5017,7 @@ msgid ""
"information:"
msgstr ""
-#: warehouse/templates/pages/help.html:683
+#: warehouse/templates/pages/help.html:691
msgid ""
"If you see an error like There was a problem confirming the ssl "
"certificate
or tlsv1 alert protocol version
or "
@@ -5021,7 +5025,7 @@ msgid ""
"PyPI with a newer TLS support library."
msgstr ""
-#: warehouse/templates/pages/help.html:684
+#: warehouse/templates/pages/help.html:692
msgid ""
"The specific steps you need to take will depend on your operating system "
"version, where your installation of Python originated (python.org, your "
@@ -5029,7 +5033,7 @@ msgid ""
" Python, setuptools
, and pip
."
msgstr ""
-#: warehouse/templates/pages/help.html:686
+#: warehouse/templates/pages/help.html:694
#, python-format
msgid ""
"For help, go to %(command)s."
msgstr ""
-#: warehouse/templates/pages/help.html:697
+#: warehouse/templates/pages/help.html:705
#, python-format
msgid ""
"We take , so we can try to fix the problem, for you and others."
msgstr ""
-#: warehouse/templates/pages/help.html:710
+#: warehouse/templates/pages/help.html:718
#, python-format
msgid ""
"In a previous version of PyPI, it used to be possible for maintainers to "
@@ -5068,7 +5072,7 @@ msgid ""
"rel=\"noopener\">use twine to upload your project to PyPI."
msgstr ""
-#: warehouse/templates/pages/help.html:719
+#: warehouse/templates/pages/help.html:727
msgid ""
"Spammers return to PyPI with some regularity hoping to place their Search"
" Engine Optimized phishing, scam, and click-farming content on the site. "
@@ -5077,7 +5081,7 @@ msgid ""
"prime target."
msgstr ""
-#: warehouse/templates/pages/help.html:721
+#: warehouse/templates/pages/help.html:729
#, python-format
msgid ""
"When the PyPI administrators are overwhelmed by spam or "
@@ -5088,29 +5092,29 @@ msgid ""
"have updated it with reasoning for the intervention."
msgstr ""
-#: warehouse/templates/pages/help.html:730
+#: warehouse/templates/pages/help.html:738
msgid "PyPI will return these errors for one of these reasons:"
msgstr ""
-#: warehouse/templates/pages/help.html:732
+#: warehouse/templates/pages/help.html:740
msgid "Filename has been used and file exists"
msgstr ""
-#: warehouse/templates/pages/help.html:733
+#: warehouse/templates/pages/help.html:741
msgid "Filename has been used but file no longer exists"
msgstr ""
-#: warehouse/templates/pages/help.html:734
+#: warehouse/templates/pages/help.html:742
msgid "A file with the exact same content exists"
msgstr ""
-#: warehouse/templates/pages/help.html:736
+#: warehouse/templates/pages/help.html:744
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:738
+#: warehouse/templates/pages/help.html:746
#, python-format
msgid ""
"To avoid this situation, pypi.org."
msgstr ""
-#: warehouse/templates/pages/help.html:745
+#: warehouse/templates/pages/help.html:753
#, python-format
msgid ""
"If you would like to request a new trove classifier file a pull request "
@@ -5128,7 +5132,7 @@ msgid ""
" to include a brief justification of why it is important."
msgstr ""
-#: warehouse/templates/pages/help.html:753
+#: warehouse/templates/pages/help.html:761
#, python-format
msgid ""
"If you're experiencing an issue with PyPI itself, we welcome "
@@ -5139,14 +5143,14 @@ msgid ""
" first check that a similar issue does not already exist."
msgstr ""
-#: warehouse/templates/pages/help.html:760
+#: warehouse/templates/pages/help.html:768
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:769
+#: warehouse/templates/pages/help.html:777
#, python-format
msgid ""
"PyPI is powered by the Warehouse project; ."
msgstr ""
-#: warehouse/templates/pages/help.html:796
+#: warehouse/templates/pages/help.html:804
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:798
+#: warehouse/templates/pages/help.html:806
#, python-format
msgid ""
"PyPI is heavily cached and distributed via private index."
msgstr ""
-#: warehouse/templates/pages/help.html:812
+#: warehouse/templates/pages/help.html:820
#, python-format
msgid ""
"We have a huge amount of work to do to continue to maintain and improve "
@@ -5219,22 +5223,22 @@ msgid ""
"target=\"_blank\" rel=\"noopener\">the Warehouse project)."
msgstr ""
-#: warehouse/templates/pages/help.html:817
+#: warehouse/templates/pages/help.html:825
msgid "Financial:"
msgstr ""
-#: warehouse/templates/pages/help.html:817
+#: warehouse/templates/pages/help.html:825
#, python-format
msgid ""
"We would deeply appreciate your donations to fund "
"development and maintenance."
msgstr ""
-#: warehouse/templates/pages/help.html:818
+#: warehouse/templates/pages/help.html:826
msgid "Development:"
msgstr ""
-#: warehouse/templates/pages/help.html:818
+#: warehouse/templates/pages/help.html:826
msgid ""
"Warehouse is open source, and we would love to see some new faces working"
" on the project. You do not need to be an experienced "
@@ -5242,7 +5246,7 @@ msgid ""
" you make your first open source pull request!"
msgstr ""
-#: warehouse/templates/pages/help.html:820
+#: warehouse/templates/pages/help.html:828
#, python-format
msgid ""
"If you have skills in Python, ElasticSearch, HTML, SCSS, JavaScript, or "
@@ -5256,7 +5260,7 @@ msgid ""
"here."
msgstr ""
-#: warehouse/templates/pages/help.html:828
+#: warehouse/templates/pages/help.html:836
#, python-format
msgid ""
"Issues are grouped into Python packaging forum on Discourse."
msgstr ""
-#: warehouse/templates/pages/help.html:846
+#: warehouse/templates/pages/help.html:854
#, python-format
msgid ""
"Changes to PyPI are generally announced on both the {% trans %}Administration of projects on PyPI{% en
{% trans %}Troubleshooting{% endtrans %}
+
{{ request_ownership() }}
{{ description_content_type() }}
long_description_content_type
in setup.py
to the alternate format.{% endtrans %}{{ file_size_limit() }}
{{ vulnerability_data() }}
{% trans %}Troubleshooting{% endtrans %}
+ {{ description_render_failure() }}
+ {{ login_problem() }}