diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..b3df59f169 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/python +{ + "name": "Bikeshed", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/python:3", + + // Features to add to the dev container. More info: https://containers.dev/features. + "features": {"ghcr.io/devcontainers/features/github-cli:1": {}}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // See https://containers.dev/implementors/json_reference/#lifecycle-scripts. + "updateContentCommand": "pip3 install --user -r requirements-dev.txt", + "postStartCommand": "bikeshed update", + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "eamodio.gitlens", + "GitHub.vscode-pull-request-github", + "matangover.mypy", + "ms-python.black-formatter", + "ms-python.flake8", + "ms-python.pylint" + ] + } + } + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c9df79a37b..6533339b50 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,6 +16,10 @@ I find it simple to use, and it's what I use to develop Bikeshed, so it has a high chance of working correctly.) +If you use Visual Studio Code, +you can [open a Bikeshed development environment +in a local container](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/speced/bikeshed). + See [my blog post on cleanly handling a fork](https://www.xanthir.com/b4hf0) for guidance on how to fork responsibly when you're making small changes to an active project; @@ -89,4 +93,4 @@ and keep `requirements.txt` in sync with the lockfile. Whenever new packages are installed or updated, run `pipenv lock` (to generate a `Pipfile.lock`) and `pipenv lock -r` (to generate a `requirements.txt`) -and commit those alongside the new code that requires it. \ No newline at end of file +and commit those alongside the new code that requires it.