Python 2.7 as reached his EOL release and will not be maintained after January 1st, 2020 [1] due to PEP 373 [2]. More and more projects withdraw support of python 2.7 [3] including test packages [4]
I propose to use the full potental for python 3 and to cleanup code from old stuff. This hasn't to be immediately but bot owners should be conducted to Switch so python 3 soon.
What can be the steps to proceed?
- Abandon support for Python 2.6 (T154771)
- Drop support for Python 3.3 (T184508)
- Drop support for python 2.7.2 and 2.7.3 now (T191192)
-
Drop support for Python 2.7.6 and lower in few months (T203471) -
Drop support for Python 2.7.8 and lower in few months due to InsecureWarning of urllib3 [5] - Withdraw Python 2.7.2/2.7.3 from appveyor test
- Add python 3.7 to test matrix gerrit:433554
- Add python 3.8 to test matrix gerrit:482532
- Drop support for python 2.7 in 2020
- Provide a new "python2" tag to indicate a Python 2 stable release
- Remove obsolete/deprecated/python2 related code
- Release new major version
If someone cannot upgrade to Python 3.0, the older Pywikibot releases are still available either via pypi package or the corresponding tag in our repository but one should be aware that these issues may still lead to problems.
Newest test packages using Python 3 only
- irc
- pydocstyle (also used by other packages)
- pytest (from version 5.0)
- Pillow (from Version 7.0)
packages needed for Python 2.7 compatibility
- enum34
- future_buildins
- future
- ipaddress
- mock
- pathlib2
- requests[security] (for 2.7.4 - 2.7.8)
- stdnum
- six
- unicodecsv
[1] https://pythonclock.org/
[2] https://www.python.org/dev/peps/pep-0373/
[3] https://python3statement.org/
[4] https://pypi.org/project/pydocstyle/#description, T215874
[5] https://www.franzoni.eu/python-requests-ssl-and-insecureplatformwarning/