From c09ac2fafdd438e94f19f25a59bb473819b8a3e3 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 2 Jun 2026 16:42:35 -0400 Subject: [PATCH 1/2] Use deterministic values for _BuildNumber Use `DeterministicTimestamp` and `SOURCE_BUILD_EPOCH` to set a deterministic date for `_BuildNumber` instead of the wall-clock-time (`DateTime.Now`). `DeterministicTimetsamp` is defined and documented in this NuGet spec: https://github.com/NuGet/Home/blob/dev/accepted/2026/deterministic-pack-revisited.md `SOURCE_DATE_EPOCH` is defined and documented in https://reproducible-builds.org/specs/source-date-epoch/ Co-Authored-By: Claude Sonnet 4.6 --- .../tools/Version.BeforeCommonTargets.targets | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets index 697e4189673..b5a179f3e56 100644 --- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Version.BeforeCommonTargets.targets @@ -24,6 +24,10 @@ $(IsShipping) + + $(SOURCE_DATE_EPOCH) + + <_BuildNumber>$(OfficialBuildId) - <_BuildNumber Condition="'$(OfficialBuildId)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1 + + <_BuildNumber Condition="'$(_BuildNumber)' == '' and '$(DeterministicTimestamp)' != '' and '$(DeterministicTimestamp)' != 'true' and '$(DeterministicTimestamp)' != 'false' and !$(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::FromUnixTimeSeconds($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1 + <_BuildNumber Condition="'$(_BuildNumber)' == '' and $(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::Parse($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1 + <_BuildNumber Condition="'$(_BuildNumber)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1 <_BuildNumber Condition="'$(_BuildNumber)' == '' and '$(DeterministicTimestamp)' != '' and '$(DeterministicTimestamp)' != 'true' and '$(DeterministicTimestamp)' != 'false' and !$(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::FromUnixTimeSeconds($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1 <_BuildNumber Condition="'$(_BuildNumber)' == '' and $(DeterministicTimestamp.Contains('-'))">$([System.DateTimeOffset]::Parse($(DeterministicTimestamp)).UtcDateTime.ToString(yyyyMMdd)).1 - <_BuildNumber Condition="'$(_BuildNumber)' == ''">$([System.DateTime]::Now.ToString(yyyyMMdd)).1 + <_BuildNumber Condition="'$(_BuildNumber)' == ''">$([System.DateTime]::UtcNow.ToString(yyyyMMdd)).1