Repository: lucenenet
Updated Branches:
  refs/heads/api-work a8ebf6b76 -> 9094afa64


build: Added Version.proj MSBuild file to supply VersionPrefix and 
VersionSuffix from the repository. This will allow control over all parts of 
the version except the build counter from the repository. Also scripted the 
versioning rules to synchronize the version number with Lucene while still 
allowing for pre-releases (when Lucene versions are ported only) and for 
patches.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/9094afa6
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/9094afa6
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/9094afa6

Branch: refs/heads/api-work
Commit: 9094afa64aa583006193ca7b6b351d09757caad2
Parents: a8ebf6b
Author: Shad Storhaug <[email protected]>
Authored: Wed Apr 19 23:05:11 2017 +0700
Committer: Shad Storhaug <[email protected]>
Committed: Wed Apr 19 23:05:11 2017 +0700

----------------------------------------------------------------------
 Lucene.Net.Portable.sln |   1 +
 Lucene.Net.sln          |   1 +
 Version.proj            |  13 +++++
 build.bat               |   4 +-
 build/build.ps1         | 117 +++++++++++++++++++++++++++++--------------
 5 files changed, 96 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9094afa6/Lucene.Net.Portable.sln
----------------------------------------------------------------------
diff --git a/Lucene.Net.Portable.sln b/Lucene.Net.Portable.sln
index 7f4edad..374ff5a 100644
--- a/Lucene.Net.Portable.sln
+++ b/Lucene.Net.Portable.sln
@@ -77,6 +77,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", 
"build", "{EFA10A77
        ProjectSection(SolutionItems) = preProject
                build.bat = build.bat
                build\build.ps1 = build\build.ps1
+               Version.proj = Version.proj
        EndProjectSection
 EndProject
 Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Lucene.Net.Icu", 
"src\Lucene.Net.Icu\Lucene.Net.Icu.xproj", 
"{44A5341B-0F52-429D-977A-C35E10ECCADF}"

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9094afa6/Lucene.Net.sln
----------------------------------------------------------------------
diff --git a/Lucene.Net.sln b/Lucene.Net.sln
index 66e91a6..e6940c9 100644
--- a/Lucene.Net.sln
+++ b/Lucene.Net.sln
@@ -86,6 +86,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", 
"build", "{9811D53E
        ProjectSection(SolutionItems) = preProject
                build.bat = build.bat
                build\build.ps1 = build\build.ps1
+               Version.proj = Version.proj
        EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene.Net.Icu", 
"src\Lucene.Net.Icu\Lucene.Net.Icu.csproj", 
"{349CB7C9-7534-4E1D-9B0A-5521441AF0AE}"

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9094afa6/Version.proj
----------------------------------------------------------------------
diff --git a/Version.proj b/Version.proj
new file mode 100644
index 0000000..4296667
--- /dev/null
+++ b/Version.proj
@@ -0,0 +1,13 @@
+<Project>
+
+  <PropertyGroup>
+    <!-- IMPORTANT: VersionPrefix should always be the same as the Lucene 
version this is based on.
+      Never increment it for an individual build - only increment this when an 
entire version's changes
+      are ported over from Lucene. This is what determines the version of all 
of the NuGet packages and binaries. -->
+         <VersionPrefix>4.8.0</VersionPrefix>
+    <!-- VersionSuffix is the pre-release tag. A zero-padded version number 
will automatically be suffixed to this
+      by the build script. -->
+         <VersionSuffix>beta</VersionSuffix>
+  </PropertyGroup>
+
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9094afa6/build.bat
----------------------------------------------------------------------
diff --git a/build.bat b/build.bat
index 297314d..0911554 100644
--- a/build.bat
+++ b/build.bat
@@ -13,7 +13,7 @@ GOTO endcommentblock
 ::                  as PackageVersion (excluding any pre-release tag).
 ::
 ::   -PackageVersion:<PackageVersion>
-::   -pv:<PackageVersion> - Nuget package version. Default is 1.0.0.
+::   -pv:<PackageVersion> - Nuget package version. Default is 0.0.0, which 
instructs the script to use the value in Version.proj.
 ::
 ::   -Configuration:<Configuration>
 ::   -config:<Configuration> - MSBuild configuration for the build.
@@ -38,7 +38,7 @@ IF "%version%" == "" (
        set version=0.0.0
 )
 IF "%PackageVersion%" == "" (
-    set PackageVersion=1.0.0
+    set PackageVersion=0.0.0
 )
 set configuration=Release
 IF NOT "%config%" == "" (

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9094afa6/build/build.ps1
----------------------------------------------------------------------
diff --git a/build/build.ps1 b/build/build.ps1
index d956897..1dcd496 100644
--- a/build/build.ps1
+++ b/build/build.ps1
@@ -6,7 +6,7 @@
        [string]$nuget_package_directory = "$release_directory\NuGetPackages"
        [string]$test_results_directory = "$release_directory\TestResults"
 
-       [string]$packageVersion   = "4.8.0"
+       [string]$packageVersion   = "0.0.0"
        [string]$version          = "0.0.0"
        [string]$configuration    = "Release"
        [bool]$backup_files        = $true
@@ -37,6 +37,56 @@ task Init -description "This task makes sure the build 
environment is correctly
                Write-Error "Could not find dotnet CLI in PATH. Please install 
the .NET Core 1.1 SDK."
        }
 
+       #If $packageVersion is not passed in, get it from Version.proj
+       if ([string]::IsNullOrEmpty($packageVersion) -or $packageVersion -eq 
"0.0.0") {
+               #Get the version info
+               $versionFile = "$base_directory\Version.proj"
+               $xml = [xml](Get-Content $versionFile)
+
+               $versionPrefix = $xml.Project.PropertyGroup.VersionPrefix
+               $versionSuffix = $xml.Project.PropertyGroup.VersionSuffix
+               Write-Host "VersionPrefix: $versionPrefix" -ForegroundColor 
Yellow
+               Write-Host "VersionSuffix: $versionSuffix" -ForegroundColor 
Yellow
+
+               #build counter from TeamCity
+               $buildCounter = "$env:build_counter"
+               Write-Host "TeamCity buildCounter : $buildCounter"
+               if ([string]::IsNullOrEmpty($buildCounter)) {
+                       #attempt to get MyGet build counter
+                       $buildCounter = "$env:BuildCounter"
+               }
+
+
+               if ([string]::IsNullOrWhiteSpace($versionSuffix)) {
+                       # this is a production release - use 4 segment version 
number 0.0.0.0
+                       if ([string]::IsNullOrEmpty($buildCounter)) {
+                               $buildCounter = "0"
+                       }
+
+                       $packageVersion = "$versionPrefix.$buildCounter"
+               } else {
+                       # this is a pre-release - use 3 segment version number 
with (optional) zero-padded pre-release tag
+                       if (![string]::IsNullOrEmpty($buildCounter)) {
+                               $buildCounter = 
([Int32]$buildCounter).ToString("00000")
+                       }
+
+                       $packageVersion = 
"$versionPrefix-$versionSuffix$buildCounter"
+               }
+       }
+
+       #Update TeamCity or MyGet with packageVersion
+       Write-Output "##teamcity[buildNumber '$packageVersion']"
+       Write-Output "##myget[buildNumber '$packageVersion']"
+
+       #If $version is not passed in, parse it from $packageVersion
+       if ([string]::IsNullOrEmpty($version) -or $version -eq "0.0.0") {
+               $version = $packageVersion
+               if ($version.Contains("-") -eq $true) {
+                       $version = $version.SubString(0, $version.IndexOf("-"))
+               }
+               Write-Host "Updated version to: $version"
+       }
+
        & dotnet.exe --version
        Write-Host "Base Directory: $base_directory"
        Write-Host "Release Directory: $release_directory"
@@ -47,15 +97,6 @@ task Init -description "This task makes sure the build 
environment is correctly
        Write-Host "Package Version: $packageVersion"
        Write-Host "Configuration: $configuration"
 
-       #If version is not passed in, parse it from $packageVersion
-       if ($version -eq "0.0.0" -or [string]::IsNullOrEmpty($version)) {
-               $version = $packageVersion
-               if ($version.Contains("-") -eq $true) {
-                       $version = $version.SubString(0, $version.IndexOf("-"))
-               }
-               Write-Host "Updated version to: $version"
-       }
-
        Ensure-Directory-Exists "$release_directory"
 
        #ensure we have the latest version of NuGet
@@ -65,41 +106,41 @@ task Init -description "This task makes sure the build 
environment is correctly
 }
 
 task Compile -depends Clean, Init -description "This task compiles the 
solution" {
-       try {
-               pushd $base_directory
-               $projects = Get-ChildItem -Path "project.json" -Recurse
-               popd
+       #try {
+       #       pushd $base_directory
+       #       $projects = Get-ChildItem -Path "project.json" -Recurse
+       #       popd
 
-               Backup-Files $projects
-               Prepare-For-Build $projects
-               & dotnet.exe restore $base_directory
+       #       Backup-Files $projects
+       #       Prepare-For-Build $projects
+       #       & dotnet.exe restore $base_directory
 
-               Build-Assemblies $projects
+       #       Build-Assemblies $projects
 
-               Start-Sleep 10
+       #       Start-Sleep 10
 
-               $success = $true
-       } finally {
-               if ($success -ne $true) {
-                       Restore-Files $backedUpFiles
-               }
-       }
+       #       $success = $true
+       #} finally {
+       #       if ($success -ne $true) {
+       #               Restore-Files $backedUpFiles
+       #       }
+       #}
 }
 
 task Pack -depends Compile -description "This task creates the NuGet packages" 
{
-       try {
-               pushd $base_directory
-               $packages = Get-ChildItem -Path "project.json" -Recurse | ? { 
!$_.Directory.Name.Contains(".Test") }
-               popd
-
-               Pack-Assemblies $packages
-
-               $success = $true
-       } finally {
-               #if ($success -ne $true) {
-                       Restore-Files $backedUpFiles
-               #}
-       }
+       #try {
+       #       pushd $base_directory
+       #       $packages = Get-ChildItem -Path "project.json" -Recurse | ? { 
!$_.Directory.Name.Contains(".Test") }
+       #       popd
+
+       #       Pack-Assemblies $packages
+
+       #       $success = $true
+       #} finally {
+       #       #if ($success -ne $true) {
+       #               Restore-Files $backedUpFiles
+       #       #}
+       #}
 }
 
 task Test -description "This task runs the tests" {

Reply via email to