Skip to content

Commit 7924a31

Browse files
authored
refactor: adopt central package management (#173)
## Summary - Add `Directory.Packages.props` at the repo root with `ManagePackageVersionsCentrally` and a `PackageVersion` entry for every nuget dependency. - Strip the `Version=` attribute from every `PackageReference` across all 8 csproj files; asset metadata (`IncludeAssets` / `PrivateAssets` / `Condition`) is preserved. - Single place to update any package version; eliminates the existing Avalonia version drift where `Avalonia.AvaloniaEdit` / `AvaloniaEdit.TextMate` were pinned at 11.1.0 while the rest of the Avalonia stack was at 11.2.4. - Dependabot's NuGet updater has first-class support for `Directory.Packages.props`, so future bumps touch one file instead of several.
1 parent 12c2153 commit 7924a31

8 files changed

Lines changed: 70 additions & 39 deletions

File tree

Directory.Packages.props

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<Project>
2+
<PropertyGroup>
3+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
4+
</PropertyGroup>
5+
6+
<ItemGroup>
7+
<PackageVersion Include="Avalonia" Version="11.2.4" />
8+
<PackageVersion Include="Avalonia.Desktop" Version="11.2.4" />
9+
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.2.4" />
10+
<PackageVersion Include="Avalonia.Fonts.Inter" Version="11.2.4" />
11+
<PackageVersion Include="Avalonia.Diagnostics" Version="11.2.4" />
12+
<PackageVersion Include="Avalonia.Xaml.Interactions" Version="11.2.0.8" />
13+
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.1.0" />
14+
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
15+
<PackageVersion Include="TextMateSharp.Grammars" Version="1.0.66" />
16+
<PackageVersion Include="FluentAvaloniaUI" Version="2.2.0" />
17+
18+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
19+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.7" />
20+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" />
21+
22+
<PackageVersion Include="NLog" Version="5.4.0" />
23+
<PackageVersion Include="NLog.Extensions.Logging" Version="5.4.0" />
24+
25+
<PackageVersion Include="MinVer" Version="6.0.0" />
26+
27+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
28+
<PackageVersion Include="xunit" Version="2.4.2" />
29+
<PackageVersion Include="xunit.runner.visualstudio" Version="2.4.5" />
30+
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
31+
</ItemGroup>
32+
</Project>

src/SharpFM.Plugin.Sample/SharpFM.Plugin.Sample.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Avalonia" Version="11.2.4" />
20-
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.4" />
21-
<PackageReference Include="FluentAvaloniaUI" Version="2.2.0" />
22-
<PackageReference Include="MinVer" Version="6.0.0">
19+
<PackageReference Include="Avalonia" />
20+
<PackageReference Include="Avalonia.Themes.Fluent" />
21+
<PackageReference Include="FluentAvaloniaUI" />
22+
<PackageReference Include="MinVer">
2323
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2424
<PrivateAssets>all</PrivateAssets>
2525
</PackageReference>

src/SharpFM.Plugin.UI/SharpFM.Plugin.UI.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Avalonia" Version="11.2.4" />
20-
<PackageReference Include="MinVer" Version="6.0.0">
19+
<PackageReference Include="Avalonia" />
20+
<PackageReference Include="MinVer">
2121
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2222
<PrivateAssets>all</PrivateAssets>
2323
</PackageReference>

src/SharpFM.Plugin.XmlViewer/SharpFM.Plugin.XmlViewer.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Avalonia" Version="11.2.4" />
20-
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.4" />
21-
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.1.0" />
22-
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
23-
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.1.0" />
24-
<PackageReference Include="FluentAvaloniaUI" Version="2.2.0" />
25-
<PackageReference Include="MinVer" Version="6.0.0">
19+
<PackageReference Include="Avalonia" />
20+
<PackageReference Include="Avalonia.Themes.Fluent" />
21+
<PackageReference Include="Avalonia.AvaloniaEdit" />
22+
<PackageReference Include="TextMateSharp.Grammars" />
23+
<PackageReference Include="AvaloniaEdit.TextMate" />
24+
<PackageReference Include="FluentAvaloniaUI" />
25+
<PackageReference Include="MinVer">
2626
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2727
<PrivateAssets>all</PrivateAssets>
2828
</PackageReference>

src/SharpFM.Plugin/SharpFM.Plugin.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" />
20-
<PackageReference Include="MinVer" Version="6.0.0">
19+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
20+
<PackageReference Include="MinVer">
2121
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2222
<PrivateAssets>all</PrivateAssets>
2323
</PackageReference>

src/SharpFM/SharpFM.csproj

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,30 +54,29 @@
5454
</ItemGroup>
5555

5656
<ItemGroup>
57-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
57+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
5858

59-
<PackageReference Include="Avalonia" Version="11.2.4" />
60-
<PackageReference Include="Avalonia.Desktop" Version="11.2.4" />
61-
<PackageReference Include="Avalonia.Xaml.Interactions" Version="11.2.0.8" />
62-
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.4" />
63-
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.4" />
64-
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.1.0" />
65-
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
66-
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.1.0" />
59+
<PackageReference Include="Avalonia" />
60+
<PackageReference Include="Avalonia.Desktop" />
61+
<PackageReference Include="Avalonia.Xaml.Interactions" />
62+
<PackageReference Include="Avalonia.Themes.Fluent" />
63+
<PackageReference Include="Avalonia.Fonts.Inter" />
64+
<PackageReference Include="Avalonia.AvaloniaEdit" />
65+
<PackageReference Include="TextMateSharp.Grammars" />
66+
<PackageReference Include="AvaloniaEdit.TextMate" />
6767
<!--Condition
6868
below is needed to remove Avalonia.Diagnostics package from build output in Release
6969
configuration.-->
70-
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics"
71-
Version="11.2.4" />
72-
<PackageReference Include="FluentAvaloniaUI" Version="2.2.0" />
70+
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" />
71+
<PackageReference Include="FluentAvaloniaUI" />
7372

74-
<PackageReference Include="MinVer" Version="6.0.0">
73+
<PackageReference Include="MinVer">
7574
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
7675
<PrivateAssets>all</PrivateAssets>
7776
</PackageReference>
7877

79-
<PackageReference Include="NLog" Version="5.4.0" />
80-
<PackageReference Include="NLog.Extensions.Logging" Version="5.4.0" />
78+
<PackageReference Include="NLog" />
79+
<PackageReference Include="NLog.Extensions.Logging" />
8180

8281
<None Update="nlog.config" CopyToOutputDirectory="Always" />
8382
</ItemGroup>

tests/SharpFM.Plugin.Tests/SharpFM.Plugin.Tests.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
14-
<PackageReference Include="xunit" Version="2.4.2" />
15-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" />
14+
<PackageReference Include="xunit" />
15+
<PackageReference Include="xunit.runner.visualstudio">
1616
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1717
<PrivateAssets>all</PrivateAssets>
1818
</PackageReference>
19-
<PackageReference Include="coverlet.collector" Version="6.0.0">
19+
<PackageReference Include="coverlet.collector">
2020
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2121
<PrivateAssets>all</PrivateAssets>
2222
</PackageReference>
23-
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.7" />
23+
<PackageReference Include="Microsoft.Extensions.Logging" />
2424
</ItemGroup>
2525

2626
<ItemGroup>

tests/SharpFM.Tests/SharpFM.Tests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
14-
<PackageReference Include="xunit" Version="2.4.2" />
15-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" />
14+
<PackageReference Include="xunit" />
15+
<PackageReference Include="xunit.runner.visualstudio">
1616
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1717
<PrivateAssets>all</PrivateAssets>
1818
</PackageReference>
19-
<PackageReference Include="coverlet.collector" Version="6.0.0">
19+
<PackageReference Include="coverlet.collector">
2020
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2121
<PrivateAssets>all</PrivateAssets>
2222
</PackageReference>

0 commit comments

Comments
 (0)