diff options
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.dll | bin | 107008 -> 107008 bytes | |||
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.pdb | bin | 263680 -> 263680 bytes | |||
-rw-r--r-- | nuget/nuget.proj | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs | 15 | ||||
-rw-r--r-- | tools/DotNetOpenAuth.Versioning.targets | 19 |
5 files changed, 28 insertions, 8 deletions
diff --git a/lib/DotNetOpenAuth.BuildTasks.dll b/lib/DotNetOpenAuth.BuildTasks.dll Binary files differindex 54c8735..54387bb 100644 --- a/lib/DotNetOpenAuth.BuildTasks.dll +++ b/lib/DotNetOpenAuth.BuildTasks.dll diff --git a/lib/DotNetOpenAuth.BuildTasks.pdb b/lib/DotNetOpenAuth.BuildTasks.pdb Binary files differindex 4ef19e9..d81cf23 100644 --- a/lib/DotNetOpenAuth.BuildTasks.pdb +++ b/lib/DotNetOpenAuth.BuildTasks.pdb diff --git a/nuget/nuget.proj b/nuget/nuget.proj index 832f634..efa8845 100644 --- a/nuget/nuget.proj +++ b/nuget/nuget.proj @@ -47,7 +47,7 @@ </NuGetPackages> <NuGetPackages Include="DotNetOpenAuth.Ultimate.nuspec" /> - <NuGetProperties Include="version=$(BuildVersion)" /> + <NuGetProperties Include="version=$(NuGetPackageVersion)" /> <NuGetProperties Include="oauth2version=0.11.0-draft" /> <NuGetProperties Include="OutputPath35=$(OutputPath35)" /> <NuGetProperties Include="OutputPath40=$(OutputPath40)" /> diff --git a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs index 9818885..50bc89f 100644 --- a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs +++ b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs @@ -35,6 +35,12 @@ namespace DotNetOpenAuth.BuildTasks { public string GitCommitId { get; private set; } /// <summary> + /// Gets the build number (JDate) for this version. + /// </summary> + [Output] + public int BuildNumber { get; private set; } + + /// <summary> /// The file that contains the version base (Major.Minor.Build) to use. /// </summary> [Required] @@ -48,11 +54,12 @@ namespace DotNetOpenAuth.BuildTasks { public override bool Execute() { try { Version typedVersion = ReadVersionFromFile(); - SimpleVersion = typedVersion.ToString(); + this.SimpleVersion = typedVersion.ToString(); + this.BuildNumber = this.CalculateJDate(DateTime.Now); + + var fullVersion = new Version(typedVersion.Major, typedVersion.Minor, typedVersion.Build, this.BuildNumber); + this.Version = fullVersion.ToString(); - var fullVersion = new Version(typedVersion.Major, typedVersion.Minor, typedVersion.Build, CalculateJDate(DateTime.Now)); - Version = fullVersion.ToString(); - this.GitCommitId = GetGitHeadCommitId(); } catch (ArgumentOutOfRangeException ex) { Log.LogErrorFromException(ex); diff --git a/tools/DotNetOpenAuth.Versioning.targets b/tools/DotNetOpenAuth.Versioning.targets index cbcb76d..7ea18b1 100644 --- a/tools/DotNetOpenAuth.Versioning.targets +++ b/tools/DotNetOpenAuth.Versioning.targets @@ -6,6 +6,9 @@ <PropertyGroup> <VersionCsFile>$(IntermediatePath)\$(AssemblyName).Version.cs</VersionCsFile> <NoWarn>$(NoWarn);1607</NoWarn> + + <!-- PrereleaseVersion can be any alphanumeric identifier with a preceding hyphen, or blank. --> + <PrereleaseVersion>-beta</PrereleaseVersion> </PropertyGroup> <UsingTask AssemblyFile="$(ProjectRoot)lib\MSBuild.Community.Tasks.dll" TaskName="AssemblyInfo"/> @@ -16,15 +19,25 @@ GitRepoRoot="$(ProjectRoot)"> <Output TaskParameter="Version" PropertyName="BuildVersion" /> <Output TaskParameter="SimpleVersion" PropertyName="BuildVersionSimple" /> - <Output TaskParameter="GitCommitId" PropertyName="AssemblyInformationalVersion" /> + <Output TaskParameter="GitCommitId" PropertyName="GitCommitId" /> + <Output TaskParameter="BuildNumber" PropertyName="BuildNumber" /> </GetBuildVersion> <PropertyGroup> <!-- In TeamCity, the build agent doesn't get the .git directory, but the commit id is available by other means. --> - <AssemblyInformationalVersion Condition=" '$(AssemblyInformationalVersion)' == '' ">$(BUILD_VCS_NUMBER)</AssemblyInformationalVersion> + <GitCommitId Condition=" '$(GitCommitId)' == '' ">$(BUILD_VCS_NUMBER)</GitCommitId> + + <SemVerBuildSuffix>+build.$(BuildNumber).$(GitCommitId.Substring(0,10))</SemVerBuildSuffix> + <AssemblyInformationalVersion>$(BuildVersionSimple)$(PrereleaseVersion)$(SemVerBuildSuffix)</AssemblyInformationalVersion> + + <!-- When NuGet supports SemVer 2.0, we can set NuGetPackageVersion to be the same as $(AssemblyInformationalVersion) --> + <NuGetPackageVersion Condition=" '$(PrereleaseVersion)' == '' ">$(BuildVersion)</NuGetPackageVersion> + <NuGetPackageVersion Condition=" '$(PrereleaseVersion)' != '' ">$(BuildVersionSimple)$(PrereleaseVersion)</NuGetPackageVersion> </PropertyGroup> <Warning Condition=" '$(AssemblyInformationalVersion)' == '' " Text="Unable to determine the git HEAD commit ID to use for informational version number." /> - <Message Condition=" '$(AssemblyInformationalVersion)' != '' " Text="Building version $(BuildVersion) from commit $(AssemblyInformationalVersion)"/> + <Message Condition=" '$(AssemblyInformationalVersion)' != '' " Text="Building version $(BuildVersion) from commit $(GitCommitId)"/> <Message Condition=" '$(AssemblyInformationalVersion)' == '' " Text="Building version $(BuildVersion)"/> + <Message Importance="low" Text="AssemblyInformationalVersion: $(AssemblyInformationalVersion)" /> + <Message Importance="low" Text="NuGetPackageVersion: $(NuGetPackageVersion)" /> </Target> <Target Name="BeforeBuild" DependsOnTargets="GetBuildVersion"> |