# Rules for programming Python in ROS2 ## File Structure ``` colcon_workspace | |- build (holds build files) |- install (holds build elements) |- src (contains your source code - this is where you work) ``` ## Colcon build Performing a `colcon build` is neccessary after every change to the `src` directory. This must be performed in the `root` of the _colcon_ workspace (eg. `cd ~/colcon_ws`). In order to avoid this procedure after every change made to a Python script you must run `colcon build --symlink-install` once. This links the files created in `/build` and `/install` to your source files in `/src`. However, after creating a new Python script this procedure must be repeated in order to also link this new script. ## Source directory The source directory holds your ROS2 packages as further directories. In this example the `src` directory contains the packages `pubsub` and `pubsub_msg`: ``` colcon_workspace/ | |- src/ | |- pubsub/ |- pubsub_msg/ ```