Pillow icon indicating copy to clipboard operation
Pillow copied to clipboard

Replace PIL with Pillow on PyPI

Open matysek opened this issue 8 years ago • 31 comments

Is there any chance that Pillow team could take over ownership of PyPI page https://pypi.python.org/pypi/PIL/ and that Pillow would became the "official" version of PIL?

It would be nice if Pillow could be installed just by command pip install PIL.

matysek avatar Nov 11 '15 12:11 matysek

I think we'd need Fredrik Lundh to do that, and I haven't seen anything him in ~5 years.

That entry is ancient, as it even predates the last actual PIL release, which was 1.1.7.

wiredfool avatar Nov 12 '15 10:11 wiredfool

If this is the way to go, it looks like one would create a support request to recover the page from Fredrik Lundh, along the lines of http://sourceforge.net/p/pypi/support-requests/562/

radarhere avatar Dec 02 '15 07:12 radarhere

Or contact the author directly. That's what I did with my fork of pylast, and he gave me access: https://github.com/pylast/pylast/issues/92.

hugovk avatar Dec 02 '15 07:12 hugovk

In trying to find contact details, a WHOIS lookup for effbot.org will provide an e-mail address. There is an @effbot user on GitHub, but that may or may not be Fredrik Lundh.

I presume that we'd want @aclark4life to become the owner of the index page.

radarhere avatar Dec 02 '15 08:12 radarhere

Try this: https://github.com/google/closure-templates/blob/master/python/abstract_translator.py#L35

hugovk avatar Dec 02 '15 08:12 hugovk

Thanks. I've sent an e-mail, we'll see what happens.

radarhere avatar Dec 02 '15 08:12 radarhere

I don't expect to hear from Fredrik, but of course it can't hurt to ask. For reference, here's where Pillow was introduced in July 2010:

  • https://mail.python.org/pipermail/image-sig/2010-July/006423.html

More interesting comments in August 2010:

  • https://mail.python.org/pipermail/image-sig/2010-August/thread.html

My favorite comment from Fredrik, which gave my effort legitimacy (in my mind), is here:

  • https://mail.python.org/pipermail/image-sig/2010-August/006429.html
At least a packaging fork means that someone's over there is producing something more than
invectives, but I'd still prefer a patch.

Regarding whether we want this to happen, maybe. There's a lot to think about with regard to Pillow actually becoming PIL and I've not done any of that thinking yet. I'm not opposed to it, but I'd want to make sure it was "done right" and I'm not sure what that means. At the very least, I'd want to have a good reason and I'd want to reduce confusion, not add to it.

aclark4life avatar Dec 02 '15 11:12 aclark4life

Fredrik replied, saying that he'd attempt to get around to it next week.

I'm not necessarily advocating that we do make Pillow the 'official' version of PIL. I do think that updating the page to show 1.1.7 would be good, and changing the description to make people aware of Pillow would be good.

radarhere avatar Dec 04 '15 22:12 radarhere

@radarhere Great, glad to hear

aclark4life avatar Dec 04 '15 23:12 aclark4life

+1 @aclark4life

wiredfool avatar Dec 07 '15 12:12 wiredfool

I'm going to assume this isn't going to happen. Please reopen if I'm wrong or if something changes. (And I'm still not sure I'd want it to happen, though I guess we could make it work somehow; possibly by releasing Pillow as both Pillow & PIL for a while.)

aclark4life avatar Apr 01 '16 22:04 aclark4life

I started a PEP 541 issue about this on the pypa repo

https://github.com/pypa/warehouse/issues/6660

verhovsky avatar Sep 25 '19 18:09 verhovsky

@verhovsky Never say never, I guess… thanks for trying! Also need @python-pillow/pillow-team to think about how to support it, if it happens.

aclark4life avatar Sep 26 '19 15:09 aclark4life

Hi @aclark4life and @python-pillow, the PyPI moderators have exhausted the PEP 541 process for contacting the PIL project owner. At this point, we can consider PIL officially abandoned. Are you interested in acquiring the name or would that just be too much of a complication?

jamadden avatar Jan 02 '20 19:01 jamadden

@jamadden We'll take it, thanks. I imagine we'll release identical distributions of PIL and Pillow for the foreseeable future… RIP PIL, long live PIL/Pillow!

aclark4life avatar Jan 03 '20 00:01 aclark4life

@aclark4life I'll ask the admins to initiate the transfer; I'll just ask to add one owner (aclark) and let you add additional owners/maintainers as appropriate. I assume you'll leave the existing PIL releases in place?

jamadden avatar Jan 03 '20 11:01 jamadden

I imagine we'll release identical distributions of PIL and Pillow for the foreseeable future…

Let's think carefully what exactly we'll put under PIL. If we put the same Pillow distribution under both, there could be confusion about what exactly is installed.

A simple wrapper from PIL to install Pillow is another option, but could also cause installation/upgrade confusion.

I think a warning/error from pip install pil would be simplest, saying to pip install pillow instead.

For comparison, see https://github.com/scikit-learn/scikit-learn/issues/8215.

hugovk avatar Jan 03 '20 11:01 hugovk

@jamadden Yes we'll leave the existing releases intact, and sounds good to me @hugovk, good plan.

aclark4life avatar Jan 03 '20 12:01 aclark4life

Transfer as requested (to PyPI user aclark) is complete.

ewdurbin avatar Jan 03 '20 14:01 ewdurbin

@ewdurbin Looks like I forgot to save my recovery codes, can you please remove my 2FA and I'll re-setup and save codes this time? Thanks

aclark4life avatar Jan 09 '20 11:01 aclark4life

@matysek Getting there!!

Screen Shot 2020-01-17 at 8 04 43 AM

I'd like to leave this issue open for a little while longer (not another five years) until we figure out what to do, if that's OK with you.

aclark4life avatar Jan 17 '20 13:01 aclark4life

As an aside, since we now have control over PyPI PIL, is it worth publishing PIL 1.1.7 there?

radarhere avatar Feb 05 '20 09:02 radarhere

No, there’s no way we should post anything with that many CVEs.

wiredfool avatar Feb 05 '20 10:02 wiredfool

I just noticed that effbot.org has gone dark recently.

Screen Shot 2020-12-04 at 4 11 21 PM

As such, pip install pil (which likely previously failed, particularly in Python 3) now don't happen because PIL's distributions were externally hosted.

Screen Shot 2020-12-04 at 4 11 12 PM

I'm not saying any of this really matters, just that the needle may have moved slightly further towards me wanting to make pip install pil result in a Pillow installation.

Can we do that @python-pillow/pillow-team ? Off the top of my head, I know we could automate replacement of name = 'pillow' in setup.py with name = 'pil'.

aclark4life avatar Dec 04 '20 21:12 aclark4life

My understanding is that, since pip 10 from 2018 it is no longer possible to access external distributions at all, so it doesn't matter that the host isn't up. (This dates back to 2014 and PEP 470.)

A fairly common pattern in situations like this, where one distribution wishes to replace another distribution, but still allow installing using the original name, is to simply have a near-empty distribution under the original name that does nothing but list a dependency on the new project. So pip install pil would result in installing no files itself, but automatically install its dependency, pillow. One example I know of off the top of my head is ZODB3. That was split into ZODB, BTrees, etc, but pip install ZODB3 still works because the ZODB3 distribution does nothing but list those dependencies.

(EDIT: That may have been what hugovk was talking about.)

jamadden avatar Dec 04 '20 22:12 jamadden

@jamadden @hugovk Yaaaas! Why didn't I think of that 😄 Yeah, that's what we should do.

aclark4life avatar Dec 04 '20 22:12 aclark4life

@python-pillow/pillow-team In the case of a PIL distribution with install_requires=['Pillow',] seems like with every Pillow release we should publish a new PIL release with matching Pillow version so that folks running pip install pil will get the corresponding Pillow e.g. PIL setup.py

setup(
  …
  version = '8.1.0',
  install_requires = ['Pillow==8.1.0',]
  …
)

?

We'd also need some volunteers to test "in the wild" if and when such a PIL release were made.

aclark4life avatar Dec 04 '20 22:12 aclark4life

My understanding is that, since pip 10 from 2018 it is no longer possible to access external distributions at all, so it doesn't matter that the host isn't up. (This dates back to 2014 and PEP 470.)

Thanks, good to know, I think it actually helps us as pip install pil fails and should help avoid conflicts/confusion with Pillow.

(EDIT: That may have been what hugovk was talking about.)

Yep, something like that, and also a setup.py something like the one @aclark4life showed, and perhaps it could be automated but it'd be much better to avoid syncing versions and having to release each time.

Because there are pil releases on PyPI, we couldn't/shouldn't use 0.0.0, maybe PIL version 1.1.8 (the last PIL release was 1.1.7) and keep the Pillow dependency unpinned, to allow pip to be able to find and install last good releases for Python 2.7, 3.5 and so on.

setup(
  …
  version = '1.1.8',
  install_requires = ['Pillow',]
  …
)

It'd fix pip install pil failing, people will get Pillow instead of an error. Searching, people do pip install pil from time to time. It would be nice to do this, although the correction is easy enough, install pillow not pil.

However, I'm still on the fence as I'd like to avoid additional installation difficulties, which are already a fairly large and frequent chunk of reported issues, often stuff like this, and I could imagine throwing two packages into the mix could stir things further.

hugovk avatar Dec 05 '20 19:12 hugovk

Shall we at least update the https://pypi.org/project/PIL/ description to mention Pillow?

radarhere avatar Apr 15 '21 12:04 radarhere

The only way to update the description is to upload a new version.

jamadden avatar Apr 15 '21 12:04 jamadden