Skip to content

Supporting dotnet 10.0 preview version #1305

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
28f5a93
Supporting dotnet 10.0 preview version
Kaniska244 Mar 21, 2025
d2855d9
Changing the test to fetch actual LTS version.
Kaniska244 Apr 9, 2025
e0501a4
To resolve the conflict
Kaniska244 Apr 9, 2025
6a504bd
To resolve conflict again
Kaniska244 Apr 9, 2025
f9dc5a7
Version bump and adding back the azureedge url's as those should be r…
Kaniska244 Apr 9, 2025
481d6e4
To resolve conflict again
Kaniska244 Apr 9, 2025
2729ad1
Merge branch 'main' into dotnet_10_preview_version_support
Kaniska244 Apr 9, 2025
34ff0c4
Final version bump
Kaniska244 Apr 9, 2025
893ca63
Reverting back the test script change as created separate PR for that.
Kaniska244 Apr 14, 2025
3f8fec7
Merge branch 'main' into dotnet_10_preview_version_support
Kaniska244 Apr 22, 2025
8040226
Ubuntu EOL changes and additional info about dotnet 10.0-preview vers…
Kaniska244 May 27, 2025
41d36fb
Merge branch 'main' into dotnet_10_preview_version_support
Kaniska244 May 27, 2025
ea297dd
Correcting the comment.
Kaniska244 Jun 3, 2025
727eafe
Merge branch 'main' into dotnet_10_preview_version_support
Kaniska244 Jun 3, 2025
7863a5a
Merge branch 'main' into dotnet_10_preview_version_support
AlvaroRausell Jun 5, 2025
56fcbdd
Updates based on review comments to use '-preview' in the label as su…
Kaniska244 Jun 5, 2025
404a8cb
Removed reame file change as suggested.
Kaniska244 Jun 6, 2025
5ad9c26
Update src/dotnet/README.md
AlvaroRausell Jun 6, 2025
118dccc
Merge branch 'main' into dotnet_10_preview_version_support
AlvaroRausell Jun 6, 2025
395045f
Inconsequential change to rerun the failed test
Kaniska244 Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/dotnet/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "dotnet",
"version": "2.2.1",
"version": "2.3.0",
"name": "Dotnet CLI",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/dotnet",
"description": "This Feature installs the latest .NET SDK, which includes the .NET CLI and the shared runtime. Options are provided to choose a different version or additional versions.",
Expand All @@ -11,6 +11,7 @@
"latest",
"lts",
"none",
"10.0-preview",
"8.0",
"7.0",
"6.0"
Expand Down
4 changes: 3 additions & 1 deletion src/dotnet/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,9 @@ done
check_packages wget ca-certificates icu-devtools

for version in "${versions[@]}"; do
install_sdk "$version"
# Remove '-preview' from version if suffixed with the version label
clean_version="$(echo "$version" | sed 's/-preview$//')"
install_sdk "$clean_version"
done

for version in "${dotnetRuntimeVersions[@]}"; do
Expand Down
1 change: 1 addition & 0 deletions src/dotnet/scripts/vendor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@ dotnet-install.sh [--version latest] --channel 6.0 [--quality GA]
dotnet-install.sh [--version latest] --channel 6.0.4xx [--quality GA]
dotnet-install.sh [--version latest] --channel 8.0 --quality preview
dotnet-install.sh [--version latest] --channel 8.0 --quality daily
dotnet-install.sh [--version latest] --channel 10.0 --quality preview
dotnet-install.sh --version 6.0.413
```
20 changes: 4 additions & 16 deletions test/dotnet/install_dotnet_multiple_versions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,8 @@ 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 ".NET SDK 10.0 installed" \
is_dotnet_sdk_version_installed "10.0"

check "Build example class library" \
dotnet build projects/multitargeting
Expand All @@ -43,14 +37,8 @@ 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
check "Build and run .NET 10.0 project" \
dotnet run --project projects/net10.0

# Report results
# If any of the checks above exited with a non-zero exit code, the test will fail.
Expand Down
47 changes: 47 additions & 0 deletions test/dotnet/install_dotnet_multiple_versions_preview.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/bash

set -e

# Optional: Import test library bundled with the devcontainer CLI
# See https://github.com/devcontainers/cli/blob/HEAD/docs/features/test.md#dev-container-features-test-lib
# Provides the 'check' and 'reportResults' commands.
source dev-container-features-test-lib

# Feature-specific tests
# The 'check' command comes from the dev-container-features-test-lib. Syntax is...
# check <LABEL> <cmd> [args...]
source dotnet_env.sh
source dotnet_helpers.sh

check ".NET SDK 9.0 installed" \
is_dotnet_sdk_version_installed "9.0"

check ".NET SDK 8.0 installed" \
is_dotnet_sdk_version_installed "8.0"

check ".NET SDK 7.0 installed" \
is_dotnet_sdk_version_installed "7.0"

check ".NET SDK 10.0 installed" \
is_dotnet_sdk_version_installed "10.0"

check "Build example class library" \
dotnet build projects/multitargeting

check "Build and run .NET 9.0 project" \
dotnet run --project projects/net9.0

check "Build and run .NET 8.0 project" \
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 10.0 project" \
dotnet run --project projects/net10.0

# Report results
# If any of the checks above exited with a non-zero exit code, the test will fail.
reportResults


6 changes: 3 additions & 3 deletions test/dotnet/install_dotnet_specific_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
32 changes: 32 additions & 0 deletions test/dotnet/projects/net10.0/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using Newtonsoft.Json;

string json = """
{
"Name": "Inception",
"ReleaseDate": "2010-07-08T00:00:00",
"Genres": [
"Action",
"Thriller"
]
}
""";

Movie? m = JsonConvert.DeserializeObject<Movie>(json);

if (m == default)
{
Console.WriteLine("Decoding failed!");
}
else
{
Console.WriteLine($"Movie name: {m.Name}");
Console.WriteLine($"Release Date: {m.ReleaseDate}");
Console.WriteLine($"Genres: {string.Join(", ", m.Genres)}");
}

class Movie(string? name, DateTime releaseDate, List<string>? genres)
{
public string Name { get; set; } = name ?? "Default Name";
public DateTime ReleaseDate { get; set; } = releaseDate;
public List<string> Genres { get; set; } = genres ?? [];
}
14 changes: 14 additions & 0 deletions test/dotnet/projects/net10.0/example_project.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

</Project>
30 changes: 21 additions & 9 deletions test/dotnet/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
},
Expand All @@ -40,17 +40,29 @@
"remoteUser": "vscode",
"features": {
"dotnet": {
"version": "9.0",
"version": "10.0-preview",
"additionalVersions": [
"9.0",
"8.0",
"7.0",
"6.0",
"5.0",
"3.1"
"7.0"
]
}
}
},
"install_dotnet_multiple_versions_preview": {
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"remoteUser": "vscode",
"features": {
"dotnet": {
"version": "9.0",
"additionalVersions": [
"10.0-preview",
"8.0",
"7.0"
]
}
}
},
"install_dotnet_global_tool": {
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"remoteUser": "vscode",
Expand Down