falconry / falcon

The no-magic web data plane API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
https://falcon.readthedocs.io/en/stable/
Apache License 2.0
9.51k stars 937 forks source link

chore: add VS Code dev container #2132

Closed mihaitodor closed 1 year ago

mihaitodor commented 1 year ago

Summary of Changes

This adds the required config for VS Code Dev Container support. With this change, opening the repo in VS Code will prompt you to reload the editor and, assuming you have Docker up and running, it will pull the required Docker image and start it. Expect it to download a 1.4GB image. Once the container is running, it will install a bunch of dependencies, including tox. It will show you the log as it progresses, but, at the end of the process, VS Code will run in this container in headless mode and you can open a separate terminal in which you can run the tox command which should complete successfully.

I haven't spotted any specific section related to the code editor in the Readme / Contributing docs, so not sure if you'd like to have a paragraph about this feature, or at least mention somewhere that people will want to use VS Code if they wish to leverage this Dev Container setup for their work / tests.

Related Issues

Fixes #1979.

Pull Request Checklist

This is just a reminder about the most common mistakes. Please make sure that you tick all appropriate boxes. But please read our contribution guide at least once; it will save you a few review cycles!

If an item doesn't apply to your pull request, check it anyway to make it apparent that there's nothing to do.

If you have any questions to any of the points above, just submit and ask! This checklist is here to help you, not to deter you from contributing!

PR template inspired by the attrs project.

codecov[bot] commented 1 year ago

Codecov Report

Merging #2132 (c9933a3) into master (e00f5cd) will not change coverage. The diff coverage is n/a.

@@            Coverage Diff            @@
##            master     #2132   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           55        55           
  Lines         5553      5553           
  Branches       880       880           
=========================================
  Hits          5553      5553           

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

CaselIT commented 1 year ago

I've tried using podman on wsl fedora and everything seems to work but I've had to uncomment "remoteUser": "root" or is was failing to copy some stuff when initializing the container.

This is probably a potman thing only since I think it will not run containers as root contrary to docker.

I think we could keep as is. @vytas7 thoughts?

mihaitodor commented 1 year ago

@CaselIT Thanks for testing! I added some documentation as requested. If you think it's too detailed / wordy, I'm happy to adjust it.

vytas7 commented 1 year ago

(It seems that flake8-import-order has now been updated with support for the newest flake8, rerunning the CI.)

mihaitodor commented 1 year ago

Yeah, they'll be asked when they open the project in VS Code if they want to reopen it in a Dev Container, but they can just click no.

vytas7 commented 1 year ago

Aha, OK, I didn't know that VSCode would ask that question automatically. But let's give it a try, we can always disable this if we get more negative than positive feedback.

CaselIT commented 1 year ago

It's just a notification, you can just ignore it too, so it should be fine

vytas7 commented 1 year ago

I see; I've just tested it myself for the heck of it, and it should be fine :100: Let's see if anyone complains :smiling_imp: