Skip to content

UBCSailbot/sailbot_workspace

Repository files navigation

Sailbot Workspace

Tests Docs Site Build Images

This repository will get you set up to develop UBCSailbot's software on VS Code. It is based on athackst's vscode_ros2_workspace.

Features

An overview of Sailbot Workspace's features can be found below. See our docs site for how to use these features.

Style

C++ and Python linters and formatters are integrated into Sailbot Workspace:

  • ament_flake8
  • ament_lint_cmake
  • ament_xmllint
  • black
  • clang-tidy
  • isort

The ament linters are configured to be consistent with the ROS style guide.

Dev Container

Dev Containers enable us to use a Docker container as a fully-featured development environment containing all our configuration and dependencies. Our Dev Container configuration can be found in .devcontainer/.

Multi-Root Workspace

Workspaces are VS Code instances that contain one or more folders. Our workspace configuration file can be found at sailbot.code-workspace.

Our software spans many repositories: software team repositories. Multi-root workspaces make it easy to work with multiple repositories at the same time. Our roots are defined in the folders section of our workspace file.

Debugging

Launch configurations have been created to debug our software. They are defined in the launch section of our workspace file.

Tasks

Tasks provide an alternative to memorizing the multitude of CLI commands we use to setup, build, lint, test, and run our software. They are defined in tasks section of our workspace file.

Continuous Integration

Actions were used to build our Docker containers and lint and test our code the same way it is done locally in Sailbot Workspace on GitHub. We use a reusable workflow to create a single source of truth for our tests across all our repositories. Our CI can be found in .github/workflows/.

Customization

This repository supports user-specific configuration files. To set this up, see How to use your dotfiles.

Run Raye's Software

Raye was our previous project. Her software can be run in the raye branch following the instructions in How to run Raye's software. The initial differences between the main and raye branches are summarized in this PR.

Documentation

Further documentation, including setup and run instructions, can be found on our Docs website.