This repository will get you set up to develop UBCSailbot's software on VS Code. It is based on athackst's vscode_ros2_workspace.
Our documentation, including setup and run instructions, can be found on our Docs website.
An overview of Sailbot Workspace's features can be found below. See our docs site for how to use these features.
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 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/.
Workspaces are VS Code instances that
contain one or more folders.
Our workspace configuration file can be found at
sailbot.code-workspace.
Launch configurations
have been created to debug our software. They are defined in the launch
section of our workspace file.
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.
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/.
This repository supports user-specific configuration files. To set this up, see How to use your dotfiles.
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.