<p dir="ltr"></p>
<p dir="ltr">On 16 Aug 2016 05:09, "Donald Stufft" <<a href="mailto:donald@stufft.io">donald@stufft.io</a>> wrote:<br>
><br>
> Hello!<br>
><br>
> I'd like to restrict what folks can upload to PyPI in an effort to help narrow<br>
> the scope down and to enable more a more consistent experience for everyone.<br>
><br>
> First off, we currently allow people to upload sdist, bdist_wheel, bdist_egg,<br>
> bdist_dmg, bdist_dumb, bdist_msi, bdist_rpm, and bdist_wininst. However I think<br>
> that we should try to get rid of support for most of these. Just for reference<br>
> currently the number of files uploaded for each type of file looks like:<br>
><br>
> * sdist: 506,585<br>
> * bdist_wheel: 81,207<br>
> * bdist_egg: 48,282<br>
> * bdist_wininst: 14,002<br>
> * bdist_dumb: 5,502<br>
> * bdist_msi: 497<br>
> * bdist_rpm: 464<br>
> * bdist_dmg: 45<br>
><br>
> Out of all of these, I think that we can easily remove bdist_dmg, bdist_rpm,<br>
> and bdist_dumb. I also believe that there is a strong case for removing<br>
> bdist_msi and bdist_wininst. I also think we should consider removing<br>
> bdist_egg.<br>
><br>
> First of all, when I say "remove", I mean disallow new uploads, but do not<br>
> delete the existing files.</p>
<p dir="ltr">General +1 from me for data driven design simplification.</p>
<p dir="ltr">As far as ideas for *how* to go about it go, I think there a few user categories to consider:</p>
<p dir="ltr">* new user making their first project: we can deprecate legacy formats aggressively here (since there shouldn't be many, if any, backwards compatibility considerations for either automated workflows or people's habits)</p>
<p dir="ltr">* new release of existing project: here is where we want to actively warn project maintainers using the old formats that PyPI's behaviour will be changing *before* we force them to change their workflows and habits</p>
<p dir="ltr">*  new project by existing maintainer: here, I'd be inclined to flag maintainer accounts at the start of the deprecation period based on whether or not they're currently using the legacy formats on any of their projects - that is, the migration period would be applied at the *user* level, in addition to the project level. If someone has never used the legacy formats, they can be treated like a new user immediately, and will presumably never even notice the change.</p>
<p dir="ltr">Cheers,<br>
Nick.<br>
</p>