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

Immutable Development Environments #24

Open
da-moon opened this issue Aug 26, 2021 · 2 comments
Open

Immutable Development Environments #24

da-moon opened this issue Aug 26, 2021 · 2 comments

Comments

@da-moon
Copy link
Contributor

da-moon commented Aug 26, 2021

PROGRAMMING TASK

Description of Task

  • Add required dotfiles and Dockerfile for creating a unified development environment for all contributors

Reason or Need for Change

  • To ensure all contributors have the same set of tools, toolchain version, and toolchain configuration and lower barrier to entry and eliminate it works on my machine problems, it would be best to set up a Docker backed and maybe even a Vagrant backed environments, pre-provisioned with the Toolchain version and all the other tools used when developing Convco.

Design / Proposal

  • create a Dockerfile to be used as a development environment. Make it based on alpine, As it is easier to make statically linked binaries on Alpine and add all the tools that is used when working on Convco's development
  • Visual Studio Code is a very popular code editor. add .devcontainer/devcontainer.json config file so that contributors can use the Dockerized dev environment with Visual Studio Code Remote - Containers to quickly bring up a workspace
  • add .vscode/setting.json, .vscode/extensions.json and .vscode/tasks.json to predefined language server configuration, required extensions, and tasks for developers using VSCode to work on Convco.
  • Gitpod is another popular service, which enables programmers to quickly spin up a work environment, backed by their k8s cluster and start working either right in their browser or, ssh into the created container and use Vim or use the Gitpod container as a backend for Visual Studio Code Remote - SSH extension. this needs :
    • a Docker image, specific to Gitpod, with Dropbear and Chisel installed
    • .gitpod.yml file that uses the Gitpod specific Docker image and also starts up Dropbear and Chisel to enable developers to SSH into the environment for work, in case they do not like to use their browser as a code editor.
@hdevalke
Copy link
Collaborator

I usually like some freedom in how devs like to work. Maybe it is good to add these files to a /contrib folder so people can use them if they want.

@da-moon
Copy link
Contributor Author

da-moon commented Sep 20, 2021

@hdevalke addressed in #29

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants