Closed coalman321 closed 7 months ago
ros2
: https://github.com/eProsima/Micro-XRCE-DDS-AgentMICROROSAGENT_SUPERBUILD
set to off.colcon build --packages-up-to ...
) because this package is not in the package.xml
of micro-ROS Agent so colcon won't resolve the dependency.If you have any problem I will create a replicable command set for solving this.
I have implemented your suggestions, but I did notice something of concern. It looks like the XRCE agent has a similar cloning behavior built in. Can I forcibly include those packages into my build as well?
Output from colcon during a build
Starting >>> microxrcedds_agent
[Processing: microxrcedds_agent]
--- stderr: microxrcedds_agent
Cloning into 'microxrcedds_client'...
HEAD is now at bdaddba Release v2.1.0
Cloning into 'microcdr'...
HEAD is now at 1c712a0 Release v2.0.0
Those packages are extra functionality for the agent, I guess that you can get rid of them setting UAGENT_P2P_PROFILE
and UAGENT_CED_PROFILE
to OFF
.
I have been able to build micro-ROS Agent without downloading any extra package with these commands:
mkdir -p ws/src && cd ws/src
git clone https://github.com/micro-ROS/micro_ros_msgs
git clone https://github.com/micro-ROS/micro-ROS-Agent
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent
cd ..
# Enter into a network-less environment
docker run -it --rm --net=none -v $(pwd):/ws ros:humble
cd ws
colcon build --packages-select microxrcedds_agent --event-handler console_direct+ --cmake-args -DUAGENT_P2P_PROFILE=OFF -DUAGENT_CED_PROFILE=OFF -DUAGENT_USE_SYSTEM_FASTDDS:BOOL=ON -DUAGENT_USE_SYSTEM_FASTCDR:BOOL=ON -DUAGENT_BUILD_EXECUTABLE=OFF -DUAGENT_ISOLATED_INSTALL:BOOL=OFF
source install/local_setup.bash
colcon build --packages-up-to micro_ros_agent --event-handler console_direct+ --cmake-args -DMICROROSAGENT_SUPERBUILD=OFF
source install/local_setup.bash
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6
Issue template
I am not sure if this issue belongs with setup or the agent. If it needs to be on the agent, let me know and I will move it.
Steps to reproduce the issue
During builds, the micro-ros-agent attempts to pull content from github. This can happen if many days have passed since the last successful build of the agent, or if the build install and log directories are cleaned or removed due to other packages being broken. We use an rsync process to move content over to a remote target that does not have readily available internet access. This rsync process does not seem to move the necessary files used by the agent during build.
Expected behavior
The agent should be buildable without immediate internet access. Synchronizing the source directory from one computer to another should produce the same build result.
Actual behavior
The agent build attempts to pull content from a github repository during clean or new builds. As the build computer at this time does not have internet access, this process fails, halting the build.
Now I disconnect from the network and clean build artifacts
Additional information
This doesnt have to be the default build, and could be hidden behind a config option as this is a bit of a special case.
Any help on this would be appreciated. Thanks!