summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/DotNetOpenAuth.BuildTasks.dllbin107008 -> 108032 bytes
-rw-r--r--lib/DotNetOpenAuth.BuildTasks.pdbbin263680 -> 267776 bytes
-rw-r--r--nuget/nuget.proj2
-rw-r--r--src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs48
-rw-r--r--src/version.txt2
-rw-r--r--tools/DotNetOpenAuth.Versioning.targets5
6 files changed, 50 insertions, 7 deletions
diff --git a/lib/DotNetOpenAuth.BuildTasks.dll b/lib/DotNetOpenAuth.BuildTasks.dll
index 54387bb..4d43fe5 100644
--- a/lib/DotNetOpenAuth.BuildTasks.dll
+++ b/lib/DotNetOpenAuth.BuildTasks.dll
Binary files differ
diff --git a/lib/DotNetOpenAuth.BuildTasks.pdb b/lib/DotNetOpenAuth.BuildTasks.pdb
index d81cf23..132bddb 100644
--- a/lib/DotNetOpenAuth.BuildTasks.pdb
+++ b/lib/DotNetOpenAuth.BuildTasks.pdb
Binary files differ
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>