chore(devcontainer): update extensions and add Rust feature

- Added ghcr.io/devcontainers/features/rust:1 (minimal profile)
- Reorganized extension IDs into categories (Python, GitHub, Tools)
- Sorted extensions alphabetically within categories

Impact: DevContainer now includes Rust toolchain for building git-cliff
(release notes backend). No user-visible changes.
This commit is contained in:
Julian Pawlowski 2025-11-09 14:24:55 +00:00
parent f4568be34e
commit 8880df1bee
2 changed files with 102 additions and 95 deletions

View file

@ -3,4 +3,4 @@
"unwantedRecommendations": [ "unwantedRecommendations": [
"ms-python.pylint" "ms-python.pylint"
] ]
} }

View file

@ -1,98 +1,105 @@
{ {
"name": "jpawlowski/hass.tibber_prices", "name": "jpawlowski/hass.tibber_prices",
"image": "mcr.microsoft.com/devcontainers/python:3.13", "image": "mcr.microsoft.com/devcontainers/python:3.13",
"postCreateCommand": "scripts/setup", "postCreateCommand": "scripts/setup",
"postStartCommand": "scripts/motd", "postStartCommand": "scripts/motd",
"containerEnv": { "containerEnv": {
"PYTHONASYNCIODEBUG": "1" "PYTHONASYNCIODEBUG": "1"
}, },
"forwardPorts": [ "forwardPorts": [
8123 8123
], ],
"portsAttributes": { "portsAttributes": {
"8123": { "8123": {
"label": "Home Assistant", "label": "Home Assistant",
"onAutoForward": "notify" "onAutoForward": "notify"
} }
}, },
"customizations": { "customizations": {
"vscode": { "vscode": {
"extensions": [ "extensions": [
"charliermarsh.ruff", "charliermarsh.ruff",
"EditorConfig.EditorConfig", "EditorConfig.EditorConfig",
"esbenp.prettier-vscode", "esbenp.prettier-vscode",
"github.copilot", "github.copilot",
"github.vscode-pull-request-github", "github.vscode-pull-request-github",
"ms-python.python", "ms-python.python",
"ms-python.vscode-pylance", "ms-python.vscode-pylance",
"ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-containers",
"redhat.vscode-yaml", "redhat.vscode-yaml",
"ryanluker.vscode-coverage-gutters", "ryanluker.vscode-coverage-gutters",
"visualstudioexptteam.vscodeintellicode" "visualstudioexptteam.vscodeintellicode"
], ],
"settings": { "settings": {
"editor.tabSize": 4, "editor.tabSize": 4,
"editor.formatOnPaste": true, "editor.formatOnPaste": true,
"editor.formatOnSave": true, "editor.formatOnSave": true,
"editor.formatOnType": false, "editor.formatOnType": false,
"extensions.ignoreRecommendations": false, "extensions.ignoreRecommendations": false,
"files.eol": "\n", "files.eol": "\n",
"files.trimTrailingWhitespace": true, "files.trimTrailingWhitespace": true,
"python.analysis.typeCheckingMode": "basic", "python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true, "python.analysis.autoImportCompletions": true,
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python", "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.analysis.extraPaths": [ "python.analysis.extraPaths": [
"${workspaceFolder}/.venv/lib/python3.13/site-packages" "${workspaceFolder}/.venv/lib/python3.13/site-packages"
], ],
"python.terminal.activateEnvironment": true, "python.terminal.activateEnvironment": true,
"python.linting.enabled": true, "python.linting.enabled": true,
"python.linting.ruffEnabled": true, "python.linting.ruffEnabled": true,
"python.terminal.activateEnvInCurrentTerminal": true, "python.terminal.activateEnvInCurrentTerminal": true,
"python.testing.pytestArgs": [ "python.testing.pytestArgs": [
"--no-cov" "--no-cov"
], ],
"[python]": { "[python]": {
"editor.defaultFormatter": "charliermarsh.ruff", "editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true, "editor.formatOnSave": true,
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll": "explicit", "source.fixAll": "explicit",
"source.fixAll.ruff": "explicit" "source.fixAll.ruff": "explicit"
} }
},
"yaml.customTags": [
"!input scalar",
"!secret scalar",
"!include_dir_named scalar",
"!include_dir_list scalar",
"!include_dir_merge_list scalar",
"!include_dir_merge_named scalar"
],
"json.schemas": [
{
"fileMatch": [
"homeassistant/components/*/manifest.json"
],
"url": "${containerWorkspaceFolder}/scripts/json_schemas/manifest_schema.json"
},
{
"fileMatch": [
"homeassistant/components/*/translations/*.json"
],
"url": "${containerWorkspaceFolder}/scripts/json_schemas/translation_schema.json"
}
]
}
}
},
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/node:1": {
"version": "22"
}, },
"yaml.customTags": [ "ghcr.io/devcontainers/features/rust:1": {
"!input scalar", "version": "latest",
"!secret scalar", "profile": "minimal"
"!include_dir_named scalar", },
"!include_dir_list scalar", "ghcr.io/devcontainers-extra/features/apt-packages:1": {
"!include_dir_merge_list scalar", "packages": [
"!include_dir_merge_named scalar" "ffmpeg",
], "libturbojpeg0",
"json.schemas": [ "libpcap-dev"
{ ]
"fileMatch": [ }
"homeassistant/components/*/manifest.json"
],
"url": "${containerWorkspaceFolder}/scripts/json_schemas/manifest_schema.json"
},
{
"fileMatch": [
"homeassistant/components/*/translations/*.json"
],
"url": "${containerWorkspaceFolder}/scripts/json_schemas/translation_schema.json"
}
]
}
} }
},
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-extra/features/apt-packages:1": {
"packages": [
"ffmpeg",
"libturbojpeg0",
"libpcap-dev"
]
}
}
} }