git-afsantos / haros

H(igh) A(ssurance) ROS - Static analysis of ROS application code.
MIT License
191 stars 37 forks source link

Add Python 3 support #26

Closed git-afsantos closed 3 years ago

git-afsantos commented 6 years ago

Python 2.7 will reach the end of its life on January 1st, 2020.

asmodehn commented 5 years ago

Hi, I m just dropping a note here to give a pointer to https://wily.readthedocs.io/en/latest/

git-afsantos commented 5 years ago

Thanks for the pointer @asmodehn. I was not aware of this tool yet.

max-krichenbauer commented 5 years ago

I ran a quick update of the current HAROS version from to Python3 to see if I would run into any problems: https://github.com/max-krichenbauer/haros/tree/python3 I did not have any issues - everything seems to be running smoothly.

git-afsantos commented 5 years ago

@max-krichenbauer Thanks for trying it out! I figured most of the changes would be due to the iterators and some imports, but I am glad that there is some confirmation now.

mikaelarguedas commented 3 years ago

I'm interested in using this package in ROS Noetic (Python3 only). @git-afsantos is Python3 support something that is in the roadmap of haros ? do you foresee any blocker for this moving forward? I'm not familiar with haros but can maybe give a hand in the porting/testing if it's something that you're interested in supporting/releasing in Noetic.

git-afsantos commented 3 years ago

@mikaelarguedas Python3 is definitely going to be added sometime in the future (soon™). As you can see from the comment and preliminary experiments of Max, above, it seems that most of HAROS is already compatible.

One of the pending goals is to add support for ROS2, which also requires Python3, so I will have to do it. I am just getting done with the last stages of my thesis, and afterwards I will be focusing more on the tool.

git-afsantos commented 3 years ago

@mikaelarguedas I have gone through the code of HAROS, bonsai, and some HAROS plugins (1, 2, 3, 4) to try and make them compatible with Python 3. After running a few preliminary tests, I think most of the issues should be gone.

In any case, if you are willing, you could try running HAROS from source, and let me know if you run into any problems on your machine. Be sure to check out the dev-py3-support branch.

If everything goes well, I should be able to open a PR and make a release for this version.

mikaelarguedas commented 3 years ago

That's awesome thanks! I'll give it a try over the weekend

mikaelarguedas commented 3 years ago

@git-afsantos I could get a python3 version running based on the dev-py3-support with a couple changes. The diff can be seen at https://github.com/git-afsantos/haros/compare/dev-py3-support...mikaelarguedas:dev-py3-support?expand=1 The main changes are making the dockerfile work on ROS Noetic and Focal system dependencies as well as fixing crashes due to missing arguments in the full parser

git-afsantos commented 3 years ago

Thanks for your contribution, @mikaelarguedas ! :+1:

hsd-dev commented 3 years ago

I needed some small changes for @max-krichenbauer's python3 branch to work: https://github.com/max-krichenbauer/haros/pull/1. I have not tested https://github.com/git-afsantos/haros/tree/dev-py3-support yet.

Should pip3 install haros install one of these 2 branches?

git-afsantos commented 3 years ago

No, @ipa-hsd. These branches were not released yet, it must be cloned from the source. I should probably include the changes in the next release, though.

git-afsantos commented 3 years ago

The changes to support Python 3 have been merged in #109, and released as HAROS v3.10.4 . If there are further problems or incompatibilities, please report them in a new issue,