taucmdr
taucmdr copied to clipboard
Python 3 migration
Python 2 has reached EOL and we need to migrate to python 3 ASAP.
Requirements to be able to do this robustly are:
- [x] Improved automated testing of style and syntactic issues
- [ ] Use mypy to enforce type checking on Python 2 code
- [x] Migrate testing from Travis-CI to GH actions
- [x] Add additional tests, including nightly and integration tests
The biggest challenge is surrounding Python 3's handling of strings using two different underlying types: One uses encoding as byte strings and the other is UTF-8 encoded. The arguments on stdin and results on stdout and stderr from spawned processes are especially challenging to detect and convert.
Type checking will make debugging easier in general, and will enable catching cases were there is an unexpected type mismatch in arguments.