From 3ef402ef0eb02b064281a22eb1d7a825825013f5 Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Tue, 31 Jan 2023 00:52:00 +0000 Subject: [PATCH 1/3] Add a devcontainer for Bikeshed development. --- .devcontainer/devcontainer.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..e0b170d6c4 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,23 @@ +// 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": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} From 10dd6204caf5c6491c92b7609d4cb50542120af9 Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Tue, 31 Jan 2023 01:15:11 +0000 Subject: [PATCH 2/3] Add some VSCode extensions to the devcontainer. --- .devcontainer/devcontainer.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e0b170d6c4..b3df59f169 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -13,10 +13,20 @@ // See https://containers.dev/implementors/json_reference/#lifecycle-scripts. "updateContentCommand": "pip3 install --user -r requirements-dev.txt", - "postStartCommand": "bikeshed update" - + "postStartCommand": "bikeshed update", // Configure tool-specific properties. - // "customizations": {}, + "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" From 1f9f06591ed829602e9c6fda1627ef412eab5bfe Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Tue, 31 Jan 2023 01:30:37 +0000 Subject: [PATCH 3/3] Mention the devcontainer in CONTRIBUTING. --- CONTRIBUTING.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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.