Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting Up GitHub CodeSpaces for Developer Convenience #14

Open
SergeyShorokhov opened this issue Oct 20, 2024 · 0 comments
Open

Setting Up GitHub CodeSpaces for Developer Convenience #14

SergeyShorokhov opened this issue Oct 20, 2024 · 0 comments
Assignees

Comments

@SergeyShorokhov
Copy link
Member

Proposal

We propose to configure GitHub CodeSpaces for all repositories within the ReHLDS organization that involve C/C++ development. CodeSpaces offer a cloud-based development environment, allowing developers to quickly set up a fully configured instance of their projects without local setup. This initiative aims to enhance productivity, streamline onboarding, and provide a consistent development experience across the team.

Objectives

  1. Streamlined Onboarding: New contributors can easily access a pre-configured development environment, significantly reducing the time required to get started with the project.

  2. Consistent Development Environment: CodeSpaces ensure that all developers work in the same environment, minimizing the "it works on my machine" problem and reducing inconsistencies caused by different local setups.

  3. Increased Productivity: Developers can quickly access their projects and start coding from anywhere, eliminating the need for complex local configurations.

Implementation Steps

  1. Create a .devcontainer Directory:

    • Within each repository, create a .devcontainer directory that will contain configuration files necessary for setting up the CodeSpaces environment.
  2. Define devcontainer.json:

    • Create a devcontainer.json file within the .devcontainer directory. This file will specify the development environment, including:
      • Base image (e.g., a Linux distribution with C/C++ tools)
      • Extensions to install (e.g., C/C++ IntelliSense)
      • Any required packages or tools to install (e.g., compilers, build systems)

    Example devcontainer.json:

    {
      "name": "C/C++ Development",
      "image": "ubuntu:20.04",
      "extensions": [
        "ms-vscode.cpptools",
        "ms-vscode.cmake-tools"
      ],
      "settings": {
        "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
        "cmake.configureOnOpen": true
      },
      "postCreateCommand": "apt-get update && apt-get install -y build-essential cmake"
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

2 participants