Conversation
11fec1a to
355cea8
Compare
|
I managed to get Travis running the |
Why? You should be able to write the tests in a way that it works the way it is. |
Why should I modify all tests to include the relative folder name? This will introduce an (in my opinion) unneccessary deviation from the ROS1 source code. |
|
Another open question to me is how to install (and test) a custom cmake extension. In catkin we had: Can a package use both build types, |
I don't know anything about this package and why you would need to include relative folder name. But it just works fine in all other ROS packages with the standard way tests are written. So I would be surprised if it doesn't for this package. Maybe you can elaborate what the exact problem is and what you have tried so far as well as what change works but you think is not appropriate.
The same functionality exists in
No, either it is being built using CMake or using Python setuptools. |
Looks like, I need to use There is another testing issue: |
I am just surprised why the xacro test cases should be adapted to work with a new build system. This shouldn't be necessary - tests should be agnostic to the actual build system used. The situation is as follows: Hence, I was asking for an option to change the working directory for running certain test cases. |
The same as in ROS 1 there is no functionality to actually invoke the
This is not related to the build system ( If you don't want to update the tests you could also create a "fake" resource index in the build space and copy/symlink the test directory there. Then the lookup would just the same as before. Another option would be to just generate the paths at CMake time and insert absolute paths into your test. Either by using something like
Yes, that is the standard way of doing it - as for any non-ROS Python package. |
501e833 to
742e961
Compare
|
@clalancette, @gonzodepedro This is ready for review. It realizes a basic ROS2 port.
In principle, we could go for a release of this. What is the procedure to (bloom?) release into ROS2? |
- Removed CMakeLists.txt - Removed wrapper scripts: xacro.py and scripts/xacro - Moved source contents from "src/xacro" to "xacro" - Modifed package.xml and setup.py according to ROS2 requirements - Added linters: test_copyright, test_flake8, test_pep257 - Configure completion hook
@dirk-thomas, probably I'm missing something, but in my point of view, searching |
742e961 to
b98279e
Compare
@rhaschke I need to sync with @gonzopedro later today, but here's what I think we should do:
As far as the release number, for ROS 2 we've been generally bumping the major number when we do the initial release. So I'd suggest that the first release from the dashing branch becomes 2.0.0, and the 1.x numbers are reserved for ROS 1 releases. Does that all make sense to you? |
|
@clalancette I coarsely agree with you. This is my refined todo list:
It's already part of this PR. However, I merged it into #211 as well. |
Sure, technically it still has to list the (non-recursive) files in a known directory. In ROS 1 it needs to crawl a base path recursively to find package manifest files which is orders of magnitude slower. |
Yep, that list sounds good to me. I'll do a review of this PR today. |
clalancette
left a comment
There was a problem hiding this comment.
The only comment I have revolves around the setup for travis. Otherwise, this looks good to me.
.travis.yml
Outdated
| - sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' | ||
| - sudo apt -qq update | ||
| - sudo apt -qq install -y ros-kinetic-catkin ros-kinetic-roslaunch ros-kinetic-rostest ros-kinetic-roslint | ||
| - sudo apt -qq install ros-ardent-ament-index-python ros-ardent-ament-cmake ros-ardent-ament-lint-auto ros-ardent-ament-cmake-pytest |
There was a problem hiding this comment.
We shouldn't be using ardent, it is long out of support.
Instead I'd recommend making an environment variable at the top at pointing it to dashing:
ROS_DISTRO=dashing
Then change all of these lines to use the environment variable instead.
Event better, you could switch this thing to use rosdep instead, which will generate and install the dependencies based on the package.xml. That's a bunch more work, so I won't insist on it here, but it would be good followup work.
There was a problem hiding this comment.
Using rosdep is a great idea. Unfortunately, we need to stick with ardent, because that's the only ROS2 version supported in Xenial (and Xenial is the "latest" Ubuntu distro supported by Travis).
Of course, we could run a docker container, but I would like to avoid this.
There was a problem hiding this comment.
@clalancette, I implemented the rosdep-based installation. However, rosdep doesn't know about ardent anymore (see Travis).
I'm afraid we are stuck to ardent and manual installation.
We should enable the ROS build farm for CI testing as well when releasing.
There was a problem hiding this comment.
I'm pretty sure Travis supports Bionic: https://docs.travis-ci.com/user/reference/bionic/
There was a problem hiding this comment.
Thanks! I didn't look for a while...
2c0de2a to
168d001
Compare
a8a4392 to
e0c180b
Compare
test_pr2() and test_substitution_args_find() relied on a devel space layout to resolve $(find xacro) to the source folder. Creating a dummy ament_index and a link from there to the source's test folder, correctly resolves $(find xacro) again. Using os.path.realpath() to compare canonical path names, fixes test_substitution_args_find()
e0c180b to
08eeb4f
Compare
|
@clalancette, @jacobperron: I think I finished all prerequisites for a ROS2 release. |
| packages=['xacro'], | ||
| package_dir={'': 'src'}, | ||
| scripts=['scripts/xacro'] | ||
| setup( |
There was a problem hiding this comment.
I may be mistaken, but I don't believe we need both a CMakeLists.txt and a setup.py.
I think we can remove setup.py given CMakeLists.txt contains the following commands related to installing the Python package and the script:
ament_python_install_package(xacro)
install(PROGRAMS scripts/xacro DESTINATION bin)
There was a problem hiding this comment.
You are right. But, given all the effort we have put into creating the setup.py, I didn't want to delete this file again.
|
@rhaschke Awesome, thanks for merging this. Yes, the procedure for releasing for ROS 2 is the same as ROS 1; source release ( |
|
I think this could be released into both, crystal and dashing. Do you agree? |
Yes, good idea. The branch name is slightly odd for that, but it really isn't a big deal. Thanks! |
|
Releases prepared: 🎉 |
This is work-in-progress, consolidating and cleaning up #211 for final merging.
In contrast to previous porting attempts, this PR focusses on the core porting effort:
colconand apply required adaptions to setup.py, package.xml, etc.@jacobperron and @gonzodepedro have done some preliminary work into this direction.
But there were more
catkinand ROS1 artifacts in the source code.