Ticket #11472 (closed PLIP: wontfix)

Opened 5 years ago

Last modified 5 years ago

Ship Pillow with Plone to eliminate (most) PIL installation problems

Reported by: aclark Owned by:
Priority: major Milestone: 4.x
Component: General Version:
Keywords: pil Cc:

Description (last modified by asigottech) (diff)

Proposer: Alex Clark
Seconder: Wyn Williams

Motivation

Issues with the Python Imaging Library (PIL) have plagued Plone for as many years as it has existed; it's time to end the plague, or at least start moving in the right direction.

An overview of the challenges:

  1. PIL is not setuptools compatible (see:  http://article.gmane.org/gmane.comp.python.image/4676)
  1. PIL has a slow release cycle (we still haven't seen a 1.1.8 since elro sent patches months ago)
  1. PIL has numerous dependencies (e.g. libjpeg, libzlib, etc.)

With Pillow, we can eliminate (1) & (2) as issues, and significantly reduce problems caused by (3) via more intelligent installation code.

Assumptions

This PLIP assumes the community has a serious interest in solving the problem.

Proposal & Implementation

Either the Plone installers or Plone itself will need to depend on Pillow.

Deliverables

A Pillow release to PyPI (e.g.  http://pypi.python.org/pypi/Pillow/1.6)

Risks

Specifying a dependency on a PIL-like package actually makes it harder to work around the cases where the packaged PIL doesn't install.

Participants

Alex Clark

Progress

Several releases have already been made (e.g.  http://pypi.python.org/pypi/Pillow/1.6).

Other relevant information

  • Fredrik Lundh has a semi-tolerant opinion of the fork: "At least a packaging fork means that someone's over there is producing something more than invectives" ( http://article.gmane.org/gmane.comp.python.image/4625). He'd rather have patches, but he has patches so we are back to #2.
  • Pillow is a "first class" citizen on PyPI (meaning its package name is unique, and no find-links is needed to use it with Buildout) It has seen 6 maintenance releases since it was first created in late 2010.
  • Pillow has been downloaded almost 3K times at the time of this submission, so it's in use and helping people now.

Change History

comment:1 Changed 5 years ago by aclark

  • Description modified (diff)

comment:2 Changed 5 years ago by aclark

  • Description modified (diff)

comment:3 Changed 5 years ago by aclark

  • Description modified (diff)

comment:4 follow-up: ↓ 6 Changed 5 years ago by davisagli

Please format your PLIP as per the PLIP template.

Could you please provide evidence that Pillow has been tested and working without special steps required on all major OS's targeted by Plone? (OS X 10.6, Windows, BSD, major Linux distributions including ubuntu) Specifying a dependency on a PIL-like package actually makes it harder to work around the cases where the packaged PIL doesn't install, so I'm a bit hesitant to go that route unless we have done our homework on testing installation.

comment:5 Changed 5 years ago by aclark

  • Description modified (diff)

comment:6 in reply to: ↑ 4 Changed 5 years ago by aclark

Replying to davisagli:

Please format your PLIP as per the PLIP template.

Could you please provide evidence that Pillow has been tested and working without special steps required on all major OS's targeted by Plone? (OS X 10.6, Windows, BSD, major Linux distributions including ubuntu)

No, but the acceptance of this PLIP would mean we'd actually be able to focus on such tasks (rather than be distracted by the myriad of other problems largely associated with the packaging issues.) As for "special steps", Pillow becomes just another package listed in the eggs parameter of the plone.recipe.zope2instance recipe.

Specifying a dependency on a PIL-like package actually makes it harder to work around the cases where the packaged PIL doesn't install, so I'm a bit hesitant to go that route unless we have done our homework on testing installation.

I'm not entirely sure what you mean. But I can tell you I've actively promoted it in the community for months and have responded to the relatively few issues that have arisen (mostly related to lib paths).

comment:7 Changed 5 years ago by asigottech

  • Description modified (diff)

It is a good idea to look into this as a long term solution that is more controllable by the Plone community +1

comment:8 follow-up: ↓ 9 Changed 5 years ago by hannosch

  • Component changed from Unknown to Infrastructure
  • Milestone changed from 4.1 to 4.x

Laurence patches have been merged into PIL by now, so the official PIL Mercurial tip is setuptools compatible. There's been a 1.2a1 release just four weeks back, and Fredrik seems to be working on PIL again.

I'm hopeful that we'll see a final PIL 1.2 release before we release Plone 4.2 in six to nine months. The deadline for new features for Plone 4.1 has long past.

I think we can only reason about this ticket in a couple of months, based on the availability of a PIL 1.2 release.

comment:9 in reply to: ↑ 8 Changed 5 years ago by aclark

Replying to hannosch:

Laurence patches have been merged into PIL by now, so the official PIL Mercurial tip is setuptools compatible. There's been a 1.2a1 release just four weeks back, and Fredrik seems to be working on PIL again.

Right, I'm aware of that. This PLIP is more about considering if "seems to be working on PIL again" is good enough to rely on. I propose it's not.

I'm hopeful that we'll see a final PIL 1.2 release before we release Plone 4.2 in six to nine months.

I am hopeful too! But again, this PLIP is about deciding if we want to continue to wait and hope vs. taking control of the situation. Ideally, we wouldn't have to do this of course.

The deadline for new features for Plone 4.1 has long past.

That's fine, I don't have any particular interest in seeing it land in 4.1. I only put it there because SteveM suggested it. My main interest is in seeing it made an option for FWT consider for any future release.

I think we can only reason about this ticket in a couple of months, based on the availability of a PIL 1.2 release.

I appreciate any reasoning and/or consideration, thanks. But of course, I'd encourage everyone to start thinking about "giving up" on PIL. If things turn around in the future, Pillow can easily be reverted at that time (it's just PIL).

comment:10 Changed 5 years ago by rossp

  • Status changed from new to closed
  • Resolution set to wontfix

PLEASE READ THIS AND RE-OPEN VALID PLIPS!

As we launch the new PLIP process we'd like to see which PLIPs:

  • are still appropriate/needed
  • still have owners/proposers/champions
  • still have available implementers

If this PLIP should still be considered for future releases of Plone please do re-open this ticket and assign an appropriate milestone. If it should be considered for the next release of Plone, use the 4.2 milestone. Also be sure to update the PLIP description, requester, owner, etc. and include a comment detailing recent progress and new plans. We will use all these details in the new continuous PLIP process.

comment:11 Changed 4 years ago by davisagli

  • Component changed from Infrastructure to General
Note: See TracTickets for help on using tickets.