Skip to content

Add Support for Development Containers (DevContainers) #31

Description

@wopox1337

Add Support for Development Containers (DevContainers)

Problem Description

Currently, setting up the development environment for projects can be challenging for newcomers and even experienced contributors. Each project may have specific dependencies, compilers, and environment configurations, leading to inconsistencies and additional onboarding time.

Proposed Solution

Introduce support for Development Containers (devcontainers) (https://containers.dev/) to streamline the setup process and ensure a consistent development environment across all platforms (Windows, macOS, Linux).

Key benefits of using devcontainers:

  • Unified development environment for all contributors.
  • Simplified onboarding process for new team members.
  • Elimination of platform-specific setup issues.
  • Easy access to the required dependencies and tools.

Tasks

  1. Add a .devcontainer/ folder with the following files:
    • devcontainer.json: Define the container configuration, extensions, and port forwarding.
    • Dockerfile: Specify the base image and required tools/dependencies.
  2. Configure the development environment to support the following:
    • Compiler for C/C++ (e.g., GCC or Clang).
    • Dependencies specific to the project (e.g., libraries, debugging tools).
    • Tools for building and testing the project.
  3. Ensure integration with CI/CD pipelines for consistency.
  4. Test the devcontainers setup on all major platforms (Windows, macOS, Linux).
  5. Document the usage of devcontainers in the README file.

Acceptance Criteria

  • Developers can clone the repository, open it in VS Code, and start working inside the devcontainer with no additional setup.
  • All dependencies, compilers, and tools are pre-configured in the devcontainer.
  • The environment works seamlessly across Windows, macOS, and Linux.
  • Clear documentation on how to use the devcontainer is available in the project README.

Additional Notes

Consider using a lightweight Docker base image to minimize container build times. The setup should prioritize ease of use and should not introduce unnecessary overhead for developers.

Related Issues

If there are existing issues related to setting up the development environment, they should be linked here for context.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions