From: Alan W. I. <Ala...@gm...> - 2019-09-06 23:56:40
|
On 2019-09-02 13:36-0700 Alan W. Irwin wrote: > Hi António: > > Your fix of the serious Qt5 font configuration bug for PLplot made our > Qt5 results in PLplot-5.15.0 essentially as good as our Qt4 results > for the first time ever. So ever since that release it has been on my > mind to greatly reduce the complexity of our build-system *and* > testing of our Qt and PyQt components by only supporting Qt5 (i.e., > dropping our support for Qt4). > > The current build-system situation is Qt4 is looked for first, but if > it is not found Qt5 is used as a backup with the exception that Qt5 is > forced if the user specifies -DPLPLOT_USE_QT5=ON (which defaults to > OFF). So my proposed plan to reach the above goal with minimum > disruption for users is the following: > > * PLplot-5.16.0. Use the exact same build system logic except that 4 > and 5 are swapped. That is Qt5 is looked for first, but if it is > not found Qt4 is used as a backup with the exception that Qt4 is > forced if the user specifies -DPLPLOT_USE_QT4=ON (which defaults to > OFF). Warn in the release notes of this change and the > corresponding replacement of the PLPLOT_USE_QT5 option with > PLPLOT_USE_QT4 and also mention we plan to deprecate Qt4 > support in the next release and remove it in the next release > after that. > To Hazen and António: @António: Thanks for your support (in a different post) for my preliminary roadmap for dropping Qt4. @Both: In the event, the above "5.16.0" step was much easier than the intrusive change I described above. Instead, all I essentially did was to change the default value for PLPLOT_USE_QT5 from OFF to ON. (See the Qt-related change in the new (commit 24d0bdf70) version of README.release for the details.) Revised rest of the roadmap. * PLplot-5.17.0. Officially deprecate Qt4 in the release notes and also say we intend to drop it for 5.18.0 there. The only change from the above build system logic is an additional deprecation warning to the user when they specify -DPLPLOT_USE_QT5=OFF and no fall back to Qt5 if Qt4 cannot be found. * PLplot-5.18.0 (or whenever we decide to pull the plug on Qt4 support considering the smoke issue below). Completely remove support for Qt4 (which will finally achieve the desired build-system and test simplifications which is the fundamental motivation for this change). @Hazen: In light of the smoke binding issue we should discuss this still tentative roadmap further. That smoke binding issue is bindings/qt_gui/smoke/ needs to be removed when we drop support for Qt4 because [smoke is not available for Qt5](https://news.ycombinator.com/item?id=20636312). You apparently implemented the PLplot smoke binding because that binding was needed by another independent project of yours. Assuming you do want to develop a Qt5-based binding which would satisfy the needs of your independent project in the same way the your current Smoke Qt4-based binding does, from the "history lesson" in the above URL it appears one possible way forward for Qt5 bindings of any kind is [Shiboken](https://wiki.qt.io/Qt_for_Python/Shiboken). For example, Shiboken is used to implement pyside2 (python binding for Qt5), but I have no clue how difficult it would be for you to replace your smoke binding with a corresponding Shiboken binding. Anyhow, please let me know whether you plan to replace the above smoke binding once it is removed as part of dropping our Qt4 support. And your input on the timing of dropping our Qt4 support is needed as well. By the way, when that support is dropped our pyqt4 binding will have to be removed as well, but that should not be an issue at least for now since our current pyqt5 binding seems to work OK. But that pyqt5 binding does depend on the external pyqt5 project which depends on another external project (sip). So our pyqt5 binding will become vulnerable if either the external projects pyqt5 or sip becomes unmaintained. The above pyside2 project is a recent competitor to pyqt5. And contrary to the expectations of the above 2017 discussion, pyside2 has been released and is apparently going strong. (For example, Debian Buster has many pyside2 packages and the necessary shiboken packages to support pyside2.) Therefore, if you were interested, I would encourage you to implement a pyside2 binding and pyside2_example corresponding to pyqt5_example just in case it turns out that external pyqt5 of sip ever goes the same way that smoke has gone. Alan __________________________ Alan W. Irwin Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |