From db2998cc09449bf8483faf152f36673304986d7f Mon Sep 17 00:00:00 2001 From: Matt Kotsenas Date: Wed, 28 Aug 2024 19:29:42 -0700 Subject: [PATCH 1/3] Update required SDK to .NET 8+ --- Directory.Build.props | 1 - .../DotNet.ReproducibleBuilds.csproj | 7 ------- .../DotNet.ReproducibleBuilds.targets | 13 ++----------- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 0746ad4..5094654 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -10,7 +10,6 @@ $(Build_ArtifactStagingDirectory)\packages\ $(MSBuildThisFileDirectory)packages\ - 8.0.0 3.6.133 diff --git a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.csproj b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.csproj index 230b215..a1d8efc 100644 --- a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.csproj +++ b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.csproj @@ -11,13 +11,6 @@ Enables reproducible build settings - - - - - - - diff --git a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets index 0e7acc3..cedc0f3 100644 --- a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets +++ b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets @@ -2,15 +2,6 @@ true - - - true - - - true @@ -43,13 +34,13 @@ - <_ReproducibleBuildsMSBuildMinVersion>16.10.0 + <_ReproducibleBuildsMSBuildMinVersion>17.8.0 + Text = "Reproducible builds require MSBuild '$(_ReproducibleBuildsMSBuildMinVersion)' or later. This project is using '$(MSBuildVersion)'. Use .NET SDK 8.0.100 or VS 17.8 or later." /> \ No newline at end of file From 40a699868eb77f109295ce330854ac4bd0ee8538 Mon Sep 17 00:00:00 2001 From: Matt Kotsenas Date: Fri, 30 Aug 2024 18:21:16 -0700 Subject: [PATCH 2/3] Add unit tests --- .../DotNet.ReproducibleBuilds.targets | 8 +++--- .../MinimumVersionTests.cs | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 tests/DotNet.ReproducibleBuilds.Tests/MinimumVersionTests.cs diff --git a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets index cedc0f3..7f501da 100644 --- a/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets +++ b/src/DotNet.ReproducibleBuilds/DotNet.ReproducibleBuilds.targets @@ -35,12 +35,12 @@ <_ReproducibleBuildsMSBuildMinVersion>17.8.0 + <_ReproducibleBuildsMSBuildVersion>$(MSBuildVersion) - + Condition="$([MSBuild]::VersionLessThan($(_ReproducibleBuildsMSBuildVersion), $(_ReproducibleBuildsMSBuildMinVersion)))" + BeforeTargets="ResolveAssemblyReferences;Build;Rebuild"> + \ No newline at end of file diff --git a/tests/DotNet.ReproducibleBuilds.Tests/MinimumVersionTests.cs b/tests/DotNet.ReproducibleBuilds.Tests/MinimumVersionTests.cs new file mode 100644 index 0000000..964dba1 --- /dev/null +++ b/tests/DotNet.ReproducibleBuilds.Tests/MinimumVersionTests.cs @@ -0,0 +1,26 @@ +using FluentAssertions; +using Microsoft.Build.Utilities.ProjectCreation; + +namespace DotNet.ReproducibleBuilds.Tests; + +public class MinimumVersionTests : TestBase +{ + [Theory] + [InlineData("17.7.0", false)] + [InlineData("17.8.0", true)] + [InlineData("17.9.0", true)] + public void BelowMinimumVersionEmitsWarning(string msbuildVersion, bool success) + { + Dictionary globalProperties = new() + { + ["_ReproducibleBuildsMSBuildVersion"] = msbuildVersion + }; + + ProjectCreator.Templates + .ReproducibleBuildProject(GetRandomFile(".csproj")) + .TryBuild(restore: false, target: "_ReproducibleBuildsMSBuildVersionCheck", globalProperties, out bool result, out BuildOutput output); + + result.Should().BeTrue(); + output.Warnings.Should().HaveCount(success ? 0 : 1); + } +} From a87b4c4076b99930eb8a2df36412488e78b3e935 Mon Sep 17 00:00:00 2001 From: Matt Kotsenas Date: Fri, 6 Sep 2024 10:58:54 -0700 Subject: [PATCH 3/3] Update docs --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 913fccf..93fb517 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,10 @@ adding this package or manually as described here: https://devblogs.microsoft.co This package sets the following properties: - `PublishRepositoryUrl` = `true` -- `EmbedUntrackedSources` = `true` - `DebugType` = `embedded`. You can specify `portable` in your project if you prefer, but you'll need to upload that `.snupkg` file too. -- `IncludePackageReferencesDuringMarkupCompilation` = `true` (enables a fix for WPF) - `ContinuousIntegrationBuild` = `true` on CI systems -It also adds SourceLink dependencies for all repo types (the right one will be used automatically). - -For more information on debugging with Source Link is [here](https://devblogs.microsoft.com/dotnet/improving-debug-time-productivity-with-source-link/). +More information on `PublishRepositoryUrl` and debugging with Source Link is [here](https://devblogs.microsoft.com/dotnet/improving-debug-time-productivity-with-source-link/). ### Usage