gramaziokohler / roslibpy

Python ROS Bridge library
MIT License
273 stars 56 forks source link

Add additional Python 3 versions to GitHub Actions matrix #107

Closed DomenicP closed 1 year ago

DomenicP commented 1 year ago

This change adds Python 2.7 as well as all currently supported Python 3 versions to the GitHub Actions build matrix.

What type of change is this?

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

DomenicP commented 1 year ago

Tried adding Python 2.7 to the test matrix but it looks like dependencies of the build/test process have dropped support for Python 2:

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.

...

ERROR: Could not find a version that satisfies the requirement black (from -r requirements-dev.txt (line 2)) (from versions: none)
ERROR: No matching distribution found for black (from -r requirements-dev.txt (line 2))

Not sure if it's worth trying to fix support for Python 2.7 given the EOL status? Adding support for the other Python 3 versions seems to pass the CI check.

gonzalocasas commented 1 year ago

The main reason to continue supporting 2.7 is IronPython (which only exists in 2.7 flavors so far and is the built-in interpreter for CAD Software such as Rhino3D).

I tried adding iron python to CI, but we'd need a Ros container to test against and docker on Windows servers only runs Windows containers (last time i checked at least). One alternative would be to install ROS with conda, natively, and then we could use any OS for CI/testing .

DomenicP commented 1 year ago

The main reason to continue supporting 2.7 is IronPython (which only exists in 2.7 flavors so far and is the built-in interpreter for CAD Software such as Rhino3D).

Makes sense, thanks for the additional context. I'm not familiar with IronPython and don't necessarily have time to look into it at the moment. Let me know if you'd like to move forward with this PR with just the extra Python 3 versions, otherwise I can close this PR and maybe create an issue for someone to investigate the IronPython test setup in the future.

gonzalocasas commented 1 year ago

Let's do both: move forward with this pr to add more 3.x versions and add an issue for ironpython testing