-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
geomerty2_python3: 0.6.8-1 in 'melodic/distribution.yaml' [bloom] #33330
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm very worried about how this is going to interact with the greater system.
THere's a lot of c++ code being compiled in here: https://github.com/jsk-ros-pkg/geometry_python3/blob/melodic-devel/tf_python3/CMakeLists.txt I'm worried about these colliding with
And looking here: https://github.com/jsk-ros-pkg/geometry_python3/blob/fc76a49b2edeea990661e3ffc549e2c5ab22681b/tf_conversions_python3/CMakeLists.txt#L56 it's installing tf_conversions
to tf
which looks wrong.
In general I think that this is a neat trick. But it's not a supported API and as such I think that these sort of hacks should not be released as full packages that look like here's an official python3 backport of geometry2
by maybe make up a jsk_
prefixed package or packages that holds the couple of things that you're building and installing and can hot patch them into your path.
I might even suggest rolling back the opencv_bridge previously done too. In general I don't want to prevent you from doing these things. But I don't want to get generic questions on ROS Answers that are asking how to make tf work under python3 because I found one tutorial that told me to use this officially released package that's basically a hack and requires hot patching your python path and I've never actually run. If you're doing all these install path mutations there's no need to use standard names. And when you give people the hotpatch documentation you can also point them to the alternative package names.
I originally let in That said, I see the larger issue that the more of these we put in, the more we run the risk of having conflict and also diluting the messaging around Python 2 vs Python 3. Given that Melodic has only 1 year of support life left, trying to put Python 3 support in at this time is maybe not the best idea. So my inclination is to close this out (along with #33329 and #33328). I'm ambivalent about whether we keep @k-okada does this all make sense to you? |
@clalancette @tfoote thanks for comments, and I fully understand your concerns, but here are my thoughts;
I understand our approach is not the best, but at the same time, moving to Python3/Noetic of robotic system is not a easy job. It very different from move one package to Noetic/Python3. As you already know, the key of robotic system for us is "integration" and it consists of variety of packages. Thus, usually, it takes a few month to upgrade and test. But just to spend time to upgrade to keep current functionality is few rewards. Actually we use our PR2 with Indigo at this moment.
Me neither. But in the real life, people asking me to use Python3 on their robots, and they sometime breaks robot environment by "hotpatch", "hack" and so on, or stop using a real hardware and use dataset/simulator to show their results, which I really do not want to. So if we release this So for me, provide *_python3 packages is bad solution, but better than other hack/hotpatch approach, and spending time on discuss/fix Python2/Python3 Melodic/Noetic, UpgradeRobot discussion.
This is my concern too. We do not intend to support all melodic packages with Python3. Our target is limited to we need As for We will have problem if we import
Sorry, you're right. We should check more carefully, @iory could you fix the issue? here is the check result and script -> https://gist.github.com/k-okada/f6bd47a21c9f46b1eae4e8051f772191 |
I programatically investigated what depends on python in the package related to this tf.
The result of this command is:
rospack cannot be imported with python in the first place. From these things, to use tf in python3 in melodic environment,
Actually building tf and tf_conversion with python3 is not necessary if This PR is not needed. Only these two are required to use tf with python3 in the melodic environment. Also, as @k-okada confirmed, I checked the packages installed on It is installed only on |
Wouldn't it also be hard to tell if the problem is caused by using Python 3 with Debian packages built with Python 2?
If Python 3 and ROS 1 are both requirements, Spending time upgrading to ROS Noetic gets you a much longer support life. If upgrading to Noetic isn't worth the cost, then building ROS Melodic from source with Python 3 would give you the option of patching packages in your workspace past Melodic's EOL date. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @k-okada,
Would you be willing to prefix the repository and package names with your organization name, jsk_
?
There was concern expressed internally that someone who saw and installed ros-melodic-tf2-py-python3
might open an issue on the geometry2
repo to report they can't import it, but someone who installed ros-melodic-jsk-tf2-py
or ros-melodic-jsk-tf2-py-python3
would hopefully find the correct repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@k-okada, would you also update the meta data in the package.xml
files in all of the packages? Specifically,
- name (as @sloretz) mentioned
- description: should mention that this is community supported, in addition to describing the package
- maintainer: should be someone in your organization
- url: should point to documentation you maintain (maybe your repo)
Thank you for your comments. |
continued in #33632 |
Increasing version of package(s) in repository
geomerty2_python3
to0.6.8-1
:melodic/distribution.yaml
0.11.1
null