-
Notifications
You must be signed in to change notification settings - Fork 625
Migrate to the new SLNX solution format #1464
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
* Revised documentation and .NET build related comments
Maybe we should update CMake to require 4.2.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request migrates the repository from the legacy .sln solution format to the modern .slnx (XML-based) solution format for both the main Garnet solution and the Tsavorite subsolution. The migration updates all build scripts, CI/CD pipelines, and documentation to reference the new .slnx files.
Key changes include:
- Complete migration from
Garnet.slnandTsavorite.slntoGarnet.slnxandTsavorite.slnxrespectively - Updated build documentation and developer onboarding guides to reference the new solution format
- Updated all CI/CD workflows (GitHub Actions and Azure Pipelines) to use
.slnxfiles
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Garnet.slnx | New XML-based solution file replacing Garnet.sln with all projects organized into logical folders |
| Garnet.sln | Removed legacy solution file |
| libs/storage/Tsavorite/cs/Tsavorite.slnx | New Tsavorite solution file with benchmark, core, devices, and test projects |
| libs/storage/Tsavorite/cs/Tsavorite.sln | Removed legacy Tsavorite solution file |
| website/docs/getting-started/build.md | Updated build instructions to reference Garnet.slnx and updated .NET version requirements |
| website/docs/dev/onboarding.md | Updated header to reference project structure instead of specific solution file |
| libs/storage/Tsavorite/cc/README.md | Updated C++ native device documentation to correct project name references |
| libs/storage/Tsavorite/cc/CMakeLists.txt | Updated CMake project name from "Garnet" to "Tsavorite" |
| libs/storage/Tsavorite/cs/benchmark/YCSB.benchmark/scripts/run_benchmark.ps1 | Updated PowerShell script to build Tsavorite.slnx |
| .github/workflows/ci.yml | Updated CI workflow to restore and format .slnx files |
| .azure/pipelines/azure-pipelines.yml | Updated solution variable to reference Garnet.slnx |
| .azure/pipelines/azure-pipelines-nightly.yml | Updated solution variable for nightly builds |
| .gitattributes | Added .slnx file extension with CRLF line endings |
| test/BDNPerfTests/BDN_Benchmark_Config.json | Minor comment update for clarity (.NET 8.0 and Net 9.0 to .NET 8 and 9) |
| benchmark/README.md | Updated documentation to reference all .NET target runtimes generically |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Garnet.slnx
Outdated
| <File Path=".azure/pipelines/azure-pipelines-tsavorite-codecoverage.yml" /> | ||
| <File Path=".azure/pipelines/azure-pipelines-tsavorite.yml" /> |
Copilot
AI
Dec 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The solution file references two pipeline files that don't exist in the repository: "azure-pipelines-tsavorite-codecoverage.yml" (line 9) and "azure-pipelines-tsavorite.yml" (line 10). These file references should either be removed from the solution file, or the corresponding pipeline files should be added to the repository if they were mistakenly omitted.
| <File Path=".azure/pipelines/azure-pipelines-tsavorite-codecoverage.yml" /> | |
| <File Path=".azure/pipelines/azure-pipelines-tsavorite.yml" /> |
I was thinking about keeping the minimum requirement at 3.2.2 until VS Build Tools includes >= CMake 4.2. Like noted in the Tsavorite native device README at the bottom, nothing should prevent anyone from using the |
* Clean up solution file items
Most IDEs and build tooling should have had support now for a while. Mostly curious as how the NuGet packaging and ADO pipelines behave. This would just be a nice QoL upgrade so if this turns out not to be straightforward or takes too much bandwith from other work to validate I'm good with pushing it to future.
.slnxwould require CMake 4.2.0 so I didn't touch that.