Skip to content

Commit 94f9e7d

Browse files
Migrate to the new SLNX solution format (#1464)
* Migrate Garnet to .slnx solution format * Revised documentation and .NET build related comments * Rename Tsavorite native device project to avoid confusion * Migrate Tsavorite to .slnx * Update more build related docs to latest tooling * Clean up solution file items --------- Co-authored-by: Tal Zaccai <[email protected]>
1 parent 593e1ad commit 94f9e7d

File tree

16 files changed

+136
-569
lines changed

16 files changed

+136
-569
lines changed

.azure/pipelines/azure-pipelines-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ schedules:
88
- main
99
always: true
1010
variables:
11-
solution: 'Garnet.sln'
11+
solution: 'Garnet.slnx'
1212
RunAzureTests: 'yes'
1313

1414
jobs:

.azure/pipelines/azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
variables:
2-
solution: 'Garnet.sln'
2+
solution: 'Garnet.slnx'
33
RunAzureTests: 'no'
44

55
jobs:

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
# Declare files that will always have CRLF line endings on checkout.
1515
*.sln text eol=crlf
16+
*.slnx text eol=crlf
1617

1718
# Denote all files that are truly binary and should not be modified.
1819
*.png binary

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ body:
3737
label: IDE
3838
description: Which IDE versions did you see the issue on?
3939
placeholder: |
40-
Visual Studio 2022-preview
40+
Visual Studio 2026
4141
- type: textarea
4242
attributes:
4343
label: OS version

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ jobs:
5454
- name: Setup .NET
5555
uses: actions/setup-dotnet@v4
5656
- name: Install dependencies
57-
run: dotnet restore Garnet.sln
57+
run: dotnet restore Garnet.slnx
5858
- name: Check style format
59-
run: dotnet format Garnet.sln --no-restore --verify-no-changes --verbosity diagnostic
59+
run: dotnet format Garnet.slnx --no-restore --verify-no-changes --verbosity diagnostic
6060

6161
format-tsavorite:
6262
name: Format Tsavorite
@@ -69,9 +69,9 @@ jobs:
6969
- name: Setup .NET
7070
uses: actions/setup-dotnet@v4
7171
- name: Install dependencies
72-
run: dotnet restore libs/storage/Tsavorite/cs/Tsavorite.sln
72+
run: dotnet restore libs/storage/Tsavorite/cs/Tsavorite.slnx
7373
- name: Check style format
74-
run: dotnet format libs/storage/Tsavorite/cs/Tsavorite.sln --no-restore --verify-no-changes --verbosity diagnostic
74+
run: dotnet format libs/storage/Tsavorite/cs/Tsavorite.slnx --no-restore --verify-no-changes --verbosity diagnostic
7575

7676
# Job to build and test Garnet code
7777
build-test-garnet:

Garnet.sln

Lines changed: 0 additions & 413 deletions
This file was deleted.

Garnet.slnx

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<Solution>
2+
<Folder Name="/.azure/pipelines/">
3+
<File Path=".azure/pipelines/azure-pipelines-compliance-policheck.yml" />
4+
<File Path=".azure/pipelines/azure-pipelines-compliance.yml" />
5+
<File Path=".azure/pipelines/azure-pipelines-external-release.yml" />
6+
<File Path=".azure/pipelines/azure-pipelines-internal-release.yml" />
7+
<File Path=".azure/pipelines/azure-pipelines-mirror.yml" />
8+
<File Path=".azure/pipelines/azure-pipelines-nightly.yml" />
9+
<File Path=".azure/pipelines/azure-pipelines-performance.yml" />
10+
<File Path=".azure/pipelines/azure-pipelines.yml" />
11+
<File Path=".azure/pipelines/CodeCoverage.runsettings" />
12+
<File Path=".azure/pipelines/credscan-exclusion.json" />
13+
<File Path=".azure/pipelines/policheck-exclusion.xml" />
14+
</Folder>
15+
<Folder Name="/benchmark/">
16+
<Project Path="benchmark/BDN.benchmark/BDN.benchmark.csproj" />
17+
<Project Path="benchmark/Device.benchmark/Device.benchmark.csproj" />
18+
<Project Path="benchmark/Resp.benchmark/Resp.benchmark.csproj" />
19+
</Folder>
20+
<Folder Name="/hosting/Windows/">
21+
<Project Path="hosting/Windows/Garnet.worker/Garnet.worker.csproj" />
22+
</Folder>
23+
<Folder Name="/libs/">
24+
<Project Path="libs/client/Garnet.client.csproj" />
25+
<Project Path="libs/cluster/Garnet.cluster.csproj" />
26+
<Project Path="libs/common/Garnet.common.csproj" />
27+
<Project Path="libs/host/Garnet.host.csproj" />
28+
<Project Path="libs/resources/Garnet.resources.csproj" />
29+
<Project Path="libs/server/Garnet.server.csproj" />
30+
</Folder>
31+
<Folder Name="/libs/Tsavorite/">
32+
<Project Path="libs/storage/Tsavorite/cs/src/core/Tsavorite.core.csproj">
33+
<Platform Solution="*|x64" Project="x64" />
34+
</Project>
35+
<Project Path="libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/Tsavorite.devices.AzureStorageDevice.csproj">
36+
<Platform Solution="*|x64" Project="x64" />
37+
</Project>
38+
</Folder>
39+
<Folder Name="/main/">
40+
<Project Path="main/GarnetServer/GarnetServer.csproj" />
41+
</Folder>
42+
<Folder Name="/metrics/">
43+
<Project Path="metrics/HdrHistogram/HdrHistogram.csproj" />
44+
</Folder>
45+
<Folder Name="/modules/">
46+
<Project Path="modules/GarnetJSON/GarnetJSON.csproj" />
47+
</Folder>
48+
<Folder Name="/playground/">
49+
<Project Path="modules/NoOpModule/NoOpModule.csproj" />
50+
<Project Path="playground/Bitmap/Bitmap.csproj" />
51+
<Project Path="playground/ClusterStress/ClusterStress.csproj" />
52+
<Project Path="playground/CommandInfoUpdater/CommandInfoUpdater.csproj" />
53+
<Project Path="playground/Embedded.perftest/Embedded.perftest.csproj" />
54+
<Project Path="playground/GarnetClientStress/GarnetClientStress.csproj" />
55+
<Project Path="playground/MigrateBench/MigrateBench.csproj" />
56+
<Project Path="playground/SampleModule/SampleModule.csproj" />
57+
<Project Path="playground/TstRunner/TstRunner.csproj" />
58+
</Folder>
59+
<Folder Name="/samples/">
60+
<Project Path="samples/ETag/ETag.csproj" />
61+
<Project Path="samples/GarnetClientSample/GarnetClientSample.csproj" />
62+
<Project Path="samples/MetricsMonitor/MetricsMonitor.csproj" />
63+
</Folder>
64+
<Folder Name="/Solution Items/">
65+
<File Path=".azure/pipelines/extract_version.ps1" />
66+
<File Path=".editorconfig" />
67+
<File Path=".github/workflows/ci.yml" />
68+
<File Path=".github/workflows/docker.yml" />
69+
<File Path="Directory.Build.props" />
70+
<File Path="Directory.Packages.props" />
71+
<File Path="docker-compose.yml" />
72+
<File Path="Dockerfile" />
73+
<File Path="Dockerfile.alpine" />
74+
<File Path="Dockerfile.cbl-mariner" />
75+
<File Path="Dockerfile.chiseled" />
76+
<File Path="Dockerfile.nanoserver" />
77+
<File Path="Dockerfile.ubuntu" />
78+
<File Path="Version.props" />
79+
</Folder>
80+
<Folder Name="/test/">
81+
<Project Path="test/Garnet.fuzz/Garnet.fuzz.csproj" />
82+
<Project Path="test/Garnet.test.cluster/Garnet.test.cluster.csproj" />
83+
<Project Path="test/Garnet.test/Garnet.test.csproj" />
84+
</Folder>
85+
</Solution>

benchmark/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ You can list all available benchmarks using `--list flat` or `--list tree`, e.g.
2020
dotnet run -c Release -f net8.0 --list flat
2121
```
2222

23-
To run specific benchmarks, you can use `--filter`. For example, to run all RESP-protocol write benchmarks using the default configuration, which will run the benchmarks using both .NET 6 and .NET 8 runtimes (with the dynamic PGO disabled):
23+
To run specific benchmarks, you can use `--filter`. For example, to run all RESP-protocol write benchmarks using the default configuration, which will run the benchmarks using all .NET target runtimes (with the dynamic PGO disabled):
2424

2525
```
2626
dotnet run -c Release -f net8.0 --filter *RespIntegerWriteBenchmarks*

libs/storage/Tsavorite/cc/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.2.2)
22

33
set(CMAKE_CXX_STANDARD 14)
44

5-
project(Garnet)
5+
project(Tsavorite)
66

77
OPTION(USE_URING "Enable io_uring based IO handler" OFF)
88

libs/storage/Tsavorite/cc/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Garnet Native Device (C++)
1+
# Tsavorite Native Device (C++)
22

33
We use CMake to build the native device (optionally used on Linux). To build, create
44
one or more build directories and use CMake to set up build scripts for your target OS.
@@ -22,8 +22,8 @@ cmake .. -G "Visual Studio 17 2022"
2222
```
2323

2424
That will create build scripts inside your new "build" directory, including
25-
a "Garnet.sln" file that you can use inside Visual Studio. CMake will add several
26-
build profiles to Garnet.sln, including Debug/x64 and Release/x64.
25+
a `Tsavorite.sln` file that you can use inside Visual Studio. CMake will add several
26+
build profiles to `Tsavorite.sln`, including Debug/x64 and Release/x64.
2727

2828
### Building on Linux
2929

0 commit comments

Comments
 (0)