Skip to content

Proposal: Creation of a Devcontainer for ROS2 Humble Andino Development #261

@Romu10

Description

@Romu10

Proposal: Creation of a Devcontainer for ROS2 Humble Andino Gazebo Development

Description

As a part of our ongoing efforts to improve the developer experience and streamline the setup process, I propose the creation of a Devcontainer for the ROS2 Humble Andino Gazebo development environment. A Devcontainer would allow for a consistent development setup across different environments, reducing setup time and potential configuration issues.

Benefits

  1. Consistency: Ensures that all developers work in an identical environment.
  2. Ease of Setup: Simplifies the initial setup process, making it easier for new contributors to start working on the project.
  3. Portability: Developers can switch between different machines without worrying about reconfiguring the development environment.
  4. Integrated Tools: Ability to pre-configure tools and extensions specific to the project.

Proposed Setup:

  • Base Image: Use the official ROS2 Humble base image as the starting point.

  • Development Tools: Include commonly used development tools and dependencies such as:
    colcon
    rosdep
    gazebo
    vscode extensions for ROS

Configuration:

  • Include .devcontainer/devcontainer.json with the necessary configuration.
  • Provide scripts for setting up the environment and initializing dependencies.

Example of 'devcontainer.json':

{
    "name": "ROS2 Humble Andino Gazebo Development",
    "image": "ros:humble",
    "extensions": [
        "ms-iot.vscode-ros",
        "ms-vscode.cpptools",
        "ms-python.python"
    ],
    "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "postCreateCommand": "rosdep update && rosdep install --from-paths src --ignore-src -r -y && colcon build",
    "runArgs": [
        "--net=host"
    ],
    "workspaceMount": "source=${localWorkspaceFolder},target=/ws,type=bind,consistency=cached",
    "workspaceFolder": "/ws"
}

Tasks:

  1. Create a .devcontainer folder in the root of the repository.
  2. Add the devcontainer.json file with the proposed configuration.
  3. Update the README.md to include instructions on using the Devcontainer.

I look forward to your feedback and suggestions.
Thank you

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

🆕 Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions