mottosso / Qt.py

Minimal Python 2 & 3 shim around all Qt bindings - PySide, PySide2, PyQt4 and PyQt5.
MIT License
896 stars 252 forks source link

Should we remove support for PySide/PyQt4? #413

Open mottosso opened 1 month ago

mottosso commented 1 month ago

Question for the community and users:

With the introduction of PySide6, should we remove support for PySide and/or PyQt4? If so, we could start to include members of Qt.py that exist in PySide2/PySide6, but not PySide/PyQt4, such as QGuiApplication.

Vote with a 👍 for "Yes" and 👎 for "No".

dekekincaid commented 1 month ago

Yes, major version up and drop qt4 support. If people really still want qt4 support they just use v1.x.

MHendricks commented 1 month ago

The dropping of classes like QTextCodec in 1.4 has already caused issues for us and I've had to resort to using the pip requirement of Qt.py==1.3.*.

mottosso commented 1 month ago

Looks like QTextCodec is not included in Qt 6 anyway, so even without PySide/PyQt4 this would still be missing.

matthewlow-dwa commented 1 month ago

For potential guidance, the VFX Reference Platform recommends that: https://vfxplatform.com/

Providers of software libraries focused on VFX and animation content creation should aim to support their releases for the current calendar year and the three preceding years with compatible updates. Studios and end users should have no expectation of support for older libraries.

One way to interpret that recommendation is that Qt4 hasn't been supported since VFX Platform CY2015, well outside the current + 3 year window.

dekekincaid commented 1 month ago

Many libraries way outside the scope of vfx use Qt.py. The vfx platform has minimal to do with this project so it needs a longer tail than 3 years. That being said Centos/RHEL 7 is probably the last Linux distribution that still supports/ships with qt4. It is EOL at the end of June and it had a 10 year support period.

mottosso commented 1 month ago

Looks like this is the way to go. If anyone is up for submitting a PR with PySide and PyQt4 support dropped that would get the ball rolling. It'd consist of two primary steps.

  1. Remove all PySide/PyQt4 code
  2. Add all members that exist across both PySide2 and PySide6

To find out which members exist, one option is to:

  1. Launch Maya 2024 and print(dir(QtCore))
  2. Launch Maya 2025 and print(dir(QtCore))
  3. Compare the two

Make a script of it and use set() to find the intersection, and presto. We've got Qt.py 2.0.0

matthewlow-dwa commented 3 weeks ago

While dropping PySide/PyQt4 is being worked out for an eventual 2.0.0 release, would it be worth it to make a 1.4.2 release to pick up the recent fixes for the PyQt5 regressions? https://github.com/mottosso/Qt.py/compare/1.4.1...master

mottosso commented 2 weeks ago

While dropping PySide/PyQt4 is being worked out for an eventual 2.0.0 release, would it be worth it to make a 1.4.2 release to pick up the recent fixes for the PyQt5 regressions? 1.4.1...master

Yes, definitely if there are fixes to be made that still holds up with PySide/PyQt4 then by all means submit a PR.

For the 2.0 without PySide/PyQt4, the table is set for any volunteer to begin with a PR.