Skip to content

ci: multi-target IntegrationTests across net8/net9/net10#73

Merged
daniel3303 merged 1 commit into
masterfrom
chore/multi-target-integration-tests
May 14, 2026
Merged

ci: multi-target IntegrationTests across net8/net9/net10#73
daniel3303 merged 1 commit into
masterfrom
chore/multi-target-integration-tests

Conversation

@daniel3303
Copy link
Copy Markdown
Owner

Summary

  • Fixes the matrix net8/net9 build failures introduced by ci: split into lint + build matrix with warnings-as-errors #66 by addressing the actual root cause: IntegrationTests was net10-only, so the matrix's --framework net8.0/net9.0 build commands tripped on NETSDK1005.
  • More important than the CI green: the library has TFM-conditional package references (Npgsql.EntityFrameworkCore.PostgreSQL 8.0.11 / 9.0.4 / 10.0.1) and TFM-conditional code paths. Before this PR, none of those net8/net9 paths were exercised end-to-end. Now they are.
  • Picks up a C# 14 compiler dependency: several tests use named arguments inside LINQ expression trees, which C# 12/13 reject with CS0853. Pinning <LangVersion>latest</LangVersion> makes the C# 14 compiler available on every TFM. The emitted IL is compatible with net8/net9 runtimes (verified: 69 tests pass on each).

Code changes

  • Equibles.ParadeDB.EntityFrameworkCore.IntegrationTests.csproj:
    • <TargetFramework>net10.0</TargetFramework><TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>.
    • Added <LangVersion>latest</LangVersion> with a one-line comment explaining why.
    • Replaced the unconditional Npgsql.EntityFrameworkCore.PostgreSQL 10.0.1 reference with three TFM-conditional <ItemGroup> blocks (8.0.11 / 9.0.4 / 10.0.1), matching the pattern in the main library csproj.

The CI matrix added in #66 silently skipped IntegrationTests on net8/net9
because the project was net10-only. That meant the library's own net8/net9
TFM-conditional code paths (Npgsql.EntityFrameworkCore.PostgreSQL 8.x/9.x)
went untested end-to-end.

Match the unit Tests project pattern:
  - <TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
  - Conditional package references pinning Npgsql.EFCore to the matching
    8.0.11 / 9.0.4 / 10.0.1 release per TFM (same scheme the library uses).
  - <LangVersion>latest</LangVersion> so the C# 14 compiler is used on
    every TFM — required because several tests use named arguments inside
    LINQ expression trees (a C# 14 feature; net8/net9 default to C# 12/13
    which emit CS0853).

Verified locally: 69 integration tests pass on each TFM.
@daniel3303 daniel3303 merged commit 4e8f71d into master May 14, 2026
@daniel3303 daniel3303 deleted the chore/multi-target-integration-tests branch May 14, 2026 12:36
@codecov
Copy link
Copy Markdown

codecov Bot commented May 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.56%. Comparing base (fc507ce) to head (e2b6593).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #73   +/-   ##
=======================================
  Coverage   99.56%   99.56%           
=======================================
  Files          25       25           
  Lines        1157     1157           
  Branches      128      128           
=======================================
  Hits         1152     1152           
  Misses          1        1           
  Partials        4        4           

☔ 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant