-
Notifications
You must be signed in to change notification settings - Fork 49
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
python package --symlink-install is broken for config files #407
Comments
Hi, |
So it looks like this issue has still not been fixed. Is symlink just broken for python packages or is there a workaround? That is, for files in config folder, they are not symlinked. For cmake packages, all the files in the config folder are symlinked. |
This still doesn't work for me either. |
Still doesn't work unfortunately. |
Does not work until this day. I cannot even overcome this with supplying my package with |
Workaround for colcon/colcon-core#407 Fixes #87
Any news with this issue? |
Seems converting a |
* examples: switch to cmake for symlink-install Workaround for colcon/colcon-core#407 Fixes IMRCLab#87
This PR uses node / launch arguments to specify whether the driver should operate in "mock" mode, instead of using the sentinel name `Mock_spot`. With an explicit parameter, we can have multiple mocks, with different names, and also affect whether there is an arm. For example, with this modification you can do ``` cd spot_driver colcon build --symlink # (`symlink` [does not apply to launch files](colcon/colcon-core#407)) source install/setup.bash ros2 launch spot_driver spot_driver.launch.py spot_name:=AnyNameHere mock_enable:=True mock_has_arm:=True ``` and then, for example (`spot_utilities`, specifically in `bdai` repo) ``` # source so that `spot_driver` can be found cd spot_utilities # /workspaces/bdai/ws/src/spot_utilities colcon build source install/setup.bash ros2 run spot_utilities spot_teleop.py AnyNameHere ```
This PR uses node / launch arguments to specify whether the driver should operate in "mock" mode, instead of using the sentinel name `Mock_spot`. With an explicit parameter, we can have multiple mocks, with different names, and also affect whether there is an arm. For example, with this modification you can do ``` cd spot_driver colcon build --symlink # (`symlink` [does not apply to launch files](colcon/colcon-core#407)) source install/setup.bash ros2 launch spot_driver spot_driver.launch.py spot_name:=AnyNameHere mock_enable:=True mock_has_arm:=True ``` and then, for example (`spot_utilities`, specifically in `bdai` repo) ``` # source so that `spot_driver` can be found cd spot_utilities # /workspaces/bdai/ws/src/spot_utilities colcon build source install/setup.bash ros2 run spot_utilities spot_teleop.py AnyNameHere ```
Building a python package containing launch and config files using
colcon build --symlink-install
results in the config and launch files getting copied into install/ instead of symlinked.This seems to apply to anything listed under
data_files
in setup.py.Doing the same with cmake results in symlinks in the install directory as expected.
There doesn't appear to be any documented way of getting config files symlinked using setup.py except for hacky workarounds involving hardcoded links in launch files that prevent clean packaging
Similar issues have been raised, but none were usefully resolved:
ros2/launch#187
#169
The text was updated successfully, but these errors were encountered: