<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hello All!</div><div class=""><br class=""></div><div class="">As most people are aware, there has been an effort under way to rewrite PyPI in</div><div class="">order to solve a lot of long standing problems. For those who aren't aware, that</div><div class="">is currently available at <a href="https://pypi.org/" class="">https://pypi.org/</a> and it uses the same database that</div><div class="">"Legacy" PyPI does, so the two are essentially just different views over the</div><div class="">same data.</div><div class=""><br class=""></div><div class="">For a awhile now, Python, setuptools, and twine have all defaulted to using</div><div class="">this new code base for uploading artifacts to PyPI. Now that we've gotten some</div><div class="">testing of that code base, the infrastructure team and myself feel comfortable</div><div class="">directing everyone to using the new endpoint and we're planning on shutting</div><div class="">down uploads to Legacy PyPI.</div><div class=""><br class=""></div><div class="">If you're using the latest versions of Python, setuptools, or twine and you</div><div class="">have not put an explicit URL in your ~/.pypirc file, then there's nothing you</div><div class="">should need to do. If you are not, then you should ideally upgrade to the latest</div><div class="">version of whatever tool you're using to upload (the preferred tool is twine)</div><div class="">and edit your ~/.pypirc so that it removes any explicit mention of an URL. Thus</div><div class="">it should look something like:</div><div class=""><br class=""></div><div class=""> [distutils]</div><div class=""> index-servers =</div><div class=""> pypi</div><div class=""><br class=""></div><div class=""> [pypi]</div><div class=""> username:yourusername</div><div class=""> password:yourpassword</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">If for some reason you're not able to update to the newest version of your</div><div class="">upload tool, then you can configure it to upload to the new code base by</div><div class="">switching the URL to use <a href="https://upload.pypi.org/legacy/" class="">https://upload.pypi.org/legacy/</a> instead of</div><div class=""><a href="https://pypi.python.org/pypi" class="">https://pypi.python.org/pypi</a>. Thus your ~/.pypirc would then become:</div><div class=""><br class=""></div><div class=""> [distutils]</div><div class=""> index-servers =</div><div class=""> pypi</div><div class=""><br class=""></div><div class=""> [pypi]</div><div class=""> repository:<a href="https://upload.pypi.org/legacy/" class="">https://upload.pypi.org/legacy/</a></div><div class=""> username:yourusername</div><div class=""> password:yourpassword</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">For those of you who are using TestPyPI, that will also be affected, and the</div><div class="">required URL for the new upload endpoint for TestPyPI is</div><div class=""><a href="https://test.pypi.org/legacy/" class="">https://test.pypi.org/legacy/</a>.</div><div class=""><br class=""></div><div class="">We plan to disable uploads to legacy PyPI on July 3rd, 2017 so any configuration</div><div class="">change will need to be made before that date. In addition, we plan to have a</div><div class="">"brownout" on June 29th where we will shut the legacy endpoint down for that</div><div class="">day.</div><div class=""><br class=""></div><div class="">For TestPyPI the change to disable uploads to legacy will be made in the next</div><div class="">couple of days, likely this weekend.</div><div class=""><br class=""></div><div class="">As part of the error message that users will get when attempting to upload to</div><div class="">legacy PyPI, we will include a link to a page that details how to ensure that</div><div class="">they are using the new code base and not the legacy code base.</div><div class=""><br class=""></div><div class="">Thanks everyone!</div><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class="">—<br class="">Donald Stufft<br class=""></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""></div><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>