Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 3 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
"features": {
"ghcr.io/azure/azure-dev/azd:latest": {},
"ghcr.io/devcontainers/features/dotnet:latest": {
"version": "8.0",
"additionalVersions": "9.0"
"version": "10.0",
"additionalVersions": "8.0,9.0",
"installUsingApt": false
},
"ghcr.io/devcontainers/features/github-cli:latest": {},
"ghcr.io/devcontainers/features/java:1": {
Expand Down
3 changes: 1 addition & 2 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ sudo apt-get update && \
sudo rm -rf /var/lib/apt/lists/*

echo Install .NET dev certs
dotnet tool update -g linux-dev-certs
dotnet linux-dev-certs install
dotnet dev-certs https --trust

echo Install JS monorepo tools
npm install -g turbo
Expand Down
5 changes: 3 additions & 2 deletions .github/actions/setup-runtimes-caching/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ runs:
dotnet-version: |
8.0.x
9.0.x
10.0.x

- name: Set up Python
uses: actions/setup-python@v5
Expand Down Expand Up @@ -84,8 +85,7 @@ runs:
shell: bash
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
dotnet tool update -g linux-dev-certs
dotnet linux-dev-certs install
dotnet dev-certs https --trust

- name: Setup Node globals
shell: bash
Expand Down Expand Up @@ -117,3 +117,4 @@ runs:
run: |
dapr init --runtime-version=${{ env.DAPR_VERSION }}
dapr --version

1 change: 1 addition & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ jobs:
dotnet-version: |
8.0.x
9.0.x
10.0.x
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dotnet-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
workflow_dispatch:

env:
DEFAULT_DOTNET_VERSION: "8.0.x"
DEFAULT_DOTNET_VERSION: "10.0.x"

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dotnet-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- "v*"

env:
DEFAULT_DOTNET_VERSION: "8.0.x"
DEFAULT_DOTNET_VERSION: "10.0.x"

jobs:
build:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/generate-api-diffs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ jobs:
dotnet-version: |
8.0.x
9.0.x
10.0.x

- name: Restore and build
run: |

find src -type f -name "*.csproj" | while read -r csproj; do
dotnet build "$csproj" -f net8.0 --configuration Release --no-incremental -t:Build -t:GenAPIGenerateReferenceAssemblySource
dotnet build "$csproj" -f net10.0 --configuration Release --no-incremental -t:Build -t:GenAPIGenerateReferenceAssemblySource
done
continue-on-error: true

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
dotnet-version: |
8.0.x
9.0.x
10.0.x

- name: Get git tag
id: git_tag
Expand Down
12 changes: 8 additions & 4 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build -->
<PropertyGroup>

<DefaultTargetFramework>net8.0</DefaultTargetFramework>
<DefaultTargetFramework>net10.0</DefaultTargetFramework>
<TargetFrameworks>$(DefaultTargetFramework)</TargetFrameworks>
<AllTargetFrameworks>$(DefaultTargetFramework);net9.0</AllTargetFrameworks>
<AllTargetFrameworks>$(DefaultTargetFramework);net8.0;net9.0</AllTargetFrameworks>
<LangVersion>latest</LangVersion>

<ImplicitUsings>enable</ImplicitUsings>
Expand All @@ -16,9 +16,9 @@
<AspireAppHostSdkVersion>$(AspireVersion)</AspireAppHostSdkVersion>
<AspirePreviewSuffix>preview.1.25522.3</AspirePreviewSuffix>
<AspNetCoreVersion>9.0.0</AspNetCoreVersion>
<DotNetExtensionsVersion>9.0.10</DotNetExtensionsVersion>
<DotNetExtensionsVersion>10.0.0-rc.2.25502.107</DotNetExtensionsVersion>
<OpenTelemetryVersion>1.12.0</OpenTelemetryVersion>
<TestContainersVersion>4.7.0</TestContainersVersion>
<TestContainersVersion>4.8.1</TestContainersVersion>
<MEAIVersion>9.9.0</MEAIVersion>
<ServiceDiscoveryVersion>10.0.0-preview.1.25520.3</ServiceDiscoveryVersion>
<IsPackable>false</IsPackable>
Expand Down Expand Up @@ -46,4 +46,8 @@

<VersionPrefix>$(AspireMajorVersion).$(ToolkitMinorVersion).$(ToolkitPatchVersion)</VersionPrefix>
</PropertyGroup>

<ItemGroup>
<NuGetAuditSuppress Include="https://github.com/advisories/GHSA-4mjw-xr5x-prpc" />
</ItemGroup>
</Project>
10 changes: 6 additions & 4 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,12 @@
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="$(DotNetExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(DotNetExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(DotNetExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.7" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="$(DotNetExtensionsVersion)" />
<!-- .NET packages -->
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.9.0" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="$(ServiceDiscoveryVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(DotNetExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(DotNetExtensionsVersion)" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(DotNetExtensionsVersion)" />
<!-- OpenTelemetry packages -->
Expand Down Expand Up @@ -113,8 +114,9 @@
<PackageVersion Include="Testcontainers" Version="$(TestContainersVersion)" />
<PackageVersion Include="Testcontainers.MsSql" Version="$(TestContainersVersion)" />
</ItemGroup>
<ItemGroup Label=".NET 9 Overrides" Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Update="Microsoft.Extensions.Logging.Abstractions" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.10" />

<ItemGroup Label="System">
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new "System" ItemGroup label lacks context for why System.Linq.Async has ExcludeAssets set to all while System.Linq.AsyncEnumerable is conditionally included in specific projects. Consider adding a comment explaining that System.Linq.Async is excluded here to avoid transitive dependencies, and that System.Linq.AsyncEnumerable is conditionally referenced for .NET 8.0/9.0 only as the functionality is built-in to .NET 10.

Suggested change
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<!--
System.Linq.Async is referenced with ExcludeAssets="all" to avoid introducing transitive dependencies.
System.Linq.AsyncEnumerable is conditionally referenced for .NET 8.0/9.0 only, as the functionality is built-in to .NET 10.
-->
<PackageVersion Include="System.Linq.Async" Version="6.0.1" ExcludeAssets="all" />

Copilot uses AI. Check for mistakes.
<PackageVersion Include="System.Linq.AsyncEnumerable" Version="$(DotNetExtensionsVersion)" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>Messaging</RootNamespace>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

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

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsAspireHost>true</IsAspireHost>
<UserSecretsId>bc193f31-c9f7-4e3d-b70a-0dc39ec3047f</UserSecretsId>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"allowPrerelease": false
"allowPrerelease": true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,11 @@
<InternalsVisibleTo Include="CommunityToolkit.Aspire.Hosting.KurrentDB.Tests"></InternalsVisibleTo>
</ItemGroup>

<ItemGroup>
<PackageReference Include="System.Linq.Async">
<ExcludeAssets>all</ExcludeAssets>
</PackageReference>
<PackageReference Include="System.Linq.AsyncEnumerable" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
</ItemGroup>

<!-- Workaround for https://github.com/dotnet/aspire/issues/7779 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0' or '$(TargetFramework)' == 'net10.0'">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just checking, is the workaround still necessary?

<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
</ItemGroup>

<!-- Workaround for https://github.com/dotnet/aspire/issues/7779 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0' or '$(TargetFramework)' == 'net10.0'">
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Options" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,10 @@
<Compile Include="$(SharedDir)\HealthChecksExtensions.cs" Link="Utils\HealthChecksExtensions.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="System.Linq.Async">
<ExcludeAssets>all</ExcludeAssets>
</PackageReference>
<PackageReference Include="System.Linq.AsyncEnumerable" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The explicit TargetFramework setting here is inconsistent with the approach used in other AppHost projects. Most example AppHost projects (e.g., examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost) have removed explicit TargetFramework settings to inherit from Directory.Build.props. Consider removing this line to maintain consistency and allow the framework to be inherited from DefaultTargetFramework.

Suggested change
<TargetFramework>net10.0</TargetFramework>

Copilot uses AI. Check for mistakes.
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
Comment on lines 7 to 8
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the pattern used in other AppHost projects, consider removing the explicit ImplicitUsings and Nullable properties as they are already set in Directory.Build.props (lines 11-12) and will be inherited automatically.

Suggested change
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

Copilot uses AI. Check for mistakes.
<IsAspireHost>true</IsAspireHost>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,11 @@
<ItemGroup>
<Compile Include="$(RepoRoot)src\CommunityToolkit.Aspire.Hosting.KurrentDB\KurrentDBContainerImageTags.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="System.Linq.Async">
<ExcludeAssets>all</ExcludeAssets>
</PackageReference>
<PackageReference Include="System.Linq.AsyncEnumerable" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

namespace CommunityToolkit.Aspire.SurrealDb.Tests;

public class ConformanceTests :
ConformanceTests<SurrealDbClient, SurrealDbClientSettings>,
public class ConformanceTests :
ConformanceTests<SurrealDbClient, SurrealDbClientSettings>,
IClassFixture<SurrealDbContainerFixture>
{
private readonly SurrealDbContainerFixture _containerFixture;

protected override ServiceLifetime ServiceLifetime => ServiceLifetime.Singleton;

protected override string ActivitySourceName => string.Empty;
Expand All @@ -25,6 +25,8 @@ public class ConformanceTests :

protected override bool SupportsKeyedRegistrations => true;

protected override bool CanCreateClientWithoutConnectingToServer => false;

public ConformanceTests(SurrealDbContainerFixture containerFixture)
{
_containerFixture = containerFixture;
Expand Down
5 changes: 5 additions & 0 deletions tests/CommunityToolkit.Aspire.Testing/ConformanceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,11 @@ public void LoggerFactoryIsUsedByRegisteredClient(bool registerAfterLoggerFactor
SkipIfRequiredServerConnectionCanNotBeEstablished();
SkipIfKeyedRegistrationIsNotSupported(useKey);

if (RequiredLogCategories.Length == 0 && NotAcceptableLogCategories.Length == 0)
{
throw new SkipTestException("No log categories specified to test against.");
}

string? key = useKey ? "key" : null;
HostApplicationBuilder builder = CreateHostBuilder(key: key);

Expand Down
Loading