Skip to content
Closed
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
4 changes: 2 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@
dotnet --version # Should show 9.0.x
```
- **Project file enforcement**:
- All new .csproj files MUST target `net9.0` framework
- All new .csproj files MUST target `net10.0` framework
- Existing projects should be updated to .NET 9.0 when modified
- global.json MUST specify .NET 9.0 SDK version
- No mixed framework targeting (e.g., net8.0 and net9.0 in same solution)
- No mixed framework targeting (e.g., net8.0 and net10.0 in same solution)
- **Troubleshooting common issues**:
- If `dotnet --version` shows 8.x, ensure .NET 9.0 is installed and PATH is updated
- If Aspire workload fails to install, update to latest .NET 9.0 version first
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backpressure-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

- name: Ensure Docker is running
run: docker info
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/day01-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ jobs:
with:
maven-version: '3.9.6'

- name: Set up .NET 9.0
- name: Set up .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Install .NET Aspire workload
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/learningcourse-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

- name: Install .NET Aspire workload
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/localtesting-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ jobs:
with:
maven-version: '3.9.6'

- name: Set up .NET 9.0
- name: Set up .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Install .NET Aspire workload
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nativeflinkdotnet-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ jobs:
with:
fetch-depth: 0

- name: Set up .NET 9.0
- name: Set up .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Install .NET Aspire workload
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/observability-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ jobs:
with:
maven-version: '3.9.6'

- name: Set up .NET 9.0
- name: Set up .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Install .NET Aspire workload
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/post-release-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
default: false

env:
DOTNET_VERSION: '9.0.x'
DOTNET_VERSION: '10.0.x'
CONFIGURATION: 'Release'
DOCKER_IMAGE_NAME: 'devstress/flinkdotnet'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-major.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:

env:
DOTNET_VERSION: '9.0.x'
DOTNET_VERSION: '10.0.x'
CONFIGURATION: 'Release'
DOCKER_IMAGE_NAME: 'devstress/flinkdotnet'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-minor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:

env:
DOTNET_VERSION: '9.0.x'
DOTNET_VERSION: '10.0.x'
CONFIGURATION: 'Release'
DOCKER_IMAGE_NAME: 'devstress/flinkdotnet'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-patch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:

env:
DOTNET_VERSION: '9.0.x'
DOTNET_VERSION: '10.0.x'
CONFIGURATION: 'Release'
DOCKER_IMAGE_NAME: 'devstress/flinkdotnet'

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ jobs:
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis

- name: Set up .NET 9.0
- name: Set up .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Set up JDK 17
uses: actions/setup-java@v4
Expand Down
44 changes: 22 additions & 22 deletions .roo/rules/default-rules.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# # GitHub Copilot Guidelines

## .NET 9.0 Local Development Environment Enforcement (MANDATORY)
## .NET 10.0 Local Development Environment Enforcement (MANDATORY)

### Rule 1: .NET 9.0 Environment Requirements (CRITICAL)
- **MANDATORY .NET 9.0 SDK**: All local development must use .NET 9.0.303 or later
### Rule 1: .NET 10.0 Environment Requirements (CRITICAL)
- **MANDATORY .NET 10.0 SDK**: All local development must use .NET 10.0.303 or later
- **Before submitting any GitHub workflow or PR**, developers MUST verify:
- Local environment has .NET 9.0 SDK installed (`dotnet --version` returns 9.0.x)
- Local environment has .NET 10.0 SDK installed (`dotnet --version` returns 10.0.x)
- Aspire workload is installed and functional
- All solutions build successfully locally with .NET 9.0
- All solutions build successfully locally with .NET 10.0
- LocalTesting workflow executes successfully locally
- **Local environment setup requirements**:
- .NET 9.0 SDK installation using official Microsoft installer
- .NET 10.0 SDK installation using official Microsoft installer
- Aspire workload installation (`dotnet workload install aspire`)
- Docker Desktop or Podman running for Aspire orchestration
- LocalTesting solution builds and runs without errors
Expand All @@ -20,14 +20,14 @@
- LocalTesting workflow must execute successfully with Aspire dashboard accessible
- Integration tests must pass locally with same results as CI
- **Environment consistency enforcement**:
- Local development environment must match CI environment (.NET 9.0)
- Local development environment must match CI environment (.NET 10.0)
- global.json version must be respected locally
- No .NET version downgrades or workarounds permitted
- Aspire orchestration must work locally before CI submission
- **Verification commands required before PR submission**:
```bash
# Verify .NET version
dotnet --version # Must return 9.0.x
dotnet --version # Must return 10.0.x

# Install Aspire workload
dotnet workload install aspire
Expand All @@ -42,35 +42,35 @@
```
- **Installation verification for new developers**:
```bash
# Check if .NET 9.0 is installed
# Check if .NET 10.0 is installed
dotnet --list-sdks | grep "9.0"

# If not installed, download and install .NET 9.0 SDK
# If not installed, download and install .NET 10.0 SDK
# Windows: Download from https://dotnet.microsoft.com/download/dotnet/9.0
# Linux/macOS: Use the dotnet-install script
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version latest --channel 9.0
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version latest --channel 10.0

# Install Aspire workload
dotnet workload install aspire

# Verify installation
dotnet --version # Should show 9.0.x
dotnet --version # Should show 10.0.x
```
- **Project file enforcement**:
- All new .csproj files MUST target `net9.0` framework
- Existing projects should be updated to .NET 9.0 when modified
- global.json MUST specify .NET 9.0 SDK version
- No mixed framework targeting (e.g., net8.0 and net9.0 in same solution)
- All new .csproj files MUST target `net10.0` framework
- Existing projects should be updated to .NET 10.0 when modified
- global.json MUST specify .NET 10.0 SDK version
- No mixed framework targeting (e.g., net8.0 and net10.0 in same solution)
- **Troubleshooting common issues**:
- If `dotnet --version` shows 8.x, ensure .NET 9.0 is installed and PATH is updated
- If Aspire workload fails to install, update to latest .NET 9.0 version first
- If `dotnet --version` shows 8.x, ensure .NET 10.0 is installed and PATH is updated
- If Aspire workload fails to install, update to latest .NET 10.0 version first
- If LocalTesting fails, verify Docker Desktop or Podman is running and has sufficient resources
- If build errors occur, clean and rebuild: `dotnet clean && dotnet build`
- **Failure to verify .NET 9.0 environment is a MAJOR violation** requiring complete environment setup before work can proceed
- **Failure to verify .NET 10.0 environment is a MAJOR violation** requiring complete environment setup before work can proceed
- **Automated environment verification**:
- Add .NET version check to all build scripts
- Include environment validation in PR templates
- Require .NET 9.0 confirmation in issue templates
- Require .NET 10.0 confirmation in issue templates
- Document environment setup in CONTRIBUTING.md

This document defines the coding standards and best practices that GitHub Copilot should enforce during code reviews for this .NET project. These guidelines ensure adherence to SOLID principles and .NET best practices, with specialized guidance for BizTalk to Inobiz migrations using .NET 9 and direct XSLT mapping.
Expand Down Expand Up @@ -911,7 +911,7 @@ Phase: [Investigation|Design|Test Design|Development|Debugging|Testing]
- If build breaks, immediately revert last change and try different approach
- **Environment verification before changes**:
```bash
# Verify .NET version is 9.0.x
# Verify .NET version is 10.0.x
dotnet --version

# Ensure clean working directory
Expand Down Expand Up @@ -990,7 +990,7 @@ Phase: [Investigation|Design|Test Design|Development|Debugging|Testing]
3. For pre-existing failures: document and proceed (no regression)
4. NEVER ignore test failures without understanding root cause
- **Environment recovery**:
- If .NET environment becomes inconsistent, reinstall .NET 9.0 SDK
- If .NET environment becomes inconsistent, reinstall .NET 10.0 SDK
- If dependencies are corrupted, run `dotnet clean` and `dotnet restore`
- If workspace is polluted, start with clean git checkout
- **Escalation procedures**:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">

<Sdk Name="Aspire.AppHost.Sdk" Version="9.5.1" />
<Sdk Name="Aspire.AppHost.Sdk" Version="13.0.0" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsAspireHost>true</IsAspireHost>
<UserSecretsId>3cadc530-3e21-4063-8ce8-65fdbff98645</UserSecretsId>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.1" />
<PackageReference Include="Aspire.Hosting.Kafka" Version="9.5.1" />
<PackageReference Include="Aspire.Confluent.Kafka" Version="9.5.1" />
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.0.0" />
<PackageReference Include="Aspire.Hosting.Kafka" Version="13.0.0" />
<PackageReference Include="Aspire.Confluent.Kafka" Version="13.0.0" />
</ItemGroup>


Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Confluent.Kafka" Version="2.11.0" />
<PackageReference Include="Aspire.Hosting" Version="9.5.1" />
<PackageReference Include="Confluent.Kafka" Version="2.12.0" />
<PackageReference Include="Aspire.Hosting" Version="13.0.0" />
</ItemGroup>

</Project>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<IsPackable>false</IsPackable>
Expand All @@ -11,20 +11,20 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Confluent.Kafka" Version="9.5.1" />
<PackageReference Include="Aspire.Hosting.Testing" Version="9.5.1" />
<PackageReference Include="Aspire.Hosting.Kafka" Version="9.5.1" />
<PackageReference Include="Aspire.Confluent.Kafka" Version="13.0.0" />
<PackageReference Include="Aspire.Hosting.Testing" Version="13.0.0" />
<PackageReference Include="Aspire.Hosting.Kafka" Version="13.0.0" />
<PackageReference Include="coverlet.collector" Version="6.0.2" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.9" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="NUnit" Version="4.2.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.9.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsTestProject>true</IsTestProject>
Expand Down Expand Up @@ -41,10 +41,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="NUnit" Version="4.2.1" />
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
Expand Down
10 changes: 5 additions & 5 deletions FlinkDotNet/Flink.JobBuilder/Flink.JobBuilder.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
Expand All @@ -13,13 +13,13 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Text.Json" Version="8.0.5" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
<PackageReference Include="System.Text.Json" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Serilog" Version="4.2.0" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="System.IO.Abstractions" Version="21.0.29" />
<PackageReference Include="System.IO.Abstractions" Version="22.1.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsTestProject>true</IsTestProject>
Expand All @@ -12,11 +12,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="NUnit" Version="4.2.1" />
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
<PackageReference Include="System.IO.Abstractions.TestingHelpers" Version="21.0.29" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
<PackageReference Include="System.IO.Abstractions.TestingHelpers" Version="22.1.0" />
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
Expand Down
Loading
Loading