Hello All!

As most people are aware, there has been an effort under way to rewrite PyPI in
order to solve a lot of long standing problems. For those who aren't aware, that
is currently available at https://pypi.org/ and it uses the same database that
"Legacy" PyPI does, so the two are essentially just different views over the
same data.

For a awhile now, Python, setuptools, and twine have all defaulted to using
this new code base for uploading artifacts to PyPI. Now that we've gotten some
testing of that code base, the infrastructure team and myself feel comfortable
directing everyone to using the new endpoint and we're planning on shutting
down uploads to Legacy PyPI.

If you're using the latest versions of Python, setuptools, or twine and you
have not put an explicit URL in your ~/.pypirc file, then there's nothing you
should need to do. If you are not, then you should ideally upgrade to the latest
version of whatever tool you're using to upload (the preferred tool is twine)
and edit your ~/.pypirc so that it removes any explicit mention of an URL. Thus
it should look something like:

    index-servers =


If for some reason you're not able to update to the newest version of your
upload tool, then you can configure it to upload to the new code base by
switching the URL to use https://upload.pypi.org/legacy/ instead of
https://pypi.python.org/pypi. Thus your ~/.pypirc would then become:

    index-servers =


For those of you who are using TestPyPI, that will also be affected, and the
required URL for the new upload endpoint for TestPyPI is

We plan to disable uploads to legacy PyPI on July 3rd, 2017 so any configuration
change will need to be made before that date. In addition, we plan to have a
"brownout" on June 29th where we will shut the legacy endpoint down for that

For TestPyPI the change to disable uploads to legacy will be made in the next
couple of days, likely this weekend.

As part of the error message that users will get when attempting to upload to
legacy PyPI, we will include a link to a page that details how to ensure that
they are using the new code base and not the legacy code base.

Thanks everyone!

Donald Stufft