From 87d7d22bedca9bf87ab97890421c6675eb8b0b86 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Tue, 27 May 2025 11:48:56 +0000 Subject: [PATCH 1/3] Ubuntu focal(20.04) EOL changes in features test scripts --- src/git/install.sh | 6 ++++ test/_global/scenarios.json | 4 +-- .../devcontainer-custom-home/Dockerfile | 2 +- .../common-utils/devcontainer-info/Dockerfile | 8 ++++- test/common-utils/noble.sh | 15 ++++++++ test/common-utils/scenarios.json | 17 +++------- test/conda/scenarios.json | 2 +- .../docker_specific_moby_buildx.sh | 2 +- test/docker-in-docker/scenarios.json | 16 ++++----- .../docker_specific_moby_buildx.sh | 2 +- test/docker-outside-of-docker/scenarios.json | 34 +++++++++---------- .../install_dotnet_multiple_versions.sh | 18 ---------- .../dotnet/install_dotnet_specific_release.sh | 6 ++-- ...otnet_specific_release_and_feature_band.sh | 6 ++-- test/dotnet/scenarios.json | 13 +++---- test/git/install_git_from_ppa_jammy.sh | 17 ++++++++++ test/git/install_git_from_src_noble.sh | 18 ++++++++++ test/git/scenarios.json | 19 +++-------- test/github-cli/scenarios.json | 2 +- test/java/scenarios.json | 16 ++++----- test/php/install_additional_php.sh | 6 ++-- test/php/scenarios.json | 12 +++---- test/python/scenarios.json | 12 +++---- test/ruby/scenarios.json | 2 +- test/rust/scenarios.json | 4 +-- 25 files changed, 142 insertions(+), 117 deletions(-) create mode 100644 test/common-utils/noble.sh create mode 100644 test/git/install_git_from_ppa_jammy.sh create mode 100644 test/git/install_git_from_src_noble.sh diff --git a/src/git/install.sh b/src/git/install.sh index 976eb348d..862acef2d 100755 --- a/src/git/install.sh +++ b/src/git/install.sh @@ -270,6 +270,12 @@ elif [ "${ADJUSTED_ID}" = "rhel" ]; then if ! type curl > /dev/null 2>&1; then check_packages curl fi + if ! type cmp > /dev/null 2>&1; then + check_packages diffutils + fi + if ! type awk > /dev/null 2>&1; then + check_packages gawk + fi if [ $ID = "mariner" ]; then check_packages glibc-devel kernel-headers binutils fi diff --git a/test/_global/scenarios.json b/test/_global/scenarios.json index 2228c7d6e..184f8e87b 100644 --- a/test/_global/scenarios.json +++ b/test/_global/scenarios.json @@ -1,6 +1,6 @@ { "all_the_clis": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "aws-cli": {}, "azure-cli": {}, @@ -8,7 +8,7 @@ } }, "node_java_rust": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "node": {}, "java": {}, diff --git a/test/common-utils/devcontainer-custom-home/Dockerfile b/test/common-utils/devcontainer-custom-home/Dockerfile index a94af4bc1..824e1e343 100644 --- a/test/common-utils/devcontainer-custom-home/Dockerfile +++ b/test/common-utils/devcontainer-custom-home/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:focal +FROM ubuntu:noble RUN groupadd customUser -g 30000 && \ useradd customUser -u 30000 -g 30000 --create-home --home-dir /customHome diff --git a/test/common-utils/devcontainer-info/Dockerfile b/test/common-utils/devcontainer-info/Dockerfile index 28247d907..07d7a1caf 100644 --- a/test/common-utils/devcontainer-info/Dockerfile +++ b/test/common-utils/devcontainer-info/Dockerfile @@ -1,3 +1,9 @@ -FROM ubuntu:focal +FROM ubuntu:noble COPY meta.env /usr/local/etc/dev-containers/meta.env + +RUN if id "ubuntu" &>/dev/null; then \ + echo "Deleting user 'ubuntu' for noble" && userdel -f -r ubuntu || echo "Failed to delete ubuntu user for noble"; \ + else \ + echo "User 'ubuntu' does not exist for noble"; \ + fi diff --git a/test/common-utils/noble.sh b/test/common-utils/noble.sh new file mode 100644 index 000000000..78ad146e3 --- /dev/null +++ b/test/common-utils/noble.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +. /etc/os-release +check "non-root user" test "$(whoami)" = "devcontainer" +check "distro" test "${VERSION_CODENAME}" = "noble" + +# Report result +reportResults + diff --git a/test/common-utils/scenarios.json b/test/common-utils/scenarios.json index 4ffbde1ac..5a8ec87cd 100644 --- a/test/common-utils/scenarios.json +++ b/test/common-utils/scenarios.json @@ -1,25 +1,18 @@ { - "bionic": { - "image": "ubuntu:bionic", - "remoteUser": "devcontainer", - "features": { - "common-utils": {} - } - }, - "focal": { - "image": "ubuntu:focal", + "jammy": { + "image": "ubuntu:jammy", "remoteUser": "devcontainer", "features": { "common-utils": {} } }, - "jammy": { - "image": "ubuntu:jammy", + "noble": { + "image": "ubuntu:noble", "remoteUser": "devcontainer", "features": { "common-utils": {} } - }, + }, "buster": { "image": "debian:buster", "remoteUser": "devcontainer", diff --git a/test/conda/scenarios.json b/test/conda/scenarios.json index 9cc2fc136..ef930a17c 100644 --- a/test/conda/scenarios.json +++ b/test/conda/scenarios.json @@ -1,6 +1,6 @@ { "install_conda": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "conda": { "version": "4.12.0", diff --git a/test/docker-in-docker/docker_specific_moby_buildx.sh b/test/docker-in-docker/docker_specific_moby_buildx.sh index 1ca2b20bd..b2d4610a1 100755 --- a/test/docker-in-docker/docker_specific_moby_buildx.sh +++ b/test/docker-in-docker/docker_specific_moby_buildx.sh @@ -5,7 +5,7 @@ set -e # Optional: Import test library source dev-container-features-test-lib # Definition specific tests -check "moby-buildx" bash -c "dpkg-query -W moby-buildx | grep -E '0.12.0'" +check "moby-buildx" bash -c "dpkg-query -W moby-buildx | grep -E '0.14.0'" check "docker-buildx" bash -c "docker buildx version" check "docker-buildx-path" bash -c "ls -la /usr/libexec/docker/cli-plugins/docker-buildx" diff --git a/test/docker-in-docker/scenarios.json b/test/docker-in-docker/scenarios.json index 57681b799..1587bda56 100644 --- a/test/docker-in-docker/scenarios.json +++ b/test/docker-in-docker/scenarios.json @@ -1,6 +1,6 @@ { "docker_build_fallback_compose": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-in-docker": { "version": "latest", @@ -9,7 +9,7 @@ } }, "dockerIp6tablesDisabledTest": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-in-docker": { "version": "27.0.3", @@ -56,7 +56,7 @@ "remoteUser": "node" }, "docker_build_2": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-in-docker": { "version": "latest", @@ -106,7 +106,7 @@ } }, "docker_compose_v1": { - "image": "mcr.microsoft.com/devcontainers/base:focal", + "image": "mcr.microsoft.com/devcontainers/base:noble", "features": { "docker-in-docker": { "moby": true, @@ -116,7 +116,7 @@ } }, "docker_compose_v2": { - "image": "mcr.microsoft.com/devcontainers/base:focal", + "image": "mcr.microsoft.com/devcontainers/base:noble", "features": { "docker-in-docker": { "moby": true, @@ -126,7 +126,7 @@ } }, "docker_build_fallback_buildx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-in-docker": { "version": "latest", @@ -135,10 +135,10 @@ } }, "docker_specific_moby_buildx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-in-docker": { - "mobyBuildxVersion": "0.12.0" + "mobyBuildxVersion": "0.14.0" } } }, diff --git a/test/docker-outside-of-docker/docker_specific_moby_buildx.sh b/test/docker-outside-of-docker/docker_specific_moby_buildx.sh index 929fa6080..8428170e9 100755 --- a/test/docker-outside-of-docker/docker_specific_moby_buildx.sh +++ b/test/docker-outside-of-docker/docker_specific_moby_buildx.sh @@ -5,7 +5,7 @@ set -e # Optional: Import test library source dev-container-features-test-lib # Definition specific tests -check "moby-buildx" bash -c "dpkg-query -W moby-buildx | grep -E '0.12.0'" +check "moby-buildx" bash -c "dpkg-query -W moby-buildx | grep -E '0.14.0'" check "docker-buildx" bash -c "docker buildx version" check "docker-buildx-path" bash -c "ls -la /usr/libexec/docker/cli-plugins/docker-buildx" diff --git a/test/docker-outside-of-docker/scenarios.json b/test/docker-outside-of-docker/scenarios.json index 7d3301f12..7125b4715 100644 --- a/test/docker-outside-of-docker/scenarios.json +++ b/test/docker-outside-of-docker/scenarios.json @@ -1,6 +1,6 @@ { "docker_build_compose_fallback": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": false, @@ -10,7 +10,7 @@ "containerUser": "vscode" }, "docker_init_moby": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": true @@ -19,7 +19,7 @@ "containerUser": "vscode" }, "docker_init": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": false @@ -46,7 +46,7 @@ "containerUser": "vscode" }, "docker_build": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": false, @@ -56,7 +56,7 @@ "containerUser": "vscode" }, "docker_build_moby": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": true @@ -65,10 +65,10 @@ "containerUser": "vscode" }, "docker_build_no_buildx": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { - "version": "20", + "version": "26", "moby": false, "installDockerBuildx": false } @@ -76,10 +76,10 @@ "containerUser": "vscode" }, "docker_build_no_buildx_moby": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { - "version": "20", + "version": "26", "moby": true, "installDockerBuildx": false } @@ -87,7 +87,7 @@ "containerUser": "vscode" }, "docker_dash_compose_v1": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": false, @@ -97,7 +97,7 @@ "containerUser": "vscode" }, "docker_dash_compose_v1_moby": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": true, @@ -107,7 +107,7 @@ "containerUser": "vscode" }, "docker_dash_compose_v2": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": false, @@ -117,7 +117,7 @@ "containerUser": "vscode" }, "docker_dash_compose_v2_moby": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "moby": true, @@ -136,10 +136,10 @@ "remoteUser": "node" }, "docker_specific_moby_buildx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "docker-outside-of-docker": { - "mobyBuildxVersion": "0.12.0" + "mobyBuildxVersion": "0.14.0" } } }, @@ -154,7 +154,7 @@ } }, "docker_not_install_compose_switch": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "dockerDashComposeVersion": "latest", @@ -164,7 +164,7 @@ "containerUser": "vscode" }, "docker_install_compose_switch": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "features": { "docker-outside-of-docker": { "dockerDashComposeVersion": "latest", diff --git a/test/dotnet/install_dotnet_multiple_versions.sh b/test/dotnet/install_dotnet_multiple_versions.sh index 87bf8caf4..3708943f6 100644 --- a/test/dotnet/install_dotnet_multiple_versions.sh +++ b/test/dotnet/install_dotnet_multiple_versions.sh @@ -22,15 +22,6 @@ is_dotnet_sdk_version_installed "8.0" check ".NET SDK 7.0 installed" \ is_dotnet_sdk_version_installed "7.0" -check ".NET SDK 6.0 installed" \ -is_dotnet_sdk_version_installed "6.0" - -check ".NET SDK 5.0 installed" \ -is_dotnet_sdk_version_installed "5.0" - -check ".NET Core SDK 3.1 installed" \ -is_dotnet_sdk_version_installed "3.1" - check "Build example class library" \ dotnet build projects/multitargeting @@ -43,15 +34,6 @@ dotnet run --project projects/net8.0 check "Build and run .NET 7.0 project" \ dotnet run --project projects/net7.0 -check "Build and run .NET 6.0 project" \ -dotnet run --project projects/net6.0 - -check "Build and run .NET 5.0 project" \ -dotnet run --project projects/net5.0 - -check "Build and run .NET Core 3.1 project" \ -dotnet run --project projects/netcoreapp3.1 - # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. reportResults \ No newline at end of file diff --git a/test/dotnet/install_dotnet_specific_release.sh b/test/dotnet/install_dotnet_specific_release.sh index 207e58280..0d01bb4da 100644 --- a/test/dotnet/install_dotnet_specific_release.sh +++ b/test/dotnet/install_dotnet_specific_release.sh @@ -13,13 +13,13 @@ source dev-container-features-test-lib source dotnet_env.sh source dotnet_helpers.sh -expected=$(fetch_latest_version_in_channel "3.1") +expected=$(fetch_latest_version_in_channel "8.0") -check ".NET Core SDK 3.1 installed" \ +check ".NET Core SDK 8.0 installed" \ is_dotnet_sdk_version_installed "$expected" check "Build and run example project" \ -dotnet run --project projects/netcoreapp3.1 +dotnet run --project projects/net8.0 # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. diff --git a/test/dotnet/install_dotnet_specific_release_and_feature_band.sh b/test/dotnet/install_dotnet_specific_release_and_feature_band.sh index 51f5c582b..9820217f2 100644 --- a/test/dotnet/install_dotnet_specific_release_and_feature_band.sh +++ b/test/dotnet/install_dotnet_specific_release_and_feature_band.sh @@ -13,11 +13,11 @@ source dev-container-features-test-lib source dotnet_env.sh source dotnet_helpers.sh -check ".NET SDK 5.0.3xx installed" \ -is_dotnet_sdk_version_installed "5.0.3" +check ".NET SDK 8.0.3xx installed" \ +is_dotnet_sdk_version_installed "8.0.3" check "Build and run example project" \ -dotnet run --project projects/net5.0 +dotnet run --project projects/net8.0 # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. diff --git a/test/dotnet/scenarios.json b/test/dotnet/scenarios.json index 641753632..e3045d8d0 100644 --- a/test/dotnet/scenarios.json +++ b/test/dotnet/scenarios.json @@ -9,20 +9,20 @@ } }, "install_dotnet_specific_release": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "remoteUser": "vscode", "features": { "dotnet": { - "version": "3.1" + "version": "8.0" } } }, "install_dotnet_specific_release_and_feature_band": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", "remoteUser": "vscode", "features": { "dotnet": { - "version": "5.0.3xx" + "version": "8.0.3xx" } } }, @@ -43,10 +43,7 @@ "version": "9.0", "additionalVersions": [ "8.0", - "7.0", - "6.0", - "5.0", - "3.1" + "7.0" ] } } diff --git a/test/git/install_git_from_ppa_jammy.sh b/test/git/install_git_from_ppa_jammy.sh new file mode 100644 index 000000000..45e4a20bc --- /dev/null +++ b/test/git/install_git_from_ppa_jammy.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" git --version + +cd /tmp && git clone https://github.com/devcontainers/feature-starter.git +cd feature-starter +check "perl" bash -c "git -c grep.patternType=perl grep -q 'a.+b'" + +# Report result +reportResults + diff --git a/test/git/install_git_from_src_noble.sh b/test/git/install_git_from_src_noble.sh new file mode 100644 index 000000000..337226fdc --- /dev/null +++ b/test/git/install_git_from_src_noble.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "version" git --version +check "gettext" dpkg-query -l gettext + +cd /tmp && git clone https://github.com/devcontainers/feature-starter.git +cd feature-starter +check "perl" bash -c "git -c grep.patternType=perl grep -q 'a.+b'" + +# Report result +reportResults + diff --git a/test/git/scenarios.json b/test/git/scenarios.json index 0f5d522b3..7feff6564 100644 --- a/test/git/scenarios.json +++ b/test/git/scenarios.json @@ -1,6 +1,6 @@ { "install_git_from_src": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "git": { "version": "latest", @@ -26,8 +26,8 @@ } } }, - "install_git_from_ppa_bionic": { - "image": "ubuntu:bionic", + "install_git_from_ppa_jammy": { + "image": "ubuntu:jammy", "features": { "git": { "version": "latest", @@ -35,8 +35,8 @@ } } }, - "install_git_from_src_bionic": { - "image": "ubuntu:bionic", + "install_git_from_src_noble": { + "image": "ubuntu:noble", "features": { "git": { "version": "latest", @@ -53,15 +53,6 @@ } } }, - "install_git_from_src_buster": { - "image": "debian:buster", - "features": { - "git": { - "version": "latest", - "ppa": "false" - } - } - }, "install_git_from_src_centos-7": { "image": "centos:centos7", "features": { diff --git a/test/github-cli/scenarios.json b/test/github-cli/scenarios.json index d41019aeb..ea6eb09d1 100644 --- a/test/github-cli/scenarios.json +++ b/test/github-cli/scenarios.json @@ -1,6 +1,6 @@ { "install_git_cli_from_release": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "github-cli": { "version": "latest", diff --git a/test/java/scenarios.json b/test/java/scenarios.json index f28fceb41..0441f0aa6 100644 --- a/test/java/scenarios.json +++ b/test/java/scenarios.json @@ -1,6 +1,6 @@ { "install_from_non_default_distro": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "21", @@ -9,7 +9,7 @@ } }, "install_latest_version": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "latest" @@ -17,7 +17,7 @@ } }, "install_lts_version": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "lts" @@ -25,7 +25,7 @@ } }, "install_additional_java": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "11", @@ -34,7 +34,7 @@ } }, "install_ant_and_gradle_and_maven_and_groovy_for_user": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "remoteUser": "vscode", "features": { "common-utils": { @@ -50,7 +50,7 @@ } }, "install_ant_and_gradle_and_maven_and_groovy": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "latest", @@ -62,7 +62,7 @@ } }, "install_ant_and_gradle_and_maven_and_groovy_with_specific_version": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "latest", @@ -78,7 +78,7 @@ } }, "install_non_conventional_version": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "java": { "version": "21", diff --git a/test/php/install_additional_php.sh b/test/php/install_additional_php.sh index f22315a61..c1c085b5c 100644 --- a/test/php/install_additional_php.sh +++ b/test/php/install_additional_php.sh @@ -5,9 +5,9 @@ set -e # Optional: Import test library source dev-container-features-test-lib -check "php version 8.1.4 installed as default" php --version | grep 8.1.4 -check "php version 8.0.17 installed" ls -l /usr/local/php | grep 8.0.17 -check "php version 8.0.3 installed" ls -l /usr/local/php | grep 8.0.3 +check "php version 8.4.2 installed as default" php --version | grep 8.4.2 +check "php version 8.3.14 installed" ls -l /usr/local/php | grep 8.3.14 +check "php version 8.2.27 installed" ls -l /usr/local/php | grep 8.2.27 check "composer-version" composer --version diff --git a/test/php/scenarios.json b/test/php/scenarios.json index e53bb67ce..8aa25cbff 100644 --- a/test/php/scenarios.json +++ b/test/php/scenarios.json @@ -1,15 +1,15 @@ { "install_additional_php": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "php": { - "version": "8.1.4", - "additionalVersions": "8.0.17,8.0.3" + "version": "8.4.2", + "additionalVersions": "8.3.14,8.2.27" } } }, "install_php_8": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "php": { "version": "8" @@ -17,7 +17,7 @@ } }, "install_php_8_2": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "php": { "version": "8.2" @@ -34,7 +34,7 @@ } }, "test_php_fallback": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "php": { "version": "latest" diff --git a/test/python/scenarios.json b/test/python/scenarios.json index 9dc37e16c..a489ee8e6 100644 --- a/test/python/scenarios.json +++ b/test/python/scenarios.json @@ -40,7 +40,7 @@ } }, "install_additional_python": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "python": { "version": "3.11", @@ -58,7 +58,7 @@ } }, "install_jupyterlab": { - "image": "mcr.microsoft.com/devcontainers/base:focal", + "image": "mcr.microsoft.com/devcontainers/base:noble", "remoteUser": "vscode", "features": { "python": { @@ -83,7 +83,7 @@ } }, "install_additional_jupyterlab": { - "image": "mcr.microsoft.com/devcontainers/base:focal", + "image": "mcr.microsoft.com/devcontainers/base:noble", "remoteUser": "vscode", "features": { "python": { @@ -155,7 +155,7 @@ } }, "install_jupyterlab_ubuntu": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "python": { "version": "3.11", @@ -239,7 +239,7 @@ } }, "install_python_shared_lib_deb": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "python": { "version": "3.11", @@ -257,7 +257,7 @@ } }, "update_alternatives_switchable_versions": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "python": { "version": "3.11", diff --git a/test/ruby/scenarios.json b/test/ruby/scenarios.json index dd59d30fb..7a13f7004 100644 --- a/test/ruby/scenarios.json +++ b/test/ruby/scenarios.json @@ -1,6 +1,6 @@ { "install_additional_ruby": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "ruby": { "version": "3.4.2", diff --git a/test/rust/scenarios.json b/test/rust/scenarios.json index c3466b29b..83df710fb 100644 --- a/test/rust/scenarios.json +++ b/test/rust/scenarios.json @@ -1,6 +1,6 @@ { "rust_at_pinned_version": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "rust": { "version": "1.64.0" @@ -8,7 +8,7 @@ } }, "rust_with_target": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "rust": { "version": "latest", From 7adf28c8af9d4b979a79ed219d07f264768da783 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Tue, 27 May 2025 14:53:49 +0000 Subject: [PATCH 2/3] Version bump and dotnet rollback. --- src/common-utils/devcontainer-feature.json | 2 +- src/conda/devcontainer-feature.json | 2 +- src/docker-in-docker/devcontainer-feature.json | 2 +- .../devcontainer-feature.json | 2 +- src/git/devcontainer-feature.json | 2 +- src/github-cli/devcontainer-feature.json | 2 +- src/java/devcontainer-feature.json | 2 +- src/php/devcontainer-feature.json | 2 +- src/python/devcontainer-feature.json | 2 +- src/ruby/devcontainer-feature.json | 2 +- src/rust/devcontainer-feature.json | 2 +- .../dotnet/install_dotnet_multiple_versions.sh | 18 ++++++++++++++++++ test/dotnet/install_dotnet_specific_release.sh | 6 +++--- ...dotnet_specific_release_and_feature_band.sh | 6 +++--- test/dotnet/scenarios.json | 13 ++++++++----- 15 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/common-utils/devcontainer-feature.json b/src/common-utils/devcontainer-feature.json index 82ddde046..14850232d 100644 --- a/src/common-utils/devcontainer-feature.json +++ b/src/common-utils/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "common-utils", - "version": "2.5.3", + "version": "2.5.4", "name": "Common Utilities", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/common-utils", "description": "Installs a set of common command line utilities, Oh My Zsh!, and sets up a non-root user.", diff --git a/src/conda/devcontainer-feature.json b/src/conda/devcontainer-feature.json index 163696a20..47b17db18 100644 --- a/src/conda/devcontainer-feature.json +++ b/src/conda/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "conda", - "version": "1.0.10", + "version": "1.0.11", "name": "Conda", "description": "A cross-platform, language-agnostic binary package manager", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/conda", diff --git a/src/docker-in-docker/devcontainer-feature.json b/src/docker-in-docker/devcontainer-feature.json index fe705db37..ecf22a0a3 100644 --- a/src/docker-in-docker/devcontainer-feature.json +++ b/src/docker-in-docker/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "docker-in-docker", - "version": "2.12.2", + "version": "2.12.3", "name": "Docker (Docker-in-Docker)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker", "description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.", diff --git a/src/docker-outside-of-docker/devcontainer-feature.json b/src/docker-outside-of-docker/devcontainer-feature.json index 85f598974..84ebc5c50 100644 --- a/src/docker-outside-of-docker/devcontainer-feature.json +++ b/src/docker-outside-of-docker/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "docker-outside-of-docker", - "version": "1.6.2", + "version": "1.6.3", "name": "Docker (docker-outside-of-docker)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-outside-of-docker", "description": "Re-use the host docker socket, adding the Docker CLI to a container. Feature invokes a script to enable using a forwarded Docker socket within a container to run Docker commands.", diff --git a/src/git/devcontainer-feature.json b/src/git/devcontainer-feature.json index dc79008a5..7531ad2ab 100644 --- a/src/git/devcontainer-feature.json +++ b/src/git/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "git", - "version": "1.3.3", + "version": "1.3.4", "name": "Git (from source)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/git", "description": "Install an up-to-date version of Git, built from source as needed. Useful for when you want the latest and greatest features. Auto-detects latest stable version and installs needed dependencies.", diff --git a/src/github-cli/devcontainer-feature.json b/src/github-cli/devcontainer-feature.json index 04e373dfd..b3eca81f0 100644 --- a/src/github-cli/devcontainer-feature.json +++ b/src/github-cli/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "github-cli", - "version": "1.0.14", + "version": "1.0.15", "name": "GitHub CLI", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/github-cli", "description": "Installs the GitHub CLI. Auto-detects latest version and installs needed dependencies.", diff --git a/src/java/devcontainer-feature.json b/src/java/devcontainer-feature.json index 4198af326..862c812a8 100644 --- a/src/java/devcontainer-feature.json +++ b/src/java/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "java", - "version": "1.6.3", + "version": "1.6.4", "name": "Java (via SDKMAN!)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/java", "description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.", diff --git a/src/php/devcontainer-feature.json b/src/php/devcontainer-feature.json index 4db478230..3b3cd609d 100644 --- a/src/php/devcontainer-feature.json +++ b/src/php/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "php", - "version": "1.1.4", + "version": "1.1.5", "name": "PHP", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/php", "options": { diff --git a/src/python/devcontainer-feature.json b/src/python/devcontainer-feature.json index 635b233cf..b9e2dc39b 100644 --- a/src/python/devcontainer-feature.json +++ b/src/python/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "python", - "version": "1.7.1", + "version": "1.7.2", "name": "Python", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/python", "description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.", diff --git a/src/ruby/devcontainer-feature.json b/src/ruby/devcontainer-feature.json index 82ae50a10..661c46bf0 100644 --- a/src/ruby/devcontainer-feature.json +++ b/src/ruby/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "ruby", - "version": "1.3.1", + "version": "1.3.2", "name": "Ruby (via rvm)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/ruby", "description": "Installs Ruby, rvm, rbenv, common Ruby utilities, and needed dependencies.", diff --git a/src/rust/devcontainer-feature.json b/src/rust/devcontainer-feature.json index ae67e0bdc..9e2373699 100644 --- a/src/rust/devcontainer-feature.json +++ b/src/rust/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "rust", - "version": "1.3.3", + "version": "1.3.4", "name": "Rust", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/rust", "description": "Installs Rust, common Rust utilities, and their required dependencies", diff --git a/test/dotnet/install_dotnet_multiple_versions.sh b/test/dotnet/install_dotnet_multiple_versions.sh index 3708943f6..87bf8caf4 100644 --- a/test/dotnet/install_dotnet_multiple_versions.sh +++ b/test/dotnet/install_dotnet_multiple_versions.sh @@ -22,6 +22,15 @@ is_dotnet_sdk_version_installed "8.0" check ".NET SDK 7.0 installed" \ is_dotnet_sdk_version_installed "7.0" +check ".NET SDK 6.0 installed" \ +is_dotnet_sdk_version_installed "6.0" + +check ".NET SDK 5.0 installed" \ +is_dotnet_sdk_version_installed "5.0" + +check ".NET Core SDK 3.1 installed" \ +is_dotnet_sdk_version_installed "3.1" + check "Build example class library" \ dotnet build projects/multitargeting @@ -34,6 +43,15 @@ dotnet run --project projects/net8.0 check "Build and run .NET 7.0 project" \ dotnet run --project projects/net7.0 +check "Build and run .NET 6.0 project" \ +dotnet run --project projects/net6.0 + +check "Build and run .NET 5.0 project" \ +dotnet run --project projects/net5.0 + +check "Build and run .NET Core 3.1 project" \ +dotnet run --project projects/netcoreapp3.1 + # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. reportResults \ No newline at end of file diff --git a/test/dotnet/install_dotnet_specific_release.sh b/test/dotnet/install_dotnet_specific_release.sh index 0d01bb4da..207e58280 100644 --- a/test/dotnet/install_dotnet_specific_release.sh +++ b/test/dotnet/install_dotnet_specific_release.sh @@ -13,13 +13,13 @@ source dev-container-features-test-lib source dotnet_env.sh source dotnet_helpers.sh -expected=$(fetch_latest_version_in_channel "8.0") +expected=$(fetch_latest_version_in_channel "3.1") -check ".NET Core SDK 8.0 installed" \ +check ".NET Core SDK 3.1 installed" \ is_dotnet_sdk_version_installed "$expected" check "Build and run example project" \ -dotnet run --project projects/net8.0 +dotnet run --project projects/netcoreapp3.1 # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. diff --git a/test/dotnet/install_dotnet_specific_release_and_feature_band.sh b/test/dotnet/install_dotnet_specific_release_and_feature_band.sh index 9820217f2..51f5c582b 100644 --- a/test/dotnet/install_dotnet_specific_release_and_feature_band.sh +++ b/test/dotnet/install_dotnet_specific_release_and_feature_band.sh @@ -13,11 +13,11 @@ source dev-container-features-test-lib source dotnet_env.sh source dotnet_helpers.sh -check ".NET SDK 8.0.3xx installed" \ -is_dotnet_sdk_version_installed "8.0.3" +check ".NET SDK 5.0.3xx installed" \ +is_dotnet_sdk_version_installed "5.0.3" check "Build and run example project" \ -dotnet run --project projects/net8.0 +dotnet run --project projects/net5.0 # Report results # If any of the checks above exited with a non-zero exit code, the test will fail. diff --git a/test/dotnet/scenarios.json b/test/dotnet/scenarios.json index e3045d8d0..641753632 100644 --- a/test/dotnet/scenarios.json +++ b/test/dotnet/scenarios.json @@ -9,20 +9,20 @@ } }, "install_dotnet_specific_release": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", "remoteUser": "vscode", "features": { "dotnet": { - "version": "8.0" + "version": "3.1" } } }, "install_dotnet_specific_release_and_feature_band": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", "remoteUser": "vscode", "features": { "dotnet": { - "version": "8.0.3xx" + "version": "5.0.3xx" } } }, @@ -43,7 +43,10 @@ "version": "9.0", "additionalVersions": [ "8.0", - "7.0" + "7.0", + "6.0", + "5.0", + "3.1" ] } } From ba6ba889f4dc1a910c6e783e2dbe68ca88f15e83 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Tue, 3 Jun 2025 15:13:50 +0000 Subject: [PATCH 3/3] Reverting the version bump & adding test for Oryx test script. --- src/common-utils/devcontainer-feature.json | 2 +- src/conda/devcontainer-feature.json | 2 +- src/docker-in-docker/devcontainer-feature.json | 2 +- src/docker-outside-of-docker/devcontainer-feature.json | 2 +- src/github-cli/devcontainer-feature.json | 2 +- src/java/devcontainer-feature.json | 2 +- src/php/devcontainer-feature.json | 2 +- src/python/devcontainer-feature.json | 2 +- src/ruby/devcontainer-feature.json | 2 +- src/rust/devcontainer-feature.json | 2 +- test/oryx/scenarios.json | 8 ++++---- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/common-utils/devcontainer-feature.json b/src/common-utils/devcontainer-feature.json index 14850232d..82ddde046 100644 --- a/src/common-utils/devcontainer-feature.json +++ b/src/common-utils/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "common-utils", - "version": "2.5.4", + "version": "2.5.3", "name": "Common Utilities", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/common-utils", "description": "Installs a set of common command line utilities, Oh My Zsh!, and sets up a non-root user.", diff --git a/src/conda/devcontainer-feature.json b/src/conda/devcontainer-feature.json index 47b17db18..163696a20 100644 --- a/src/conda/devcontainer-feature.json +++ b/src/conda/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "conda", - "version": "1.0.11", + "version": "1.0.10", "name": "Conda", "description": "A cross-platform, language-agnostic binary package manager", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/conda", diff --git a/src/docker-in-docker/devcontainer-feature.json b/src/docker-in-docker/devcontainer-feature.json index ecf22a0a3..fe705db37 100644 --- a/src/docker-in-docker/devcontainer-feature.json +++ b/src/docker-in-docker/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "docker-in-docker", - "version": "2.12.3", + "version": "2.12.2", "name": "Docker (Docker-in-Docker)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker", "description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.", diff --git a/src/docker-outside-of-docker/devcontainer-feature.json b/src/docker-outside-of-docker/devcontainer-feature.json index 84ebc5c50..85f598974 100644 --- a/src/docker-outside-of-docker/devcontainer-feature.json +++ b/src/docker-outside-of-docker/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "docker-outside-of-docker", - "version": "1.6.3", + "version": "1.6.2", "name": "Docker (docker-outside-of-docker)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-outside-of-docker", "description": "Re-use the host docker socket, adding the Docker CLI to a container. Feature invokes a script to enable using a forwarded Docker socket within a container to run Docker commands.", diff --git a/src/github-cli/devcontainer-feature.json b/src/github-cli/devcontainer-feature.json index b3eca81f0..04e373dfd 100644 --- a/src/github-cli/devcontainer-feature.json +++ b/src/github-cli/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "github-cli", - "version": "1.0.15", + "version": "1.0.14", "name": "GitHub CLI", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/github-cli", "description": "Installs the GitHub CLI. Auto-detects latest version and installs needed dependencies.", diff --git a/src/java/devcontainer-feature.json b/src/java/devcontainer-feature.json index 862c812a8..4198af326 100644 --- a/src/java/devcontainer-feature.json +++ b/src/java/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "java", - "version": "1.6.4", + "version": "1.6.3", "name": "Java (via SDKMAN!)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/java", "description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.", diff --git a/src/php/devcontainer-feature.json b/src/php/devcontainer-feature.json index 3b3cd609d..4db478230 100644 --- a/src/php/devcontainer-feature.json +++ b/src/php/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "php", - "version": "1.1.5", + "version": "1.1.4", "name": "PHP", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/php", "options": { diff --git a/src/python/devcontainer-feature.json b/src/python/devcontainer-feature.json index b9e2dc39b..635b233cf 100644 --- a/src/python/devcontainer-feature.json +++ b/src/python/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "python", - "version": "1.7.2", + "version": "1.7.1", "name": "Python", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/python", "description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.", diff --git a/src/ruby/devcontainer-feature.json b/src/ruby/devcontainer-feature.json index 661c46bf0..82ae50a10 100644 --- a/src/ruby/devcontainer-feature.json +++ b/src/ruby/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "ruby", - "version": "1.3.2", + "version": "1.3.1", "name": "Ruby (via rvm)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/ruby", "description": "Installs Ruby, rvm, rbenv, common Ruby utilities, and needed dependencies.", diff --git a/src/rust/devcontainer-feature.json b/src/rust/devcontainer-feature.json index 9e2373699..ae67e0bdc 100644 --- a/src/rust/devcontainer-feature.json +++ b/src/rust/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "rust", - "version": "1.3.4", + "version": "1.3.3", "name": "Rust", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/rust", "description": "Installs Rust, common Rust utilities, and their required dependencies", diff --git a/test/oryx/scenarios.json b/test/oryx/scenarios.json index d7a70f319..4b3643590 100644 --- a/test/oryx/scenarios.json +++ b/test/oryx/scenarios.json @@ -1,6 +1,6 @@ { "install_dotnet_and_oryx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "dotnet": { "version": "8.0", @@ -11,7 +11,7 @@ } }, "install_older_dotnet_and_oryx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "dotnet": { "version": "7.0" @@ -20,7 +20,7 @@ } }, "install_prev_dotnet_and_oryx": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "dotnet": { "version": "6.0" @@ -29,7 +29,7 @@ } }, "test_python_project": { - "image": "ubuntu:focal", + "image": "ubuntu:noble", "features": { "python": { "version": "3.10.4",