Drop python2 support (taurus 5!)
Taurus was py2-only until v4.5 and has supported py2+py3 on a single code base since v4.5 (py3 being the recommended option since v4.6).
This issue proposes that the release for the Jan20 milestone (which is likely going to be 4.7) be the last one supporting python <3.5
The arguments in favour of dropping python 2 support are:
- py2 is no longer maintained since January 2020 and many of our dependencies won't be available for py2
- supporting both py2 and p3 on a single code base is time consuming and the source of some subtle bugs.
- keeping py2 compatibility limits the features of py3 that we can use
- requiring py2 compatibility in contributed code makes it harder to contribute new code
- new developments are typically done with py3 (specially now that sardana 3.0 is py3-only)
Proposed Roadmap
-
Now: advertise taurus 4.7 (Jan20) as the last release supporting py2
*
-
In Jan20: create a py2-legacy branch for eventual "emergency" support of py2
**
-
Right after Jan20: bump the version to 5.0.0
***
and clean the py2-related code (ditchfuture
, removeqwt5
****
, ...). - In Jul20: officially release taurus 5
Notes:
-
*
Probably it makes sense to couple the drop of support of py2 with also dropping support for Qt4 (basically, the only reason to keep Qt4 support is the qwt5 widgets, and they do not work with py3 anyway). -
**
i.e. leave a 4.7.x branch open in case we want to add some hotfix patches, but not adding any new enhancement (similar to thesupport-3.x
branch) -
***
The extent of clean-up not related with py2 that we want to introduce in taurus 5 is something that would require further discussion (balancing cleanup with 4 to 5 compatibility) -
****
Effort should be concentrated during Q1 and Q2 of 2020 on closing the gap of features still missing in the pyqtgraph-based widgets that replace the qwt5 ones (most importantly settings persistence and archiving support)
Edited by Carlos Pascual