sibson / vncdotool

A command line VNC client and python library
Other
452 stars 120 forks source link

Require Python 3.7+ / drop support for older versions #227

Closed pmhahn closed 1 year ago

pmhahn commented 1 year ago

vncdotool currently still supports Python 2.7, which is end-of-life since 3 years in a few months. Also all versions of Python 3.0 up to and including to 3.6 are end-of-life. Python 3.7 reaches end-of-life in half a year: 2023-06-27

See https://devguide.python.org/versions/

Because of the Python 2.7 support there is still some compatibility code left to handle the bytes / unicode differences, which could be removed if Python 2.7 support was dropped, especially all that ord() handling #219. That would simplify some code paths and would also simplify adding PEP-484 type annotations (I have a local branch where I already started this.)

What are your plans regarding

PS: Some function tests use a tool called vncev, which I could not find. What is that and where can I get it?

sibson commented 1 year ago

I think it's time to retire 2.7 support. I'd kept it pass EOL as I knew there are users on platforms that are still using 2.7.

Maybe I'll make the next release the last py2.7 one, so at least there is a recentish one out there.

sibson commented 1 year ago

vncev is an example program from https://github.com/LibVNC/libvncserver. I use it for intergration testing, but never figured out a good way to build and test it using CI. I usually do a manual run before packaging a release.

pmhahn commented 1 year ago

Thank for the information. I have a local branch here which

Currently that branch also has many more changes. I can either try to separate those changes into multiple commits, but that will take some time and even go to waste when you squash my branch into yours. Some things are even hard to separate as they depend on each other, but I tried to do that anyway.

I'll send you a PR to get your feedback.

sibson commented 1 year ago

keep it in one PR, it's mostly mechanical and shouldn't require too much to figure out.