Skip to content

Conversation

@amotl
Copy link
Member

@amotl amotl commented Nov 29, 2025

What the title says.

@coderabbitai
Copy link

coderabbitai bot commented Nov 29, 2025

Walkthrough

Updates the C# Entity Framework Core GitHub Actions workflow to replace include-based constraints with exclude-based constraints for Npgsql 10.x testing. Excludes .NET 8.x and 9.x from the 10.* Npgsql row, introduces prerelease handling, and adjusts the test matrix control flow accordingly.

Changes

Cohort / File(s) Summary
CI Workflow Matrix Configuration
.github/workflows/lang-csharp-efcore.yml
Switches Npgsql 10.x test matrix from include-based to exclude-based constraints; excludes .NET 8.x and 9.x from 10.* Npgsql variants; introduces prerelease handling; updates comment to clarify that Npgsql.EntityFrameworkCore.PostgreSQL 10.0.0+ requires .NET 10

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify that the exclude-based constraint logic correctly targets .NET 8.x and 9.x only for the 10.* Npgsql row
  • Confirm prerelease handling is properly integrated into the matrix configuration
  • Ensure the comment accurately reflects the minimum .NET requirement for Npgsql 10.0.0+
  • Check that the matrix reordering doesn't unintentionally skip or duplicate test combinations

Possibly related PRs

Suggested reviewers

  • seut
  • matriv

Poem

🐰 A matrix we shuffle with exclude instead,

Npgsql ten and dotnet threads spread,

Eight and nine now sit this one out,

Prerelease joins the testing route! 🎯

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: fixing the test matrix configuration for EF Core integration tests in the CI workflow.
Description check ✅ Passed The description is minimal but relates to the changeset by referencing the title, which describes fixing the test matrix for EF Core integration tests.
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 fix-ci-efcore

📜 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 eaa2f9c and f3ee0de.

📒 Files selected for processing (1)
  • .github/workflows/lang-csharp-efcore.yml (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: amotl
Repo: crate/cratedb-examples PR: 1257
File: .github/workflows/lang-csharp-npgsql.yml:85-100
Timestamp: 2025-11-15T16:07:11.721Z
Learning: In the cratedb-examples repository CI workflows for .NET/Npgsql testing, conditional branches in test scripts (such as for "latest" versions) are intentionally kept even when not currently in the matrix, to allow easy toggling on/off by modifying the matrix values without changing the script logic.
📚 Learning: 2025-11-15T16:07:11.721Z
Learnt from: amotl
Repo: crate/cratedb-examples PR: 1257
File: .github/workflows/lang-csharp-npgsql.yml:85-100
Timestamp: 2025-11-15T16:07:11.721Z
Learning: In the cratedb-examples repository CI workflows for .NET/Npgsql testing, conditional branches in test scripts (such as for "latest" versions) are intentionally kept even when not currently in the matrix, to allow easy toggling on/off by modifying the matrix values without changing the script logic.

Applied to files:

  • .github/workflows/lang-csharp-efcore.yml
🔇 Additional comments (3)
.github/workflows/lang-csharp-efcore.yml (3)

52-66: ✓ Well-structured matrix expansion with sound constraint strategy.

The shift from include- to exclude-based constraints is cleaner and more maintainable. The four exclusions correctly prevent incompatible .NET 8.x/9.x combinations from being paired with Npgsql 10.* and prerelease versions, while allowing .NET 10.x to test against all variants.

The matrix will execute 8 test combinations:

  • .NET 8.x and 9.x with Npgsql 8.* and 9.* (4 combos)
  • .NET 10.x with all Npgsql versions (4 combos)

The comment at line 57 clearly explains the constraint rationale.


105-111: Prerelease handling is properly integrated.

The test script already includes conditional logic for "prerelease" (line 105–106), so the new matrix entry will be handled correctly. The "latest" branch (line 107) remains present even though not in the current matrix—this is intentional per the learnings, allowing easy toggling via matrix changes without modifying script logic.


52-66: Based on my verification, I can now provide the rewritten review comment. The web search confirms that .NET 10.x is backward compatible with packages targeting older .NET frameworks (net8.0, net9.0). The workflow's current exclusion strategy is correct and already addresses the actual compatibility constraint.


The workflow exclusions are correct; .NET 10.x is fully compatible with Npgsql 8. and 9. versions.**

.NET 10.x maintains backward compatibility with packages targeting net8.0 and net9.0 frameworks. Npgsql.EntityFrameworkCore.PostgreSQL 8.x and 9.x target these frameworks, so they will run on .NET 10.x without issues. The existing exclusions—preventing .NET 8.x and 9.x from testing with Npgsql 10.*—are appropriate since Npgsql 10 requires .NET 10. No additional exclusions are needed.


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.

@amotl amotl marked this pull request as ready for review November 29, 2025 20:26
@amotl amotl merged commit 55e946a into main Nov 29, 2025
9 checks passed
@amotl amotl deleted the fix-ci-efcore branch November 29, 2025 21:06
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.

2 participants