Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

Commit abbff50

Browse files
authored
Merge pull request #160 from kzu/dev
Use SemVer2 for simplified versioning
2 parents 2906fd2 + 46b97c5 commit abbff50

16 files changed

Lines changed: 91 additions & 69 deletions

GitInfo.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.2.0-dev
1+
0.2.5

build.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ if %MSBuildMajorVersion% LSS 15 (
5959

6060
:: Ensure developer command prompt variables are set
6161
if "%VisualStudioVersion%" == "" (
62-
for /f "delims=" %%i in ('msbuild build.props -nologo /t:GetVsInstallRoot') do set "VsInstallRoot=%%i" & goto :VsInstallRootDone
62+
for /f "delims=" %%i in ('msbuild build.props /nologo /v:m /t:GetVsInstallRoot') do set "VsInstallRoot=%%i" & goto :VsInstallRootDone
6363
:VsInstallRootDone
6464
for /f "tokens=* delims= " %%i in ("%VsInstallRoot%") do set "VsInstallRoot=%%i"
6565
set "DeveloperCommandPrompt=%VsInstallRoot%\Common7\Tools\VsDevCmd.bat"

build.proj

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131
</ItemGroup>
3232

3333
<ItemGroup>
34-
<PackageReference Include="GitInfo" Version="2.0.0" />
35-
<PackageReference Include="xunit.runner.console" Version="2.3.0-beta4-build3742" />
34+
<PackageReference Include="xunit.runner.console" Version="2.3.1" />
3635
<PackageReference Include="OpenCover" Version="4.6.519" />
3736
<PackageReference Include="ReportGenerator" Version="2.4.5" />
3837
</ItemGroup>
@@ -48,7 +47,7 @@
4847

4948
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
5049

51-
<Target Name="Build" DependsOnTargets="GitInfoReport;GetPackageVersion">
50+
<Target Name="Build" DependsOnTargets="GitInfoReport;SetVersion">
5251
<!-- For now this is an informative version #, used to update CI -->
5352
<Message Text="Building version $(PackageVersion)" Importance="high" />
5453
<!-- Update AppVeyor build # to match the actual one being used -->
@@ -139,20 +138,12 @@
139138
<Exec Command="start $(Out)\coverage\index.htm" />
140139
</Target>
141140

142-
<Target Name="GitVersion">
143-
<PropertyGroup>
144-
<GitSemVerMajor>1</GitSemVerMajor>
145-
<GitSemVerMinor>0</GitSemVerMinor>
146-
<GitSemVerPatch>0</GitSemVerPatch>
147-
</PropertyGroup>
148-
</Target>
149-
<Import Project="src\PackageVersion.targets" />
150-
151141
<Target Name="Configure">
152142
<Message Importance="high" Text="*********************************************************************************************************************" />
153143
<Message Importance="high" Text="$([System.Environment]::CommandLine)" />
154144
<Message Importance="high" Text="*********************************************************************************************************************" />
155145
</Target>
156146

147+
<Import Project="src\Directory.Build.targets" />
157148
<Import Project="corebuild\corebuild.targets" />
158149
</Project>

msbuild.rsp

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

src/Build/NuGet.Build.Packaging.Tasks.Shared.targets

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,4 @@
1515
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
1616
<NuGetPackagingTargetsImported>true</NuGetPackagingTargetsImported>
1717
</PropertyGroup>
18-
19-
<Import Project="PackageVersion.targets" Condition="$(PackageVersionImported) != 'true'" />
20-
</Project>
18+
</Project>

src/Build/NuGet.Build.Packaging.Tasks/NuGet.Build.Packaging.Tasks.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<NuGetBuildTasksPackTargets>NO-SDK-PACK</NuGetBuildTasksPackTargets>
77
</PropertyGroup>
88
<ItemGroup>
9-
<PackageReference Include="GitInfo" Version="1.1.61" PrivateAssets="all" />
109
<PackageReference Include="ILRepack" Version="2.0.13" PrivateAssets="all" />
1110
<PackageReference Include="netfx-System.StringResources" Version="3.1.5" PrivateAssets="all" />
1211
<PackageReference Include="Microsoft.Build" Version="14.3.0" PrivateAssets="all" />

src/Build/NuGet.Build.Packaging.Tasks/NuGet.Build.Packaging.Tasks.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
</ItemDefinitionGroup>
1313

1414
<PropertyGroup>
15-
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
16-
15+
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
16+
1717
<PackageId>NuGet.Build.Packaging</PackageId>
1818
<Title>NuGetizer-3000</Title>
1919
<Description>NuGetizer-3000</Description>

src/Build/NuGet.Build.Packaging.Tests/NuGet.Build.Packaging.Tests.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
</Reference>
1414
</ItemGroup>
1515
<ItemGroup>
16-
<PackageReference Include="GitInfo" Version="1.1.61" />
1716
<PackageReference Include="Microsoft.Build" Version="14.3.0" />
1817
<PackageReference Include="Microsoft.Build.Logging.StructuredLogger" Version="1.1.168" />
1918
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="14.3.0" />

src/Build/NuGet.Build.Packaging.Tests/Scenarios/Scenario.props

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,13 @@
2828
<!-- Skip the GitInfo stuff we inherit -->
2929
<GitThisAssembly>false</GitThisAssembly>
3030

31-
<!-- Avoids warnings from Xamarin global imports.-->
32-
<!--<ImportByWildcardAfterMicrosoftCommonTargets>false</ImportByWildcardAfterMicrosoftCommonTargets>
33-
<ImportByWildcardBeforeMicrosoftCommonTargets>false</ImportByWildcardBeforeMicrosoftCommonTargets>-->
3431
<!-- Prevents Fody.VerifyTask from running -->
3532
<NCrunch>1</NCrunch>
3633

3734
<!-- Avoids architecture mismatch warnings -->
3835
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
36+
37+
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
3938
</PropertyGroup>
4039

4140
<PropertyGroup>

src/Directory.Build.targets

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
4+
<PropertyGroup>
5+
<GitSkipCache>true</GitSkipCache>
6+
<GitIgnoreTagVersion>true</GitIgnoreTagVersion>
7+
8+
<Company>Microsoft</Company>
9+
<Product>Microsoft NuGet Packaging</Product>
10+
<Copyright>Copyright © 2016</Copyright>
11+
</PropertyGroup>
12+
13+
<ItemGroup>
14+
<PackageReference Include="MSBuilder.CI" Version="0.1.2" PrivateAssets="all" />
15+
<PackageReference Include="GitInfo" Version="2.0.7" PrivateAssets="all" />
16+
</ItemGroup>
17+
18+
<Target Name="Version" DependsOnTargets="SetVersion">
19+
<Message Importance="high" Text="PackageVersion=$(PackageVersion)
20+
AssemblyVersion=$(AssemblyVersion)" />
21+
</Target>
22+
23+
<Target Name="_SetLocalCommits" BeforeTargets="_GitPopulateVersionInfo" Condition="'$(CI)' != 'true'">
24+
<PropertyGroup>
25+
<!-- Local builds should always be commit count +1, since we'll be always working on the next version to be published. -->
26+
<GitCommits>$([MSBuild]::Add('$(GitCommits)', '1'))</GitCommits>
27+
</PropertyGroup>
28+
</Target>
29+
30+
<!-- '$(ExcludeRestorePackageImports)' == 'true' when invoking /t:Restore -->
31+
<Target Name="SetVersion" BeforeTargets="GetAssemblyVersion;GetPackageVersion" DependsOnTargets="GitVersion" Condition="'$(ExcludeRestorePackageImports)' != 'true'">
32+
<PropertyGroup>
33+
<!-- PR builds are *always* prerelease -->
34+
<!-- TFS case: BUILD_REASON=PullRequest and BUILD_SOURCEBRANCH=refs/pull/#/merge -->
35+
<GitSemVerDashLabel Condition="'$(TF_BUILD)' == 'true' and '$(BUILD_REASON)' == 'PullRequest'">$(GitSemVerDashLabel)-pr$(BUILD_SOURCEBRANCH.Substring(10).TrimEnd('/merge'))</GitSemVerDashLabel>
36+
<GitSemVerDashLabel Condition="'$(APPVEYOR_PULL_REQUEST_NUMBER)' != ''">$(GitSemVerDashLabel)-pr$(APPVEYOR_PULL_REQUEST_NUMBER)</GitSemVerDashLabel>
37+
38+
<!-- NOTE: build metadata does not affect version matching, so even if you work from a different branch+commit that gets
39+
rebased+merged later on, the version # might still be the same (provided there weren't additional commits in master
40+
before the rebase+merge.
41+
-->
42+
<_IndexOfBranchSlash>$(GitBranch.LastIndexOf('/'))</_IndexOfBranchSlash>
43+
<_IndexOfBranchSubstring>$([MSBuild]::Add('$(_IndexOfBranchSlash)', '1'))</_IndexOfBranchSubstring>
44+
<_GitBranch Condition="'$(_IndexOfBranchSlash)' != '0'">$(GitBranch.Substring($(_IndexOfBranchSubstring)))</_GitBranch>
45+
<_GitBranch Condition="'$(_IndexOfBranchSlash)' == '0'">$(GitBranch)</_GitBranch>
46+
47+
<!-- We'll use GitFlow and ship publicly from a versioned branch, meaning we don't need branch metadata in those cases -->
48+
<GitSemVerDashLabel Condition="'$(GitSemVerDashLabel)' == '' and $(_GitBranch.StartsWith('v')) == 'false'">-$(_GitBranch)</GitSemVerDashLabel>
49+
<SemVerMetadata Condition="'$(GitSemVerDashLabel)' != '-$(_GitBranch)' and $(_GitBranch.StartsWith('v')) == 'false' and '$(_GitBranch)' != 'undefined'">$(_GitBranch).</SemVerMetadata>
50+
<SemVerMetadata>$(SemVerMetadata)sha.$(GitCommit)</SemVerMetadata>
51+
52+
<!-- If there is a pre-release label, fix the major.minor.build and increment the release label digit instead. -->
53+
<PackageVersion Condition="'$(GitSemVerDashLabel)' != ''">$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel).$(GitCommits)+$(SemVerMetadata)</PackageVersion>
54+
<!-- If shipping stable, semver the package version -->
55+
<PackageVersion Condition="'$(GitSemVerDashLabel)' == ''">$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)+$(SemVerMetadata)</PackageVersion>
56+
<AssemblyVersion>$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)</AssemblyVersion>
57+
<FileVersion>$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)</FileVersion>
58+
<InformationalVersion>$(PackageVersion)</InformationalVersion>
59+
</PropertyGroup>
60+
</Target>
61+
62+
<Target Name="LocalPublish" Condition="'$(CI)' != 'true'" AfterTargets="Pack">
63+
<Exec Command='rd "$(NuGetPackageRoot)$(PackageId.ToLowerInvariant())" /q /s' Condition="Exists('$(NuGetPackageRoot)$(PackageId.ToLowerInvariant())')" />
64+
65+
<ItemGroup>
66+
<ToDelete Include="$(TEMP)\packages\$(PackageId)*.nupkg" />
67+
</ItemGroup>
68+
<Delete Files="@(ToDelete)" />
69+
70+
<MakeDir Directories="$(TEMP)\packages" Condition="!Exists('$(TEMP)\packages')" />
71+
<Copy SourceFiles="$(PackageTargetPath)" DestinationFolder="$(TEMP)\packages" />
72+
</Target>
73+
74+
</Project>

0 commit comments

Comments
 (0)