On 17 October 2013 23:22, Donald Stufft <don...@stufft.io> wrote: > > On Oct 17, 2013, at 8:49 AM, Nick Coghlan <ncogh...@gmail.com> wrote: > >> Except we can't tell if it's a human or a script doing the upload, and >> if it's the latter, we just broke somebody's automated release process >> without anything even remotely approaching adequate justification. > > Even if it breaks it, it's for a small number of users, 931 total projects in > 2928 releases in the last year have submitted something using the > ``requires`` field. Looking through the data for these it appears that most > of them are NOT using it correctly.
"You're not allowed to upload to PyPI any more until you fix this thing that we were previously OK with" is a lousy way to educate them. > I'd be willing to bet money that the people who are using it are just trying > to get dependency information to show up on PyPI, which they can do > now using Wheel + Twine. > > It's an attractive nuisance // foot gun, it confuses uses, and by continuing > to allow it we are making packaging more confusing for users. I'm fine with turning it off for projects that don't already use this data. I'm *not* fine with breaking something that was working for people. >> PyPI is a trusted service provider: we can nudge people towards better >> ways of doing things, but something has to pose an imminent threat to >> the integrity of the service itself for us to consider breaking >> backwards compatibility. > > I'm not sure I agree with this. PyPI isn't versioned so unless we deprecate > and remove things it's going to just get cruftier and cruftier. For instance > An API might end up with 3 or more different concepts of "obsoletes" > because we were unwilling to remove older metadata that is no longer > in use. That is actively making the entire system harder to use. I'm not opposed to deprecating and removing it. I'm opposed to just turning it off cold for projects where it was previously working. > That's not to say we should just willy nilly remove stuff, but this seems like > a prime candidate for removal as it is a common pain point that i've seen > new users trying to package things stumble on. Yes, but breaking these users' uploads is not the way to do that. That's an incredibly user hostile step to take, and the problem doesn't even come close to justifying breaking even a not-really-working process (since you can work around the current breakage by manually installing the dependencies - you can't work around an inability to upload without making changes to your code). If you really wanted to push them towards fixing their releases, you could always have PyPI send them an email saying something like: "Hi, an automated scan of PyPI has shown that you're currently uploading metadata that uses the obsolete module dependency fields defined by distutils. These fields aren't actually checked by automated installation tools like pip, so if you're attempting to indicate that your project depends on other PyPI projects, this mechanism doesn't actually work to achieve that. At some point in the future, PyPI may disallow use of these fields entirely, so if you'd like to declare your dependencies in a way that automated tools can process, you may want to look at using the dependency declaration features in setuptools rather than using plain distutils". Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig