> On Aug 15, 2016, at 7:12 PM, Glyph Lefkowitz <[email protected]> wrote:
> 
> 
>> On Aug 15, 2016, at 1:56 PM, Donald Stufft <[email protected]> wrote:
>> 
>> My main thought regarding this is that bdist_dmg != all dmg files (similarly 
>> for msi and wininst). These are specific files created by distutils without 
>> a standard or without the needed work to make them truly what users should 
>> be using. I also think they are a different class of upload, the general use 
>> case for PyPI's current file uploads are for automated installs (as 
>> evidenced by the simple API and mirroring).
> 
> I guess I'm just a little confused - are we talking about just hiding them 
> from some parts of the API or disallowing their upload entirely?
> 
> If we're talking about the literal output of bdist_dmg and bdist_rpm I 
> probably agree that they're almost useless.

Right now we’re basically talking about the literal output of bdist_dmg and 
bdist_rpm, because their outputs are the only thing we actually support 
uploading. Our current checks aren’t very stringent (or in some cases, exist at 
all) so it’s *possible* someone is constructing an actual user friendly .dmg 
and uploading it pretending to be a “bdist_dmg”, that’s not really a supported 
operation.

Ideally I’d like to disallow their upload completely and hide them from the 
API, but if the current use case of bdist_dmg, bdist_rpm, bdist_wininst, etc is 
useful enough to keep around, then I’d like to just hide them from the API.

> 
>> If we want to enable dmg, msi, etc uploads that are not the bdist_* variety 
>> for automated tooling, then we could do something like "related files" 
>> people can upload which don't get mirrored for pip and which don't show up 
>> in the repo API. Since they will be classified differently we could also do 
>> better work around the ux of discovering them and separate them from the 50 
>> wheels that some projects end up uploading and make them more obviously 
>> visible. I don't know if pypi as a distribution for _end user_ (vs 
>> developer/power user) software makes sense or not, but if it does we should 
>> support it better than accidentally via distutils. 
> 
> My concern here is that if someone has a hacky workaround working with the 
> current system, it might be better to add support for the new thing ("related 
> files") before killing the old thing.  If the plan is to do them both anyway, 
> wouldn't it be better to do it in that order?  As a community (and I mean the 
> broader open source community here, not distutils-sig; if anything distutils 
> is way better about this) we have an unfortunate habit of killing 
> potentially-useful-but-sub-optimal stuff, wandering off for half a decade, 
> and then only adding the better thing after the fact.

I don’t know if it makes sense to add the hypothetical new thing. Is PyPI the 
right place to distribute a .dmg that say, ships Python itself, some C 
libraries, some Python libraries, some bash scripts, and some static files? I 
don’t know. Currently I think the answer is “no”, PyPI is a repository of 
software _for_ Python, not a repository of software that just happens to be 
written in Python. If the ultimate end goal of a .dmg is that people no longer 
need to worry about what language the thing they are installing is written in, 
it seems weird for them to go to PyPI for a .dmg for one app, npmjs.org for a 
.dmg for another app, and so on.

Now, if it *does* make sense to support generalized uploads for applications 
written in Python with some sort of system level packaging (dmg, deb, conda, 
whatever) then we should figure out a way to actually support that, and support 
it well. As it is, I don’t have any evidence that the files that are currently 
being uploaded to PyPI are anything but “wheels, but in dmg format” (e.g. 
binary packages containing a single library). I don’t want to put a bunch of 
effort and work into making this well supported if there isn’t some evidence 
that folks will actually use it (I suspect a minimum we’d need some buy in from 
the authors of tooling to make these self contained packages).


—
Donald Stufft



_______________________________________________
Distutils-SIG maillist  -  [email protected]
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to