Skip to content

chore: retarget to net10.0 and upgrade EF Core family to 10.0.13 - #194

Merged
cwchanap merged 2 commits into
mainfrom
chore/net10-retarget
Oct 19, 2026
Merged

cwchanap merged 2 commits into
mainfrom
chore/net10-retarget

Conversation

@cwchanap

@cwchanap cwchanap commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Re-submission of #192, which was reverted from main at maintainer request (main reset to fb778b93). Same two commits, presented as a PR for review instead of landing directly.

Two commits, in order:

1. Retarget to net10.0

  • All 11 projects: net8.0 → net10.0 (Game.Windows net10.0-windows, E2E net10.0-windows7.0)
  • CI: dotnet-version: '8.0.x' → '10.0.x' (build-and-test ×4, release ×2), two hardcoded bin/Debug/net8.0 MMTools paths updated
  • Motivation: .NET 8 LTS ends Nov 2026, and EF Core 10 is net10.0-only (the reason ex-PR Bump Microsoft.Data.Sqlite from 9.0.20 to 10.0.12 #174 was deferred)

2. EF Core family 9.0.20 → 10.0.13

  • Microsoft.EntityFrameworkCore.Sqlite, Microsoft.EntityFrameworkCore.Tools, Microsoft.Data.Sqlite in both Game csprojs — same-major pairing throughout, finally taking what Bump Microsoft.Data.Sqlite from 9.0.20 to 10.0.12 #174 wanted
  • dependabot.yml: ignore rule for Microsoft.Data.Sqlite 10.x removed

Verification (from the identical tree that briefly sat on main as #192)

  • Local (macOS, .NET SDK 10.0.100): Game.Mac build 0 errors; 8722 Mac tests pass (twice: retarget-only and with EF Core 10 — includes SongDatabaseService/SqliteConfigStore coverage); MCP.Tests 3/3; VideoRecorder.Tests 135/135; Automation.Tests 66/66
  • CI on chore: retarget to net10.0 and upgrade EF Core family to 10.0.13 #192 (same tree): Windows full suite, macOS, gameplay E2E — the Windows game boots and plays on .NET 10 — codecov, all green
  • Live sanity run on macOS: launched the net10.0/EF10 build, drove Title → SongSelect → Performance via the dtxmania MCP tools (audio 12/12 prepared, 973-note chart, song clock advancing), clean abort and shutdown

Known notes

  • RecorderPlatformPreflight.cs doc comments and a diagnostics-only net8.0 fallback string are stale but harmless (fallback fires only when the csproj is unreadable, in which case the gate fails anyway)
  • release.yml SDK bump is not exercised by PR CI (release is manual dispatch); first release run will prove it

Devin Review

Summary by CodeRabbit

  • Platform & Compatibility
    • The application, supporting tools, and automated tests now target .NET 10 on Windows and macOS.
    • Build and release workflows have been updated to use .NET 10, including macOS FFmpeg checks.
  • Dependency Updates
    • SQLite and Entity Framework Core packages have been updated to version 10.0.13.
    • Dependabot can now propose Microsoft.Data.Sqlite 10.x updates.

net8.0 LTS ends Nov 2026; net10.0 is required for the EF Core 10 upgrade.
CI dotnet-version pins and hardcoded net8.0 bin paths updated with it.
Unblocks the deferred Microsoft.Data.Sqlite 10 bump (ex-PR #174) now that
the Game targets net10.0; removes the dependabot ignore rule.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T00:07:03.988853Z 8ea07ac PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: cwchanap/DTXManiaCX/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f6ac7e9d-c867-4174-b0b8-d4bcb2d13082
📥 Commits

Reviewing files that changed from the base of the PR and between fb778b9 and 8ea07ac.

📒 Files selected for processing: 14
  • .github/dependabot.yml
  • .github/workflows/build-and-test.yml
  • .github/workflows/release.yml
  • DTXMania.Automation.Tests/DTXMania.Automation.Tests.csproj
  • DTXMania.Automation/DTXMania.Automation.csproj
  • DTXMania.E2E/DTXMania.E2E.csproj
  • DTXMania.Game/DTXMania.Game.Mac.csproj
  • DTXMania.Game/DTXMania.Game.Windows.csproj
  • DTXMania.Test/DTXMania.Test.Mac.csproj
  • DTXMania.Test/DTXMania.Test.csproj
  • DTXMania.VideoRecorder.Tests/DTXMania.VideoRecorder.Tests.csproj
  • DTXMania.VideoRecorder/DTXMania.VideoRecorder.csproj
  • MCP.Tests/MCP.Tests.csproj
  • MCP/MCP.csproj
💤 Files with no reviewable changes: 1
  • .github/dependabot.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

Projects and CI workflows move from .NET 8 to .NET 10. SQLite-related package versions change to 10.0.13, and the Dependabot ignore rule for Microsoft.Data.Sqlite 10.x is removed.

Changes: .NET 10 Upgrade

Layer / File(s) Summary
Project targets and SQLite packages
DTXMania.Automation*/*.csproj, DTXMania.E2E/*.csproj, DTXMania.Game/*.csproj, DTXMania.Test/*.csproj, DTXMania.VideoRecorder*/*.csproj, MCP*/*.csproj, .github/dependabot.yml
Projects target .NET 10. The Windows and macOS game projects update SQLite-related packages from 9.0.20 to 10.0.13. Dependabot no longer ignores Microsoft.Data.Sqlite 10.x versions.
Build and release SDK alignment
.github/workflows/build-and-test.yml, .github/workflows/release.yml
Build, test, gameplay E2E, artifact, and installer jobs use .NET 10. macOS FFmpeg checks use net10.0 output paths.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 8ea07

No actionable issue is established for this upgrade; it is mergeable after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary changes: retargeting projects to .NET 10 and upgrading the EF Core family to 10.0.13.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (13 skipped: 13 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Devin Review

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Automation tests retain a .NET 8 runtime dependency

Retargeting this suite leaves CreateChildFixture generating net8.0 children. CI explicitly installs only .NET 10, so test execution still depends on a separately available .NET 8 runtime.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@cwchanap
cwchanap merged commit dcf951e into main Oct 19, 2026
12 checks passed
@cwchanap
cwchanap deleted the chore/net10-retarget branch October 19, 2026 04:12
cwchanap added a commit that referenced this pull request Oct 19, 2026
Maintainer decision: keep net8.0 for now. Retains #190 and #193 bumps,
which were CI-proven against net8. Restores the Microsoft.Data.Sqlite
ignore rule so dependabot stays quiet on the EF/Sqlite 10.x front.
@cwchanap

Copy link
Copy Markdown
Owner Author

Review of Devin's findings (assessment, since main reverted to net8.0 and both findings are net10-scoped):

  1. Automation child fixture hardcodes net8.0 (GameProcessDriverTests.cs:452 TFM + :516 bin path) — valid for the net10 re-land. Devin's failure scenario did not occur: CI was green because runner images still carry the .NET 8 SDK/runtime alongside the pinned 10.0.x. Latent break once images drop .NET 8, and meanwhile the test silently exercises a net8 child. Fix when re-landing: update both lines (or derive TFM from the test assembly).

  2. docs/video-recorder/macos-obs-setup.md references net8.0 paths (6 spots) — valid; the retarget sweep missed .md docs. Currently correct again on net8 main. Fix when re-landing.

Both are captured for the eventual git revert 0639624f + these two follow-ups.

cwchanap added a commit that referenced this pull request Oct 20, 2026
Re-lands #194 (inverted 0639624) for review. Follow-up commits add
the Devin-review fixes: automation child fixture TFM and stale net8.0
docs.
cwchanap added a commit that referenced this pull request Oct 20, 2026
Devin-review findings on #194: GameProcessDriverTests child fixture and
bin paths, VideoRecorder ProgramTests fixture, the RecorderPlatformPreflight
fallback + comments and its test matrix, the macOS OBS setup guide, and the
CLAUDE.md repo instructions. Historical plans/specs/verification records
intentionally left as written.
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