From 823a6cfba59539c5988b12eb1edac86252ff7764 Mon Sep 17 00:00:00 2001 From: Carsten Scharfenberg Date: Mon, 2 Feb 2026 14:35:48 +0000 Subject: [PATCH 1/2] feat: Add initial Dev Container configuration for the Antigravity DooD project, including various development tools, VS Code extensions, and post-create setup. --- .devcontainer/antigravity/devcontainer.json | 119 +++++++++++++++++++ .devcontainer/{ => vscode}/devcontainer.json | 14 +-- 2 files changed, 122 insertions(+), 11 deletions(-) create mode 100644 .devcontainer/antigravity/devcontainer.json rename .devcontainer/{ => vscode}/devcontainer.json (90%) diff --git a/.devcontainer/antigravity/devcontainer.json b/.devcontainer/antigravity/devcontainer.json new file mode 100644 index 00000000..e03656cf --- /dev/null +++ b/.devcontainer/antigravity/devcontainer.json @@ -0,0 +1,119 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/debian +{ + "name": "Debian (Antigravity - DooD)", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/base:bookworm", + "features": { + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}, + "ghcr.io/devcontainers/features/git-lfs:1": { + "autoPull": true, + "installDirectlyFromGitHubRelease": true, + "version": "3.7.1" + }, + "ghcr.io/devcontainers/features/github-cli:1": { + "installDirectlyFromGitHubRelease": true, + "version": "2.82.1" + }, + "ghcr.io/devcontainers/features/python:1": { + "installTools": true, + "version": "3.12.12" + }, + "ghcr.io/eitsupi/devcontainer-features/jq-likes:2": { + "jqVersion": "1.8.1", + "yqVersion": "4.48.1", + "gojqVersion": "none", + "xqVersion": "0.4.1", + "jaqVersion": "none" + }, + "ghcr.io/dhoeric/features/hadolint:1": {}, + "ghcr.io/stuartleeks/dev-container-features/shell-history:0": {}, + "ghcr.io/lentzi90/features/yamlfmt:0": { + "version": "v0.14.0" + }, + "ghcr.io/va-h/devcontainers-features/difftastic:1": { + "version": "0.65.0" + }, + "ghcr.io/va-h/devcontainers-features/uv:1": { + "shellautocompletion": true, + "version": "0.9.5" + }, + "ghcr.io/devcontainers-extra/features/actions-runner:1": { + "version": "latest", + "dotnetVersion": "latest" + }, + "ghcr.io/devcontainers-extra/features/age:1": { + "version": "1.2.1" + }, + "ghcr.io/devcontainers-extra/features/apt-packages:1": { + "clean_ppas": true, + "preserve_apt_list": true, + "packages": "curl,ca-certificates", + "ppas": "ppa:deadsnakes/ppa" + }, + "ghcr.io/devcontainers-extra/features/curl-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/pre-commit:2": { + "version": "4.3.0" + }, + "ghcr.io/devcontainers-extra/features/sops:1": { + "version": "3.11.0" + }, + "ghcr.io/devcontainers-extra/features/starship:1": { + "version": "1.23.0" + }, + "ghcr.io/devcontainers-extra/features/wget-apt-get:1": {}, + "ghcr.io/jungaretti/features/vim:1": {}, + "ghcr.io/schlich/cst-devcontainer-feature/container-structure-test:1": { + "addAlias": true + }, + "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": { + "version": "1.34.1", + "helm": "3.19.0", + "minikube": "1.37.0" + } + }, + + "containerEnv": { + "UV_LINK_MODE": "copy" + }, + + // Configure tool-specific properties. + "customizations": { + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "jeff-hykin.better-dockerfile-syntax", + "ms-azuretools.vscode-docker", + "formulahendry.docker-explorer", + "shipitsmarter.sops-edit", + "davidanson.vscode-markdownlint", + "samuelcolvin.jinjahtml", + "tamasfe.even-better-toml", + "ms-python.python", + "ms-python.vscode-pylance", + "ms-python.debugpy", + "ms-python.autopep8", + "ms-python.vscode-python-envs", + "ms-python.pylint", + "mhutchie.git-graph", + "donjayamanne.githistory", + "codezombiech.gitignore", + "github.copilot", + "github.copilot-chat", + "matangover.mypy", + "charliermarsh.ruff", + "tim-koehler.helm-intellisense", + "vadzimnestsiarenka.helm-template-preview-and-more" + ] + } + }, + + // Load encrypted environment variables automatically (with error tolerance) + "postCreateCommand": { + "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield", + "setup bashrc": "grep -qF 'scripts/load-env.sh' ~/.bashrc || echo 'source ${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" + }, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + "remoteUser": "vscode" +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/vscode/devcontainer.json similarity index 90% rename from .devcontainer/devcontainer.json rename to .devcontainer/vscode/devcontainer.json index 8069bf2a..ddcb2988 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/vscode/devcontainer.json @@ -1,7 +1,7 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/debian { - "name": "Debian", + "name": "Debian (VS Code - DinD)", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile "image": "mcr.microsoft.com/devcontainers/base:bookworm", "features": { @@ -116,16 +116,8 @@ // Load encrypted environment variables automatically (with error tolerance) "postCreateCommand": { - "install ggshield": [ - "bash", - "-c", - "sudo /usr/local/py-utils/bin/pipx install --global ggshield" - ], - "setup bashrc": [ - "bash", - "-c", -"grep -qF 'source /workspaces/m4.2_advanced_middleware_api/scripts/load-env.sh' /home/vscode/.bashrc || echo 'source /workspaces/m4.2_advanced_middleware_api/scripts/load-env.sh' >> /home/vscode/.bashrc" - ] + "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield", + "setup bashrc": "grep -qF 'scripts/load-env.sh' ~/.bashrc || echo 'source ${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" }, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. From 6c3f1d06a4786d963b98b38ad764835dbc3b7037 Mon Sep 17 00:00:00 2001 From: Carsten Scharfenberg Date: Mon, 2 Feb 2026 15:50:11 +0000 Subject: [PATCH 2/2] fix: update devcontainer configurations and uv.lock for correct package names and dependencies --- .devcontainer/antigravity/devcontainer.json | 9 +++++---- .devcontainer/vscode/devcontainer.json | 9 +++++---- uv.lock | 16 +++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.devcontainer/antigravity/devcontainer.json b/.devcontainer/antigravity/devcontainer.json index e03656cf..80881a25 100644 --- a/.devcontainer/antigravity/devcontainer.json +++ b/.devcontainer/antigravity/devcontainer.json @@ -48,8 +48,7 @@ "ghcr.io/devcontainers-extra/features/apt-packages:1": { "clean_ppas": true, "preserve_apt_list": true, - "packages": "curl,ca-certificates", - "ppas": "ppa:deadsnakes/ppa" + "packages": "curl,ca-certificates" }, "ghcr.io/devcontainers-extra/features/curl-apt-get:1": {}, "ghcr.io/devcontainers-extra/features/pre-commit:2": { @@ -110,8 +109,10 @@ // Load encrypted environment variables automatically (with error tolerance) "postCreateCommand": { - "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield", - "setup bashrc": "grep -qF 'scripts/load-env.sh' ~/.bashrc || echo 'source ${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" + "setup bashrc": "grep -qF 'source \\${containerWorkspaceFolder}/scripts/load-env.sh' ~/.bashrc || echo 'source \\${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" + }, + "postStartCommand": { + "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield" }, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. diff --git a/.devcontainer/vscode/devcontainer.json b/.devcontainer/vscode/devcontainer.json index ddcb2988..a0a06049 100644 --- a/.devcontainer/vscode/devcontainer.json +++ b/.devcontainer/vscode/devcontainer.json @@ -54,8 +54,7 @@ "ghcr.io/devcontainers-extra/features/apt-packages:1": { "clean_ppas": true, "preserve_apt_list": true, - "packages": "curl,ca-certificates", - "ppas": "ppa:deadsnakes/ppa" + "packages": "curl,ca-certificates" }, "ghcr.io/devcontainers-extra/features/curl-apt-get:1": {}, "ghcr.io/devcontainers-extra/features/pre-commit:2": { @@ -116,8 +115,10 @@ // Load encrypted environment variables automatically (with error tolerance) "postCreateCommand": { - "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield", - "setup bashrc": "grep -qF 'scripts/load-env.sh' ~/.bashrc || echo 'source ${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" + "setup bashrc": "grep -qF 'source \\${containerWorkspaceFolder}/scripts/load-env.siner h' ~/.bashrc || echo 'source \\${containerWorkspaceFolder}/scripts/load-env.sh' >> ~/.bashrc" + }, + "postStartCommand": { + "install ggshield": "sudo /usr/local/py-utils/bin/pipx install --global ggshield" }, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. diff --git a/uv.lock b/uv.lock index 4c9b568d..85db5bc5 100644 --- a/uv.lock +++ b/uv.lock @@ -8,7 +8,7 @@ resolution-markers = [ [manifest] members = [ - "m4-2-advanced-middleware", + "m4-2-sql-to-arc", "sql-to-arc", ] @@ -37,7 +37,7 @@ wheels = [ [[package]] name = "api-client" version = "0.0.1" -source = { git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fapi_client&branch=feature%2Fsplit_off_client#2028725e3e4c403fe110911df7f0f8bd7b5ee8a4" } +source = { git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fapi_client&branch=main#5e0c476cf66a31aa8c2511081e01d95eb7abbb36" } dependencies = [ { name = "httpx" }, { name = "pydantic" }, @@ -465,8 +465,8 @@ wheels = [ ] [[package]] -name = "m4-2-advanced-middleware" -version = "6.0.0" +name = "m4-2-sql-to-arc" +version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "sql-to-arc" }, @@ -1133,7 +1133,7 @@ wheels = [ [[package]] name = "shared" version = "0.0.1" -source = { git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fshared&branch=feature%2Fsplit_off_client#2028725e3e4c403fe110911df7f0f8bd7b5ee8a4" } +source = { git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fshared&branch=main#5e0c476cf66a31aa8c2511081e01d95eb7abbb36" } dependencies = [ { name = "opentelemetry-api" }, { name = "opentelemetry-exporter-otlp" }, @@ -1150,7 +1150,6 @@ dependencies = [ { name = "api-client" }, { name = "arctrl" }, { name = "opentelemetry-api" }, - { name = "opentelemetry-sdk" }, { name = "psycopg", extra = ["binary"] }, { name = "pydantic" }, { name = "shared" }, @@ -1158,13 +1157,12 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "api-client", git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fapi_client&branch=feature%2Fsplit_off_client" }, + { name = "api-client", git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fapi_client&branch=main" }, { name = "arctrl", specifier = ">=3.0.0b15" }, { name = "opentelemetry-api", specifier = ">=1.39.1" }, - { name = "opentelemetry-sdk", specifier = ">=1.39.1" }, { name = "psycopg", extras = ["binary"], specifier = ">=3.3.2" }, { name = "pydantic", specifier = ">=2.12.5" }, - { name = "shared", git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fshared&branch=feature%2Fsplit_off_client" }, + { name = "shared", git = "https://github.com/fairagro/m4.2_advanced_middleware_api.git?subdirectory=middleware%2Fshared&branch=main" }, ] [[package]]