-
Notifications
You must be signed in to change notification settings - Fork 15
Work environment
Make sure you have a recent version of Docker and nvidia-docker installed if so required by your Docker version.
Then run the following command:
wget https://raw.githubusercontent.com/osrf/lrauv/main/tools/setup/workspace.sh -O - | bash
to setup a local workspace. You may also run tools/setup/workspace.sh
from a local https://github.com/osrf/lrauv clone, in which case the workspace will be setup using that repository as a basis instead of the upstream one. This is useful when developing and testing workspace tooling.
The resulting workspace layout is:
path/to/workspace/
enter
src/
lrauv/
...
The enter
script is the entrypoint to the workspace container, which holds all the necessary build dependencies.
Any number of packages may added to the workspace src
tree. This is useful when prototyping integrations or mutating dependencies from source. For instance, one may clone, modify and re-build Gazebo Garden by importing distribution sources into the workspace:
vcs import src < src/lrauv/tools/setup/gz-garden.yaml
You may enter
the workspace (container) as many times you want, but the container lifetime is bound to the first entry. Once you exit
the workspace (container) from that terminal, the container will be scrapped.
The workspace directory is mounted from the host filesystem into the container filesystem. This means sources may be added, modified, or removed while inside or outside the container transparently, and that said changes will outlive the container. This is not the case for any other modification outside the workspace directory. However, you may optionally persist them by exit
'ing the container using Ctrl + P
, Ctrl + Q
. This will commit such changes back to the container image. Note this effectively abandons the standard build environment -- use wisely.