Skip to content

Conversation

@techouse
Copy link
Owner

@techouse techouse commented Nov 16, 2025

This pull request updates the CI workflows to use .NET 10.0 as the default SDK version across all jobs, replacing .NET 8.0 and removing special handling for .NET 10.0 as a preview or experimental version. It also updates the Node.js version used in tests and expands the smoke tests to include .NET 10.0 as a stable target.

CI/CD Pipeline Updates:

  • Updated all references in workflow files (docs.yml, publish.yml, test.yml) to use dotnet-version: '10.0.x' instead of 8.0.x, making .NET 10.0 the default SDK for build, test, and documentation jobs. [1] [2] [3] [4] [5] [6]
  • Simplified the test matrix by removing the experimental/preview handling for .NET 10.0, treating it as a stable version in all jobs. [1] [2] [3]

Test Matrix and Coverage Improvements:

  • Expanded smoke tests to include .NET 10.0 as a stable target, both in the matrix and in build/run steps, and updated job names to reflect this. [1] [2] [3]
  • Updated coverage jobs to use .NET 10.0 and adjusted naming for clarity.

Dependency Updates:

  • Updated Node.js version used in test jobs from 20 to 24.

Summary by CodeRabbit

  • Chores
    • Updated CI/CD pipelines and build infrastructure to support .NET 10.0, enabling compatibility with the latest framework.
    • Expanded test matrices to include .NET 10.0 across multiple test targets and environments.
    • Updated Node.js runtime to version 24.
    • Consolidated workflow setup steps for improved consistency and maintainability.

@techouse techouse self-assigned this Nov 16, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 16, 2025

Walkthrough

Updated .NET SDK version from 8.0.x to 10.0.x across CI workflows (docs, publish, test). Added net10.0 target framework to consumer-smoke test project. Updated Node.js setup to version 24 and consolidated .NET setup steps in test matrices.

Changes

Cohort / File(s) Summary
CI Workflow .NET SDK Updates
.github/workflows/docs.yml, .github/workflows/publish.yml, .github/workflows/test.yml
Updated .NET SDK version from 8.0.x to 10.0.x in setup steps across all CI workflows; consolidated generic "Setup .NET SDK" naming; removed experimental/preview distinctions for .NET 10
Test Project Configuration
consumer-smoke/consumer-smoke.csproj
Added net10.0 to TargetFrameworks list alongside existing net5.0–net9.0
Node.js Runtime Update
.github/workflows/test.yml
Updated Node.js setup to version 24 in relevant test jobs

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Homogeneous changes across multiple workflow files (version bumps and target framework additions)
  • Minimal logic density—primarily configuration and dependency updates
  • Consistent pattern applied throughout (SDK version, Node.js version, TargetFrameworks)
  • No complex conditional logic or structural refactoring

Possibly related PRs

Suggested labels

test

Poem

🐰 Hop along with .NET ten!
SDK updates, again and again,
From eight to ten, our targets expand,
Consumer-smoke now covers the land,
Node's at twenty-four, tests compile with cheer!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is comprehensive and well-structured, covering CI/CD updates, test matrix improvements, and dependency updates, but does not follow the required template format. Restructure the description to follow the repository's template with sections for Description, Type of change, How Has This Been Tested, and Checklist items.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main objective of the PR: updating .NET SDK version to 10.0.x across workflow files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/dotnet-10

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c5d8483 and af7396e.

📒 Files selected for processing (3)
  • .github/workflows/docs.yml (1 hunks)
  • .github/workflows/publish.yml (1 hunks)
  • .github/workflows/test.yml (9 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-07T20:35:41.523Z
Learnt from: CR
Repo: techouse/qs-net PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-10-07T20:35:41.523Z
Learning: Run dotnet restore/build/test from repo root; optionally collect coverage; use dotnet format for formatting

Applied to files:

  • .github/workflows/docs.yml
  • .github/workflows/publish.yml
  • .github/workflows/test.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Consumer smoke (.NET Framework 4.6.1 & 4.8.1 on Windows)
  • GitHub Check: Consumer smoke (net5.0; net6.0; net7.0; net8.0; net9.0; net10.0)
  • GitHub Check: Test 8.0.x on ubuntu-latest
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Analyze (csharp)
🔇 Additional comments (9)
.github/workflows/docs.yml (1)

23-23: Version bump aligns with broader .NET 10.0 migration.

The update to .NET 10.0.x for the documentation workflow is consistent with changes across other workflows (publish.yml, test.yml) and the consumer-smoke project.

.github/workflows/publish.yml (1)

33-33: Version bump to .NET 10.0.x in publish job is correct.

The setup aligns with the broader .NET 10.0 migration and ensures packages are built and published using the latest SDK version.

.github/workflows/test.yml (7)

27-30: Step renamed to improve clarity; version bump to 10.0.x aligns with PR objectives.

The lint job now uses a more descriptive step name ("Setup .NET SDK") and targets .NET 10.0.x, consistent with the broader upgrade across workflows.


59-65: Test matrix now includes .NET 10.0.x alongside 8.0.x and 9.0.x for comprehensive compatibility testing.

This is a well-designed matrix that tests multiple .NET versions. The inclusion of 10.0.x ensures the package works with the latest SDK while maintaining backward compatibility with earlier versions.


145-145: Consumer smoke test job correctly expanded to include net10.0 across setup and target frameworks.

The smoke job now:

  • Installs SDKs for .NET 5.0 through 10.0 (line 153-159)
  • Generates a consumer project targeting all frameworks including net10.0 (line 168)
  • Tests compatibility across the full range of supported runtimes

This aligns with the consumer-smoke.csproj TargetFrameworks update mentioned in the PR context.

Also applies to: 150-150, 153-159, 168-168


208-208: Build and run loops correctly expanded to include net10.0.

Both the "Build consumer" loop (line 211) and "Run smoke" loop (line 228) now iterate through net6.0–net10.0, with net5.0 handled separately as non-blocking (lines 215-224). This is the correct approach given the TargetFrameworks change and the need to maintain net5.0 support while not blocking the workflow if net5.0 has issues.

Also applies to: 211-211, 225-225, 228-228


307-307: Version bump in smoke_netfx job to .NET 10.0.x is correct.

The smoke_netfx job (which tests .NET Framework 4.6.1 & 4.8.1 on Windows) now uses .NET 10.0.x SDK for building, which is necessary to ensure the QsNet package built with .NET 10.0.x can be consumed by .NET Framework targets.


381-384: Coverage job pinned to .NET 10.0.x with version-specific step naming.

The coverage job now explicitly pins to .NET 10.0.x and uses version-specific step naming ("Setup .NET 10 SDK" at line 381 and "Test with coverage (10.0—single run)" at line 389). This ensures deterministic coverage reporting on a single SDK version, which is the correct pattern for CI coverage pipelines. However, this naming differs from the more generic "Setup .NET SDK" used in other jobs. This appears intentional and is acceptable since coverage jobs typically use a stable, pinned version.

Also applies to: 389-389


112-112: No compatibility issues found with Node.js 24 and the QsNet.Comparison/js/qs.js script.

The script's only external dependency is qs@^6.14.0, which is compatible with Node.js 24 (engines: "node": ">=0.6"). The script itself uses only standard Node.js built-ins (fs, path) with no native addons or problematic dependencies. The Node.js version update to 24 is safe.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Nov 16, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.14%. Comparing base (c5d8483) to head (4752635).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #36   +/-   ##
=======================================
  Coverage   98.14%   98.14%           
=======================================
  Files          15       15           
  Lines        1400     1400           
  Branches      396      396           
=======================================
  Hits         1374     1374           
  Misses         26       26           
Flag Coverage Δ
unittests 98.14% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@techouse techouse merged commit 5bc4cdd into main Nov 16, 2025
18 checks passed
@techouse techouse deleted the chore/dotnet-10 branch November 16, 2025 20:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants