cloudformation-guard
cloudformation-guard copied to clipboard
[Enhancement] add VSCode devcontainer configuration
Is your feature request related to a problem? Please describe. If someone wants to contribute to this project, they need to go through steps such as installing rust, pulling this repo and building it. Rust versions on each developer's machine may vary. We need a way to generate consistent, reproducible, version controlled and isolated dev environment.
Describe the solution you'd like
Add a /.devcontainer folder with necessary Dockerfile and .devcontainer.json
Describe alternatives you've considered Alternative is installing prerequisites manually in a container.
Additional context devcontainers are a great way to spin up dev environments with just one command. We can even kick off build as soon as the container is ready. VSCode has good rust support via the official extension as well.
More on devcontainers here: https://code.visualstudio.com/docs/remote/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume
If the team can mention specific requirements for the dev environment, I am happy to take a stab at this. Thanks :)
also been looking into https://www.gitpod.io/
Latest rust toolchain should suffice. We specify edition of rust in each package as well as dependencies here: https://github.com/aws-cloudformation/cloudformation-guard/blob/master/cfn-guard/Cargo.toml#L4, so i think as long as rust toolchain is up to date, package should be built the same way across platforms. This https://github.com/microsoft/vscode-remote-try-rust/blob/master/.devcontainer/devcontainer.json might be a good starting point?
Hey @ap00rv
You can switch between different versions of Rust using rustup, more information can be found here and here. That being said we would be thrilled to accept your contribution if you would like to add devcontainer to cfn-guard. Do you need information other that that provided by @jotompki above?
@ap00rv Agree with your idea. We will research internally on how we will implement this. Thank you.