From a2f0de28fc0f1ab71d4685c77f0b21d946f3e702 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 16 Apr 2021 23:35:06 -0700 Subject: Introduce new versioning system based on GitInfo --- appveyor.yml | 4 +- signing.json | 13 +++ src/Directory.Build.props | 5 +- src/Directory.Build.targets | 120 +++++++++++++++------ src/Directory.csproj.targets | 15 +-- src/Directory.vcxproj.props | 9 +- src/Directory.vcxproj.targets | 45 ++++++++ .../WixToolset.Core.Native.csproj | 3 +- .../WixToolsetTest.Core.Native.csproj | 2 + src/test/version.txt | 1 + src/ver.rc | 55 ++++++++++ src/wixnative/wixnative.vcxproj | 2 +- version.json | 11 -- version.txt | 1 + 14 files changed, 223 insertions(+), 63 deletions(-) create mode 100644 signing.json create mode 100644 src/Directory.vcxproj.targets create mode 100644 src/test/version.txt create mode 100644 src/ver.rc delete mode 100644 version.json create mode 100644 version.txt diff --git a/appveyor.yml b/appveyor.yml index dccc2071..364569cf 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,6 +21,8 @@ environment: build_script: - appveyor.cmd +test: off + pull_requests: do_not_increment_build_number: true @@ -30,8 +32,6 @@ nuget: skip_branch_with_pr: true skip_tags: true -test: off - artifacts: - path: build\Release\**\*.nupkg name: nuget diff --git a/signing.json b/signing.json new file mode 100644 index 00000000..fe1c8c9b --- /dev/null +++ b/signing.json @@ -0,0 +1,13 @@ +{ + "SignClient": { + "AzureAd": { + "AADInstance": "https://login.microsoftonline.com/", + "ClientId": "c248d68a-ba6f-4aa9-8a68-71fe872063f8", + "TenantId": "16076fdc-fcc1-4a15-b1ca-32c9a255900e" + }, + "Service": { + "Url": "https://codesign.dotnetfoundation.org/", + "ResourceId": "https://SignService/3c30251f-36f3-490b-a955-520addb85001" + } + } +} diff --git a/src/Directory.Build.props b/src/Directory.Build.props index b3c6287c..dc78f888 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -8,7 +8,6 @@ Debug false - MSB3246 $(MSBuildProjectName) $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\)) @@ -20,6 +19,10 @@ Copyright (c) .NET Foundation and contributors. All rights reserved. MS-RL WiX Toolset + + false + version.txt + v?(?<MAJOR>\d+|{[\dA-za-z\-\.]+})\.(?<MINOR>(\d+|{[\dA-za-z\-\.]+}))(?:\-(?<LABEL>[\dA-Za-z\-\.{}]+))?$|^v?(?<MAJOR>\d+|{[\dA-za-z\-\.]+})\.(?<MINOR>(\d+|{[\dA-za-z\-\.]+}))\.(?<PATCH>\d+|{[\dA-za-z\-\.]+})(?:\-(?<LABEL>[\dA-Za-z\-\.{}]+))?$|^(?<LABEL>[\dA-Za-z\-\.{}]+)\-v?(?<MAJOR>\d+|{[\dA-za-z\-\.]+})\.(?<MINOR>\d+|{[\dA-za-z\-\.]+})\.(?<PATCH>\d+|{[\dA-za-z\-\.]+})$ diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index 2fcc765a..c426f25e 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -4,47 +4,105 @@ Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.targets then update all of the repos. --> - - true - $(SolutionPath) - $(NCrunchOriginalSolutionPath) + $(BaseOutputPath)obj\.tools + $(SigningToolFolder)\SignClient.exe + $(SigningToolFolder)\empty-filelist.txt + $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), signing.json))\signing.json + + + + + $(GitBaseVersion.Replace('{apiversion}', '$(ApiVersion)')) + $(GitBaseVersion.Replace('{height}', '$(GitCommits)')) + $(GitBaseVersion.Replace('{commits}', '$(GitCommits)')) + + + + + + $(GitBaseVersionMajor).$(GitBaseVersionMinor).0.0 + $(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch).$(GitCommits) + $(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel) + $(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel)+$(GitSha) + + false + + + + + + + + $(GenerateNuspecDependsOn); + __SetNuspecProperties + - - + + + $(GitRepositoryUrl.Replace('.git','')) + + $(MSBuildProjectName).nuspec + $([System.IO.Path]::GetFullPath($(OutputPath)..))\ + $(NuspecProperties);Id=$(PackageId);Authors="$(Authors)";Configuration=$(Configuration);Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)" + $(NuspecProperties);Version=$(PackageVersion);RepositoryCommit=$(GitSha);RepositoryType=git;RepositoryUrl=$(GitRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl) + true + snupkg + + + + + + + + + + + + + + + + - - $([System.IO.File]::ReadAllText($(TheSolutionPath))) - $([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) )) - (?<="[PackageName]", ")(.*)(?=", ") - + - - - - %(Identity) - $(SolutionFileContent.Contains('\%(Identity).csproj')) - + + - - - $(RegexPattern.Replace('[PackageName]','%(PackageName)') ) - $([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)')) - + - + + - - - + + + + - - + + diff --git a/src/Directory.csproj.targets b/src/Directory.csproj.targets index c3270426..49303a1d 100644 --- a/src/Directory.csproj.targets +++ b/src/Directory.csproj.targets @@ -9,18 +9,5 @@ $(OutputPath)\$(AssemblyName).xml - - - $(PrivateRepositoryUrl.Replace('.git','')) - - $(MSBuildProjectName).nuspec - $(OutputPath)..\ - $(NuspecProperties);Id=$(PackageId);Authors=$(Authors);Copyright=$(Copyright);Description=$(Description);Title=$(Title) - $(NuspecProperties);Version=$(PackageVersion);RepositoryCommit=$(SourceRevisionId);RepositoryType=$(RepositoryType);RepositoryUrl=$(PrivateRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl) - true - snupkg - - - + diff --git a/src/Directory.vcxproj.props b/src/Directory.vcxproj.props index bcf26c57..63d73b36 100644 --- a/src/Directory.vcxproj.props +++ b/src/Directory.vcxproj.props @@ -19,17 +19,22 @@ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0')) + + $(MSBuildThisFileDirectory)CustomizedNativeRecommendedRules.ruleset + + $(DisableSpecificCompilerWarnings) Level4 $(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0501;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0600;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) Use precomp.h StdCall true false + Guard -YlprecompDefine /Zc:threadSafeInit- %(AdditionalOptions) true @@ -79,6 +84,7 @@ + MultiThreadedDebugDll @@ -98,6 +104,7 @@ + MultiThreadedDll diff --git a/src/Directory.vcxproj.targets b/src/Directory.vcxproj.targets new file mode 100644 index 00000000..9f0689d5 --- /dev/null +++ b/src/Directory.vcxproj.targets @@ -0,0 +1,45 @@ + + + + + + $(PrepareForBuildDependsOn); + __SetVersionResource + + + + + + <_ResourceFileType Condition=" '$(ConfigurationType)'=='Application' ">VFT_APP + <_ResourceFileType Condition=" '$(ConfigurationType)'=='DynamicLibrary' ">VFT_DLL + $(TargetName) + $(Description) + + + + + + %(PreprocessorDefinitions); + GITVER_FILEVER=$(FileVersion.Replace('.', ',')); + GITVER_PRODUCTVER=$(AssemblyVersion.Replace('.', ',')); + GITVER_FILE_VERSION=$(FileVersion); + GITVER_PRODUCT_VERSION=$(AssemblyVersion); + GITVER_FILE_TYPE=$(_ResourceFileType); + GITVER_CODEPAGE=0; + GITVER_LCID=$([System.Convert]::ToInt32('%(Culture)', 16)); + GITVER_VERSION_BLOCK=$([System.Convert]::ToString($([MSBuild]::Multiply($([System.Convert]::ToUint64('%(Culture)', 16)), 65536)), 16).PadLeft(8, '0')); + GITVER_COMPANY=$(Company); + GITVER_COPYRIGHT=$(Copyright); + GITVER_TITLE=$(Title); + GITVER_PRODUCT=$(Product); + GITVER_INFORMATIONAL_VERSION=$(InformationalVersion); + GITVER_INTERNAL_NAME=$(TargetName); + GITVER_FILE_NAME=$(TargetFileName); + + + + + diff --git a/src/WixToolset.Core.Native/WixToolset.Core.Native.csproj b/src/WixToolset.Core.Native/WixToolset.Core.Native.csproj index d53a155b..fea15922 100644 --- a/src/WixToolset.Core.Native/WixToolset.Core.Native.csproj +++ b/src/WixToolset.Core.Native/WixToolset.Core.Native.csproj @@ -7,7 +7,6 @@ netstandard2.0 embedded WiX Toolset Native Processing - true true NU5128 @@ -45,6 +44,6 @@ - + diff --git a/src/test/WixToolsetTest.Core.Native/WixToolsetTest.Core.Native.csproj b/src/test/WixToolsetTest.Core.Native/WixToolsetTest.Core.Native.csproj index 77a53c29..6068dbea 100644 --- a/src/test/WixToolsetTest.Core.Native/WixToolsetTest.Core.Native.csproj +++ b/src/test/WixToolsetTest.Core.Native/WixToolsetTest.Core.Native.csproj @@ -17,6 +17,8 @@ + + diff --git a/src/test/version.txt b/src/test/version.txt new file mode 100644 index 00000000..cf138743 --- /dev/null +++ b/src/test/version.txt @@ -0,0 +1 @@ +v42.42.{height}-preview.0 \ No newline at end of file diff --git a/src/ver.rc b/src/ver.rc new file mode 100644 index 00000000..4dc64d37 --- /dev/null +++ b/src/ver.rc @@ -0,0 +1,55 @@ +#pragma once +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +#if defined(_UNICODE) +#define GITVER_VERSION_STRING(x) L ## #x +#else +#define GITVER_VERSION_STRING(x) #x +#endif + +#define GVS(x) GITVER_VERSION_STRING(x) + +#ifdef RC_INVOKED + +#include + +VS_VERSION_INFO VERSIONINFO + FILEVERSION GITVER_FILEVER + PRODUCTVERSION GITVER_PRODUCTVER + FILEFLAGSMASK 0x3FL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE GITVER_FILE_TYPE + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK GVS(GITVER_VERSION_BLOCK) + BEGIN + VALUE "CompanyName", GVS(GITVER_COMPANY) + VALUE "FileDescription", GVS(GITVER_TITLE) + VALUE "FileVersion", GVS(GITVER_FILE_VERSION) + VALUE "InternalName", GVS(GITVER_INTERNAL_NAME) + VALUE "OriginalFilename", GVS(GITVER_FILE_NAME) + VALUE "ProductName", GVS(GITVER_PRODUCT) + VALUE "ProductVersion", GVS(GITVER_INFORMATIONAL_VERSION) + VALUE "LegalCopyright", GVS(GITVER_COPYRIGHT) + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", GITVER_LCID, GITVER_CODEPAGE + END +END +#endif diff --git a/src/wixnative/wixnative.vcxproj b/src/wixnative/wixnative.vcxproj index 09dc97fa..20959827 100644 --- a/src/wixnative/wixnative.vcxproj +++ b/src/wixnative/wixnative.vcxproj @@ -69,7 +69,7 @@ - + diff --git a/version.json b/version.json deleted file mode 100644 index 5f857771..00000000 --- a/version.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "4.0", - "publicReleaseRefSpec": [ - "^refs/heads/master$" - ], - "cloudBuild": { - "buildNumber": { - "enabled": true - } - } -} diff --git a/version.txt b/version.txt new file mode 100644 index 00000000..dc60d914 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +v4.{apiversion}-preview.0-build.{height} -- cgit v1.2.3-55-g6feb