Skip to content

Conversation

@PaulusParssinen
Copy link
Contributor

@PaulusParssinen PaulusParssinen commented Dec 8, 2025

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.

  • Making Tsavorite native device output .slnx would require CMake 4.2.0 so I didn't touch that.

@badrishc
Copy link
Collaborator

badrishc commented Dec 9, 2025

Making Tsavorite native device output .slnx would require CMake 4.2.0 so I didn't touch that.

Maybe we should update CMake to require 4.2.0

@PaulusParssinen PaulusParssinen marked this pull request as ready for review December 11, 2025 16:30
Copilot AI review requested due to automatic review settings December 11, 2025 16:30
Copy link
Contributor

Copilot AI left a 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.sln and Tsavorite.sln to Garnet.slnx and Tsavorite.slnx respectively
  • 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 .slnx files

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
Comment on lines 9 to 10
<File Path=".azure/pipelines/azure-pipelines-tsavorite-codecoverage.yml" />
<File Path=".azure/pipelines/azure-pipelines-tsavorite.yml" />
Copy link

Copilot AI Dec 11, 2025

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.

Suggested change
<File Path=".azure/pipelines/azure-pipelines-tsavorite-codecoverage.yml" />
<File Path=".azure/pipelines/azure-pipelines-tsavorite.yml" />

Copilot uses AI. Check for mistakes.
@PaulusParssinen
Copy link
Contributor Author

PaulusParssinen commented Dec 11, 2025

Maybe we should update CMake to require 4.2.0

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 .slnx CMake generator (cmake .. -G "Visual Studio 2026 18").

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