-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove vendored version of olefile Python package in favor of upstream #2199
Conversation
OleFileIO was originally part of PIL, when I forked it back in 2005. I agree now it makes more sense for Pillow to import it as a dependency, since it is a separate package used by quite a few other projects. It will also avoid the maintenance of two versions. |
That would simplify things. A couple of points:
|
Created upstream PR decalage2/olefile#34. All feedback there is welcome.
Done in latest commit. Thanks! |
-1 This change is likely to cause other people's code to break. Furthermore, running the test suite will not alert on that breakage, because the tests won't run if olefile isn't installed. At a minimum, we're going to need to add olefile as a requires entry in setup.py. We're also going to need to check on the downstream packagers so that they can either build an olefile package or pull it in during the packaging process. We should also import something into |
Good point about tests. This PR installs it on Travis CI, so it'll be tested there for Linux and Mac. We should also install it for the Windows CI on AppVeyor. Is OleFileIO an essential dependency? It's only needed for FlashPix and Microsoft Image Composer formats. Although it's not a big problem to install it everywhere for those who don't need it and could cause fewer headaches to do so. Perhaps require it and then not require it after some deprecation period. OleFileIO's been part of PIL since at least 1.1.1, released in 2000. |
Integrated feedback. The olefile Python package is now included in The FPX and MIC tests will now always run, including on all CI servers. Users will automatically install the olefile Python package when installing Pillow through the The |
I noticed I still needed to include |
I've rebased to fix the setup conflict and added something to do this:
so that we'll warn users, then silently redirect them to https://github.com/wiredfool/Pillow/tree/dep-olefile As for the olefile dependency, when I run |
…ream Pillow now requires the olefile Python package through setup.py. This removes Pillow's maintenance of this library by instead relying on and reusing the upstream version. No longer need to regularly update the vendored package and docs. olefile bug fixes and features can go directly upstream. During travis tests, now installs Pillow package before tests; this will also install all dependencies (currently, only olefile).
Thanks for the review and suggested changes. The I have incorporated all changes and rebased the branch. I have handled the travis dependency issue by adding a All additional feedback welcome. Thanks. |
The olefile Python package is now optional. Pillow will now use olefile if installed, otherwise will not support FlashPix and Microsoft Image Composer formats.
Updated docs with information on how to include support with a backwards incompatibility note.
This removes Pillow's double maintenance of this library by instead relying on and reusing the upstream version. No longer need to regularly update the vendored package and docs. olefile bug fixes and features can go directly upstream.
CCing @decalage2 as the maintainer of olefile.
For reference, the double maintenance and vendoring maintenance has been discussed to some degree in several PRs/issues: