diff options
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.dll | bin | 107008 -> 108032 bytes | |||
-rw-r--r-- | lib/DotNetOpenAuth.BuildTasks.pdb | bin | 263680 -> 267776 bytes | |||
-rw-r--r-- | nuget/nuget.proj | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs | 48 | ||||
-rw-r--r-- | src/version.txt | 2 | ||||
-rw-r--r-- | tools/DotNetOpenAuth.Versioning.targets | 5 |
6 files changed, 50 insertions, 7 deletions
diff --git a/lib/DotNetOpenAuth.BuildTasks.dll b/lib/DotNetOpenAuth.BuildTasks.dll Binary files differindex 54387bb..4d43fe5 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 d81cf23..132bddb 100644 --- a/lib/DotNetOpenAuth.BuildTasks.pdb +++ b/lib/DotNetOpenAuth.BuildTasks.pdb diff --git a/nuget/nuget.proj b/nuget/nuget.proj index faf4bae..3e507b9 100644 --- a/nuget/nuget.proj +++ b/nuget/nuget.proj @@ -57,7 +57,7 @@ <NuGetPackages Include="DotNetOpenAuth.Ultimate.nuspec" /> <NuGetProperties Include="version=$(NuGetPackageVersion)" /> - <NuGetProperties Include="oauth2version=0.11.0-draft" /> + <NuGetProperties Include="oauth2version=$(OAuth2PackagesVersion)" /> <NuGetProperties Include="OutputPath35=$(OutputPath35)" /> <NuGetProperties Include="OutputPath40=$(OutputPath40)" /> </ItemGroup> diff --git a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs index 50bc89f..6df372f 100644 --- a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs +++ b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs @@ -29,6 +29,21 @@ namespace DotNetOpenAuth.BuildTasks { public string SimpleVersion { get; private set; } /// <summary> + /// Gets or sets the prerelease version, or empty if this is a final release. + /// </summary> + /// <value> + /// The prerelease version. + /// </value> + [Output] + public string PrereleaseVersion { get; set; } + + /// <summary> + /// Gets or sets the version string to use for NuGet packages containing OAuth 2 components. + /// </summary> + [Output] + public string OAuth2PackagesVersion { get; set; } + + /// <summary> /// Gets the Git revision control commit id for HEAD (the current source code version). /// </summary> [Output] @@ -53,7 +68,11 @@ namespace DotNetOpenAuth.BuildTasks { public override bool Execute() { try { - Version typedVersion = ReadVersionFromFile(); + Version typedVersion; + string prerelease, oauth2PackagesVersion; + this.ReadVersionFromFile(out typedVersion, out prerelease, out oauth2PackagesVersion); + this.PrereleaseVersion = prerelease; + this.OAuth2PackagesVersion = oauth2PackagesVersion; this.SimpleVersion = typedVersion.ToString(); this.BuildNumber = this.CalculateJDate(DateTime.Now); @@ -127,10 +146,21 @@ namespace DotNetOpenAuth.BuildTasks { return commitId.Trim(); } - private Version ReadVersionFromFile() { + private void ReadVersionFromFile(out Version typedVersion, out string prereleaseVersion, out string oauth2PackagesVersion) { string[] lines = File.ReadAllLines(VersionFile); string versionLine = lines[0]; - return new Version(versionLine); + prereleaseVersion = lines.Length >= 2 ? lines[1] : null; + oauth2PackagesVersion = lines.Length >= 3 ? lines[2] : null; + if (!String.IsNullOrEmpty(prereleaseVersion)) { + if (!prereleaseVersion.StartsWith("-")) { + // SemVer requires that prerelease suffixes begin with a hyphen, so add one if it's missing. + prereleaseVersion = "-" + prereleaseVersion; + } + + this.VerifyValidPrereleaseVersion(prereleaseVersion); + } + + typedVersion = new Version(versionLine); } private int CalculateJDate(DateTime date) { @@ -140,5 +170,17 @@ namespace DotNetOpenAuth.BuildTasks { int jdate = yearLastDigit * 1000 + dayOfYear; return jdate; } + + private void VerifyValidPrereleaseVersion(string prerelease) { + if (prerelease[0] != '-') { + throw new ArgumentOutOfRangeException("The prerelease string must begin with a hyphen."); + } + + for (int i = 1; i < prerelease.Length; i++) { + if (!char.IsLetterOrDigit(prerelease[i])) { + throw new ArgumentOutOfRangeException("The prerelease string must be alphanumeric."); + } + } + } } } diff --git a/src/version.txt b/src/version.txt index fcdb2e1..e25332a 100644 --- a/src/version.txt +++ b/src/version.txt @@ -1 +1,3 @@ 4.0.0 +beta2 +0.23.0-draft diff --git a/tools/DotNetOpenAuth.Versioning.targets b/tools/DotNetOpenAuth.Versioning.targets index 0860f67..5ea67e5 100644 --- a/tools/DotNetOpenAuth.Versioning.targets +++ b/tools/DotNetOpenAuth.Versioning.targets @@ -6,9 +6,6 @@ <PropertyGroup> <VersionCsFile>$(IntermediatePath)\$(AssemblyName).Version.cs</VersionCsFile> <NoWarn>$(NoWarn);1607</NoWarn> - - <!-- PrereleaseVersion can be any alphanumeric identifier with a preceding hyphen, or blank. --> - <PrereleaseVersion>-beta2</PrereleaseVersion> </PropertyGroup> <UsingTask AssemblyFile="$(ProjectRoot)lib\MSBuild.Community.Tasks.dll" TaskName="AssemblyInfo"/> @@ -19,6 +16,8 @@ GitRepoRoot="$(ProjectRoot)"> <Output TaskParameter="Version" PropertyName="BuildVersion" /> <Output TaskParameter="SimpleVersion" PropertyName="BuildVersionSimple" /> + <Output TaskParameter="PrereleaseVersion" PropertyName="PrereleaseVersion" /> + <Output TaskParameter="OAuth2PackagesVersion" PropertyName="OAuth2PackagesVersion" /> <Output TaskParameter="GitCommitId" PropertyName="GitCommitId" /> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber" /> </GetBuildVersion> |