Skip to content

Fixes #5412. Migrate from .sln to .slnx and remove redundant solution files#5413

Merged
tig merged 3 commits into
developfrom
tig/migrate-sln-to-slnx
May 25, 2026
Merged

Fixes #5412. Migrate from .sln to .slnx and remove redundant solution files#5413
tig merged 3 commits into
developfrom
tig/migrate-sln-to-slnx

Conversation

@tig
Copy link
Copy Markdown
Member

@tig tig commented May 25, 2026

Summary

Migrates the repository from the legacy .sln format to the modern .slnx (XML-based) format and removes 4 redundant solution files.

Changes

Action File Rationale
Converted Terminal.slnTerminal.slnx 520 lines of GUIDs → 123 lines of clean XML
Removed Terminal.Gui/Terminal.Gui.sln Single-project duplicate; dotnet build *.csproj suffices
Removed Tests/UnitTests.Legacy/UnitTests.Legacy.sln Single-project duplicate; CI uses --project
Removed Examples/FSharpExample/FSharpExample.sln Projects already in main solution
Removed docfx/scripts/OutputView/OutputView.sln Already in main solution

Why .slnx?

  • Human-readable — Clean XML instead of opaque GUIDs and repetitive platform blocks
  • Merge-friendly — Structured format dramatically reduces merge conflicts
  • No GUIDs — Projects identified by path, not fragile GUIDs
  • Implicit platforms — Eliminated ~300 lines of ProjectConfigurationPlatforms that all just mapped to Any CPU
  • Built-in migrationdotnet sln migrate made this a one-command conversion
  • Full tooling support — VS 2022 17.10+, Rider 2024.2+, VS Code, and dotnet CLI all support .slnx

Additional cleanup

Removed stale x64 and x86 platform configurations from the solution — every project mapped them to Any CPU anyway.

Verification

  • dotnet restore Terminal.slnx — succeeds
  • dotnet build Terminal.slnx — 0 errors
  • dotnet test — tests pass

Closes #5412

… files

- Convert Terminal.sln (520 lines) to Terminal.slnx (~125 lines of clean XML)
- Remove stale x64/x86 platform configurations (all mapped to Any CPU)
- Remove redundant single-project solutions:
  - Terminal.Gui/Terminal.Gui.sln
  - Tests/UnitTests.Legacy/UnitTests.Legacy.sln
  - Examples/FSharpExample/FSharpExample.sln
  - docfx/scripts/OutputView/OutputView.sln

The .slnx format (supported since .NET 9 SDK) eliminates opaque GUIDs,
reduces merge conflicts, and makes the solution human-readable XML.
All projects are already in the main solution; the removed files were
redundant subsets not used by CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 84c3e4de6f

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Terminal.sln
- Update Scripts/CleanupAgent.ps1 (4 references)
- Update Scripts/Terminal.Gui.PowerShell.Core.psm1
- Update .claude/agents/cleanup-agent.md
- Update CONTRIBUTING.md
- Update docfx/docs/getting-started.md
- Update Examples/UICatalog/Scenarios/Notepad.cs (repo root detection)
- Remove obsolete .slnf files (NoSamples.slnf, Release.slnf)
  These referenced the old Terminal.sln and contained stale project paths

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tig tig requested review from BDisp and tznind May 25, 2026 21:21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

Migrate from .sln to .slnx and remove redundant solution files

2 participants