Context:
We are looking to upgrade from Python 3.8 to Python 3.11 as 3.11 is the new default Python version on the Raspberry Pi 5 (and Python 3.8 will be unsupported soon). However, the DroneKit-Python library is not compatible with Python 3.11, and this decision matrix is used for the solutions to this issue.*Note: DroneKit’s PyPI is out of date, but their GitHub repo is updated
Solution |
---|
Maintenance effort |
---|
Cons
Effort (time)
Further impact |
---|
Do nothing |
: Stay on Python 3.8 |
0
Import new DroneKit as a fork/clone (copy it into our project)
Import new DroneKit as a submodule
Create our own whl/package for new DroneKit on PyPI
None | Compatibility issues with future versions of 3rd party Python libraries (e.g. Pytorch) | |
Create our own MAVLink message processing and handling | Full responsibility on Autonomy to maintain
| Any bugs not caught at testing will occur during flight tests
|
*Fork DroneKit-Python and use as submodule | Full responsibility on Autonomy to maintain
| |
*Use DroneKit-Python as a submodule | Autonomy must maintain correct version of submodule | Submodule update by members must be made carefully
|
*Compile DroneKit-Python into a Python package | Autonomy must compile DroneKit-Python for every upgrade to new version Autonomy must maintain and allow access to correct version of package
|
*Note: DroneKit’s PyPI is out of date, but their GitHub repo is updated
Maxwell Lou Verify compatibility with Python 3.11