Willow
Willow copied to clipboard
[RFC] Make OpenCV a separately installed module?
Just want to gather opinions on whether we should move the OpenCV plugin (along with the face/feature detection operations) into a separate module. This should be easy to do as it's decoupled already.
Reasons:
- I don't think it's very widely used
- The majority of the size of Willow's distributions on pypi is taken by one file that's only required by OpenCV https://github.com/wagtail/Willow/blob/master/willow/data/cascades/haarcascade_frontalface_alt2.xml
- There is an alternative available (https://github.com/torchbox/rustface-py) that's much easier to install than OpenCV. Having OpenCV built in to Willow core would make it less likely for someone to try out alternatives which could be better.
Drawbacks:
- Breaks backwards compatibility
- Will make face detection features less discoverable
I don't think it's very widely used
I imagine this is true, but we don't have any data about it, AFAIK.
Breaks backwards compatibility
Could / should we have a deprecation path?
I'm generally in favour.
Could / should we have a deprecation path?
We could follow Wagtail's deprecation policy for this:
- Versions 1.2 and 1.3 still have the plugin built in, but show a deprecation warning if it's used
- Completely remove in 1.4
Willow doesn't have a fixed release cycle and there's not many new features on the horizon for the core library, so two releases might be quite a long time!
Since we don't deprecate things very often, I'm thinking we should mark this, and other deprecated features, for removal in 2.0.
I won't set a date for 2.0 yet. We'll probably decide to make a 2.0 when there are too many deprecated features for us to handle!