diff --git a/.github/actions/setup-compose/action.yml b/.github/actions/setup-compose/action.yml new file mode 100644 index 00000000..6b5c7f3f --- /dev/null +++ b/.github/actions/setup-compose/action.yml @@ -0,0 +1,16 @@ +name: Set up Compose build workaround +description: Disable Bake filesystem entitlement checks for Compose 2.38.x and 5.6.x patch releases. + +runs: + using: composite + steps: + - name: Check Compose version + shell: bash + run: | + version=$(docker compose version --short) + echo "Compose version: $version" + # Temporary workaround for https://github.com/devcontainers/cli/issues/1320. + if [[ "${version#v}" =~ ^(2\.38|5\.6)\.[0-9]+$ ]]; then + echo "::warning::Disabling Bake filesystem and default SSH-agent consent checks for Compose $version." + echo "BUILDX_BAKE_ENTITLEMENTS_FS=0" >> "$GITHUB_ENV" + fi diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml index 8bcf0f52..c5c0a6d6 100644 --- a/.github/workflows/test-pr.yaml +++ b/.github/workflows/test-pr.yaml @@ -99,6 +99,8 @@ jobs: fi fi + - uses: ./.github/actions/setup-compose + - name: Run Smoke Test run: | template_id="${{ matrix.templates }}" diff --git a/src/cpp-mariadb/devcontainer-template.json b/src/cpp-mariadb/devcontainer-template.json index 08c008ff..e5805d76 100644 --- a/src/cpp-mariadb/devcontainer-template.json +++ b/src/cpp-mariadb/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "cpp-mariadb", - "version": "4.1.0", + "version": "4.1.1", "name": "C++ & MariaDB", "description": "Develop C++ applications on Linux. Includes Debian C++ build tools.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/cpp-mariadb", @@ -9,10 +9,11 @@ "options": { "imageVariant": { "type": "string", - "description": "Debian / Ubuntu version (use Debian 13, Debian 12, Ubuntu 24.04, and Ubuntu 22.04 on local arm64/Apple Silicon):", + "description": "Debian / Ubuntu version (use Debian 13, Debian 12, Ubuntu 26.04, Ubuntu 24.04, and Ubuntu 22.04 on local arm64/Apple Silicon):", "proposals": [ "debian13", "debian12", + "ubuntu26.04", "ubuntu24.04", "ubuntu22.04" ], diff --git a/src/cpp/devcontainer-template.json b/src/cpp/devcontainer-template.json index f6df6632..b10dc3a6 100644 --- a/src/cpp/devcontainer-template.json +++ b/src/cpp/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "cpp", - "version": "4.1.1", + "version": "4.1.2", "name": "C++", "description": "Develop C++ applications on Linux. Includes Debian C++ build tools.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/cpp", @@ -9,10 +9,11 @@ "options": { "imageVariant": { "type": "string", - "description": "Debian / Ubuntu version (use debian13, debian12, ubuntu24.04, and ubuntu22.04 on local arm64/Apple Silicon):", + "description": "Debian / Ubuntu version (use debian13, debian12, ubuntu26.04, ubuntu24.04, and ubuntu22.04 on local arm64/Apple Silicon):", "proposals": [ "debian13", "debian12", + "ubuntu26.04", "ubuntu24.04", "ubuntu22.04" ], diff --git a/src/javascript-node-mongo/devcontainer-template.json b/src/javascript-node-mongo/devcontainer-template.json index 498dfa25..e055b609 100644 --- a/src/javascript-node-mongo/devcontainer-template.json +++ b/src/javascript-node-mongo/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "javascript-node-mongo", - "version": "6.0.2", + "version": "6.0.3", "name": "Node.js & Mongo DB", "description": "Develop applications in Node.js and Mongo DB. Includes Node.js, eslint, and yarn in a container linked to a Mongo DB.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/javascript-node-mongo", @@ -11,10 +11,11 @@ "type": "string", "description": "Node.js version (use -bookworm variants on local arm64/Apple Silicon):", "proposals": [ + "26-bookworm", "24-bookworm", "22-bookworm" ], - "default": "24-bookworm" + "default": "26-bookworm" } }, "platforms": [ diff --git a/src/javascript-node-postgres/devcontainer-template.json b/src/javascript-node-postgres/devcontainer-template.json index 51f12df0..0e235dba 100644 --- a/src/javascript-node-postgres/devcontainer-template.json +++ b/src/javascript-node-postgres/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "javascript-node-postgres", - "version": "6.0.2", + "version": "6.0.3", "name": "Node.js & PostgreSQL", "description": "Develop applications in Node.js and PostgreSQL. Includes Node.js, eslint, and yarn in a container linked to a Postgres DB container", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/javascript-node-postgres", @@ -11,12 +11,14 @@ "type": "string", "description": "Node.js version (use -trixie or -bookworm variants on local arm64/Apple Silicon):", "proposals": [ + "26-trixie", "24-trixie", "22-trixie", + "26-bookworm", "24-bookworm", "22-bookworm" ], - "default": "24-trixie" + "default": "26-trixie" } }, "platforms": [ diff --git a/src/javascript-node/devcontainer-template.json b/src/javascript-node/devcontainer-template.json index 2992a82f..5c67786a 100644 --- a/src/javascript-node/devcontainer-template.json +++ b/src/javascript-node/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "javascript-node", - "version": "6.0.2", + "version": "6.0.3", "name": "Node.js & JavaScript", "description": "Develop Node.js based applications. Includes Node.js, eslint, nvm, and yarn.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/javascript-node", @@ -11,12 +11,14 @@ "type": "string", "description": "Node.js version (use -trixie or -bookworm variants on local arm64/Apple Silicon):", "proposals": [ + "26-trixie", "24-trixie", "22-trixie", + "26-bookworm", "24-bookworm", "22-bookworm" ], - "default": "24-trixie" + "default": "26-trixie" } }, "platforms": [ diff --git a/src/postgres/devcontainer-template.json b/src/postgres/devcontainer-template.json index 4146d42b..f0912cdc 100644 --- a/src/postgres/devcontainer-template.json +++ b/src/postgres/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "postgres", - "version": "3.0.1", + "version": "3.0.2", "name": "Python 3 & PostgreSQL", "description": "Develop applications with Python 3 and PostgreSQL. Includes a Python application container and PostgreSQL server.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/postgres", @@ -11,18 +11,20 @@ "type": "string", "description": "Python version (use -trixie or -bookworm variants on local arm64/Apple Silicon):", "proposals": [ + "3.15-trixie", "3.14-trixie", "3.13-trixie", "3.12-trixie", "3.11-trixie", "3.10-trixie", + "3.15-bookworm", "3.14-bookworm", "3.13-bookworm", "3.12-bookworm", "3.11-bookworm", "3.10-bookworm" ], - "default": "3.14-trixie" + "default": "3.15-trixie" } }, "platforms": ["Python"], diff --git a/src/python/devcontainer-template.json b/src/python/devcontainer-template.json index 7495b03f..fc264137 100644 --- a/src/python/devcontainer-template.json +++ b/src/python/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "python", - "version": "6.0.0", + "version": "6.0.1", "name": "Python 3", "description": "Develop Python 3 applications.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/python", @@ -12,19 +12,21 @@ "description": "Python version (use -trixie, or -bookworm variants on local arm64/Apple Silicon):", "proposals": [ "3-trixie", + "3.15-trixie", "3.14-trixie", "3.13-trixie", "3.12-trixie", "3.11-trixie", "3.10-trixie", "3-bookworm", + "3.15-bookworm", "3.14-bookworm", "3.13-bookworm", "3.12-bookworm", "3.11-bookworm", "3.10-bookworm" ], - "default": "3.14-trixie" + "default": "3.15-trixie" } }, "platforms": ["Python"], diff --git a/src/typescript-node/devcontainer-template.json b/src/typescript-node/devcontainer-template.json index 9d21f3a6..c053a722 100644 --- a/src/typescript-node/devcontainer-template.json +++ b/src/typescript-node/devcontainer-template.json @@ -1,6 +1,6 @@ { "id": "typescript-node", - "version": "6.0.2", + "version": "6.0.3", "name": "Node.js & TypeScript", "description": "Develop Node.js based applications in TypeScript. Includes Node.js, eslint, nvm, yarn, and the TypeScript compiler.", "documentationURL": "https://github.com/devcontainers/templates/tree/main/src/typescript-node", @@ -11,12 +11,14 @@ "type": "string", "description": "Node.js version (use -trixie or -bookworm variants on local arm64/Apple Silicon):", "proposals": [ + "26-trixie", "24-trixie", "22-trixie", + "26-bookworm", "24-bookworm", "22-bookworm" ], - "default": "24-trixie" + "default": "26-trixie" } }, "platforms": [ diff --git a/test/javascript-node-mongo/test.sh b/test/javascript-node-mongo/test.sh index 2b43b482..6ad25cdb 100755 --- a/test/javascript-node-mongo/test.sh +++ b/test/javascript-node-mongo/test.sh @@ -3,6 +3,9 @@ cd $(dirname "$0") source test-utils.sh node +check "corepack_setup" bash -c 'sudo npm install --global --force corepack@0.36.0 && corepack_path=$(command -v corepack) && sudo env "PATH=$PATH" "$corepack_path" enable && "$corepack_path" prepare yarn@4.9.4 --activate' +check "yarn_version_new" yarn --version + # Remote - Containers does not auto-sync UID/GID for Docker Compose, # so make sure test project prvs match the non-root user in the container. fixTestProjectFolderPrivs @@ -14,6 +17,7 @@ checkCommon checkExtension "dbaeumer.vscode-eslint" check "node" node --version sudo rm -f yarn.lock +touch yarn.lock check "yarn" yarn install sudo rm -f package-lock.json check "npm" npm install diff --git a/test/javascript-node-postgres/test.sh b/test/javascript-node-postgres/test.sh index 2b43b482..6ad25cdb 100755 --- a/test/javascript-node-postgres/test.sh +++ b/test/javascript-node-postgres/test.sh @@ -3,6 +3,9 @@ cd $(dirname "$0") source test-utils.sh node +check "corepack_setup" bash -c 'sudo npm install --global --force corepack@0.36.0 && corepack_path=$(command -v corepack) && sudo env "PATH=$PATH" "$corepack_path" enable && "$corepack_path" prepare yarn@4.9.4 --activate' +check "yarn_version_new" yarn --version + # Remote - Containers does not auto-sync UID/GID for Docker Compose, # so make sure test project prvs match the non-root user in the container. fixTestProjectFolderPrivs @@ -14,6 +17,7 @@ checkCommon checkExtension "dbaeumer.vscode-eslint" check "node" node --version sudo rm -f yarn.lock +touch yarn.lock check "yarn" yarn install sudo rm -f package-lock.json check "npm" npm install diff --git a/test/javascript-node/test.sh b/test/javascript-node/test.sh index 875cb87f..7da9f63b 100755 --- a/test/javascript-node/test.sh +++ b/test/javascript-node/test.sh @@ -3,6 +3,9 @@ cd $(dirname "$0") source test-utils.sh node +check "corepack_setup" bash -c 'sudo npm install --global --force corepack@0.36.0 && corepack_path=$(command -v corepack) && sudo env "PATH=$PATH" "$corepack_path" enable && "$corepack_path" prepare yarn@4.9.4 --activate' +check "yarn_version_new" yarn --version + # Run common tests checkCommon @@ -10,6 +13,7 @@ checkCommon checkExtension "dbaeumer.vscode-eslint" check "node" node --version sudo rm -f yarn.lock +touch yarn.lock check "yarn" yarn install sudo rm -f package-lock.json check "npm" npm install diff --git a/test/typescript-node/test.sh b/test/typescript-node/test.sh index c438519e..59166ded 100755 --- a/test/typescript-node/test.sh +++ b/test/typescript-node/test.sh @@ -3,6 +3,10 @@ cd $(dirname "$0") source test-utils.sh node +check "corepack_setup" bash -c 'sudo npm install --global --force corepack@0.36.0 && corepack_path=$(command -v corepack) && sudo env "PATH=$PATH" "$corepack_path" enable && "$corepack_path" prepare yarn@4.9.4 --activate' +export YARN_NODE_LINKER=node-modules +check "yarn_version_new" yarn --version + # Run common tests checkCommon @@ -10,6 +14,7 @@ checkCommon checkExtension "dbaeumer.vscode-eslint" check "node" node --version sudo rm -f yarn.lock +touch yarn.lock check "yarn" yarn install sudo rm -f package-lock.json check "eslint" eslint --no-warn-ignored src/server.ts