diff options
author | Josh Suereth <joshua.suereth@gmail.com> | 2012-03-16 01:05:31 -0400 |
---|---|---|
committer | Josh Suereth <joshua.suereth@gmail.com> | 2012-03-16 12:08:42 -0400 |
commit | 1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e (patch) | |
tree | 29f06951c7ee8c161906a50ec0cfcab61ef09ea0 | |
parent | 479aee3617e952d8705b95ef2ea3a155914dd03c (diff) | |
download | scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.tar.gz scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.tar.bz2 scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.zip |
Finished migrating to new versioning scheme
Conflicts:
build.xml
tools/get-scala-revision.bat
-rw-r--r-- | build.xml | 43 | ||||
-rw-r--r-- | src/library/scala/util/Properties.scala | 3 | ||||
-rwxr-xr-x | tools/get-scala-commit-date | 16 | ||||
-rw-r--r-- | tools/get-scala-commit-date.bat | 24 | ||||
-rwxr-xr-x | tools/get-scala-commit-drift | 40 | ||||
-rw-r--r-- | tools/get-scala-commit-drift.bat | 21 | ||||
-rwxr-xr-x | tools/get-scala-commit-sha (renamed from tools/get-scala-revision) | 13 | ||||
-rw-r--r-- | tools/get-scala-commit-sha.bat | 21 | ||||
-rw-r--r-- | tools/get-scala-revision.bat | 27 |
9 files changed, 158 insertions, 50 deletions
@@ -245,21 +245,21 @@ INITIALISATION </condition> </target> <target name="init.build.snapshot" unless="build.release"> - <property name="version.suffix" value="dev"/> <property name="maven.version.suffix" value="-SNAPSHOT"/> </target> - <target name="init.build.release" if="build.release" unless="version.hasbuildnum" depends="init.hasbuildnum"> - <property name="version.suffix" value="v0"/> + <target name="init.build.release" if="build.release" depends="init.hasbuildnum, init.build.snapshot"> <property name="maven.version.suffix" value=""/> </target> + <target name="init.build.nopatch.release" unless="version.hasbuildnum" depends="init.hasbuildnum"> + <property name="version.suffix" value=""/> + </target> <!-- funny thing, ant is. Can only specify *one* property in if check. Guaranteed that both are true here, since properties are immutable. --> - <target name="init.build.patch.release" if="version.hasbuildnum" depends="init.hasbuildnum, init.build.snapshot"> - <property name="version.suffix" value="v${version.bnum}"/> - <property name="maven.version.suffix" value="-${version.bnum}"/> + <target name="init.build.patch.release" if="version.hasbuildnum" depends="init.build.nopatch.release"> + <property name="version.suffix" value="-${version.bnum}"/> </target> - <target name="init.build.suffix.done" depends="init.build.snapshot, init.build.release, init.build.patch.release"/> + <target name="init.build.suffix.done" depends="init.build.release, init.build.patch.release"/> <target name="init" depends="init.jars, init.build.suffix.done"> <!-- scalac.args.optimise is selectively overridden in certain antcall tasks. --> @@ -280,6 +280,15 @@ INITIALISATION <condition property="os.win"> <os family="windows"/> </condition> + + <exec osfamily="unix" executable="tools/get-scala-commit-sha" outputproperty="git.commit.sha" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-sha.bat" outputproperty="git.commit.sha" failifexecutionfails="false" /> + <exec osfamily="unix" executable="tools/get-scala-commit-date" outputproperty="git.commit.date" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-date.bat" outputproperty="git.commit.date" failifexecutionfails="false" /> + <exec osfamily="unix" executable="tools/get-scala-commit-drift" outputproperty="git.commit.drift" failifexecutionfails="false" /> + <exec osfamily="windows" executable="tools/get-scala-commit-drift.bat" outputproperty="git.commit.drift" failifexecutionfails="false" /> + <!-- some default in case something went wrong getting the revision --> + <property name="git.describe" value="-unknown-"/> <!-- Generating version string --> <exec osfamily="unix" executable="tools/get-scala-revision" outputproperty="version.number" failifexecutionfails="false" /> @@ -290,12 +299,15 @@ INITIALISATION <!-- We use the git describe to determine the OSGi modifier for our build. --> <property + name="maven.version.number" + value="${version.major}.${version.minor}.${version.patch}${version.suffix}${maven.version.suffix}"/> + <property name="version.number" - value="${version.major}.${version.minor}.${version.patch}.${version.suffix}-${git.describe}"/> - <!-- TODO - Use "DEV" vs. "FINAL" to determine if we're in release mode. --> + value="${maven.version.number}-${git.commit.date}-${git.commit.drift}-${git.commit.sha}"/> <property - name="maven.version.number" - value="${version.major}.${version.minor}.${version.patch}${maven.version.suffix}"/> + name="osgi.version.number" + value="${version.major}.${version.minor}.${version.patch}.r${git.commit.date}${version.suffix}-${git.commit.sha}"/> + <!-- And print-out what we are building --> <echo message=" build time: ${time.human}" /> @@ -334,7 +346,8 @@ INITIALISATION <echo message=" javac args: ${javac.args}" /> <echo message=" scalac args: ${scalac.args}" /> <echo message=" maven version: ${maven.version.number}"/> - <echo message=" OSGi version: ${version.number}" /> + <echo message=" OSGi version: ${osgi.version.number}" /> + <echo message="canonical version: ${version.number}" /> <!-- Define tasks that can be run with Starr --> <path id="starr.classpath"> @@ -402,6 +415,7 @@ LOCAL REFERENCE BUILD (LOCKER) <propertyfile file="${build-locker.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-locker.dir}/classes/library"> @@ -442,6 +456,7 @@ LOCAL REFERENCE BUILD (LOCKER) <propertyfile file="${build-locker.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-locker.dir}/classes/compiler"> @@ -674,6 +689,7 @@ QUICK BUILD (QUICK) <propertyfile file="${build-quick.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-quick.dir}/classes/library"> @@ -734,6 +750,7 @@ QUICK BUILD (QUICK) <propertyfile file="${build-quick.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-quick.dir}/classes/compiler"> @@ -1217,6 +1234,7 @@ BOOTSTRAPPING BUILD (STRAP) <propertyfile file="${build-strap.dir}/classes/library/library.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-strap.dir}/classes/library"> @@ -1257,6 +1275,7 @@ BOOTSTRAPPING BUILD (STRAP) <propertyfile file="${build-strap.dir}/classes/compiler/compiler.properties"> <entry key="version.number" value="${version.number}"/> <entry key="maven.version.number" value="${maven.version.number}"/> + <entry key="osgi.version.number" value="${osgi.version.number}"/> <entry key="copyright.string" value="${copyright.string}"/> </propertyfile> <copy todir="${build-strap.dir}/classes/compiler"> diff --git a/src/library/scala/util/Properties.scala b/src/library/scala/util/Properties.scala index 3ba803712d..38ca89b98b 100644 --- a/src/library/scala/util/Properties.scala +++ b/src/library/scala/util/Properties.scala @@ -101,8 +101,7 @@ private[scala] trait PropertiesTrait { /** The version number of the jar this was loaded from plus "version " prefix, * or "version (unknown)" if it cannot be determined. */ - val versionString = "version " + scalaPropOrElse("version.number", "(unknown)") + - scalaPropOrNone("maven.version.number").map(v => "(" + v + ")").getOrElse("") + val versionString = "version " + scalaPropOrElse("version.number", "(unknown)") val copyrightString = scalaPropOrElse("copyright.string", "(c) 2002-2011 LAMP/EPFL") /** This is the encoding to use reading in source files, overridden with -encoding diff --git a/tools/get-scala-commit-date b/tools/get-scala-commit-date new file mode 100755 index 0000000000..ef5b0f540d --- /dev/null +++ b/tools/get-scala-commit-date @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# +# Usage: get-scala-commit-date [dir] +# Figures out current commit date of a git clone. +# If no dir is given, current working dir is used. +# +# Example build version string: +# 20120312 +# + +[[ $# -eq 0 ]] || cd "$1" + +lastcommitdate=$(git log --format="%ci" HEAD | head -n 1 | cut -d ' ' -f 1) + +# 20120324 +echo "${lastcommitdate//-/}" diff --git a/tools/get-scala-commit-date.bat b/tools/get-scala-commit-date.bat new file mode 100644 index 0000000000..a07155533f --- /dev/null +++ b/tools/get-scala-commit-date.bat @@ -0,0 +1,24 @@ +@echo off +rem +rem Usage: get-scala-revison.bat [dir] +rem Figures out current scala commit date of a git clone. +rem +rem If no dir is given, current working dir is used. + +@setlocal +set _DIR= +if "%*"=="" ( + for /f "delims=;" %%i in ('cd') do set "_DIR=%%i" +) else ( + set "_DIR=%~1" +) +cd %_DIR% + +rem TODO - Check with a real windows user that this works! +if exist .git\NUL ( + for /f "tokens=1delims= " in ('git log --format="%ci" -1') do set commitdate=%%a + echo %commitdate% +) + +:end +@endlocal diff --git a/tools/get-scala-commit-drift b/tools/get-scala-commit-drift new file mode 100755 index 0000000000..4959826ec1 --- /dev/null +++ b/tools/get-scala-commit-drift @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# +# Usage: get-scala-commit-drift [dir] +# Figures out current commit drift of a git clone. +# If no dir is given, current working dir is used. +# +# Example output string: +# 123 +# +# Build drift = # of commits since last tag. + +[[ $# -eq 0 ]] || cd "$1" + +ensure_tag () { + sha=$1 + rev=$2 + + [[ -n $(git tag -l $rev) ]] || { + git tag -a -m "generated by get-scala-revision" $rev $sha + } +} + +# Ensure some baseline tags are present so if this repository's +# tags are screwed up or stale, we should still have a reference +# point for a build string. +ensure_tag 58cb15c40d v2.10.0-M1 +ensure_tag 29f3eace1e v2.9.1 +ensure_tag b0d78f6b9c v2.8.2 + +# the closest tag, obtained separately because we have to +# reconstruct the string around the padded distance. +tag=$(git describe --tags --match 'v2*' --abbrev=0) + +# printf %016s is not portable for 0-padding, has to be a digit. +# so we're stuck disassembling it. +described=$(git describe --tags --match 'v2*' --abbrev=10) +suffix="${described##${tag}-}" +counter=$(echo $suffix | cut -d - -f 1) + +echo "$counter" diff --git a/tools/get-scala-commit-drift.bat b/tools/get-scala-commit-drift.bat new file mode 100644 index 0000000000..ac289d3481 --- /dev/null +++ b/tools/get-scala-commit-drift.bat @@ -0,0 +1,21 @@ +@echo off +rem +rem Usage: get-scala-commit-drift.bat [dir] +rem Figures out current scala commit drift, of a clone. +rem +rem If no dir is given, current working dir is used. + +@setlocal +set _DIR= +if "%*"=="" ( + for /f "delims=;" %%i in ('cd') do set "_DIR=%%i" +) else ( + set "_DIR=%~1" +) +cd %_DIR% + +rem TODO - WRITE THIS +echo "TODO" + +:end +@endlocal diff --git a/tools/get-scala-revision b/tools/get-scala-commit-sha index 14c84d0ad4..0aa70d985c 100755 --- a/tools/get-scala-revision +++ b/tools/get-scala-commit-sha @@ -1,11 +1,11 @@ #!/usr/bin/env bash # -# Usage: get-scala-revision [dir] -# Figures out current scala revision of a git clone. +# Usage: get-scala-commit-sha [dir] +# Figures out current commit sha of a git clone. # If no dir is given, current working dir is used. # # Example build version string: -# v2.10.0-M1-0098-g6f1c486d0b-2012-02-01 +# g6f1c486d0b # [[ $# -eq 0 ]] || cd "$1" @@ -34,11 +34,6 @@ tag=$(git describe --tags --match 'v2*' --abbrev=0) # so we're stuck disassembling it. described=$(git describe --tags --match 'v2*' --abbrev=10) suffix="${described##${tag}-}" -counter=$(echo $suffix | cut -d - -f 1) hash=$(echo $suffix | cut -d - -f 2) -# remove any alphabetic characters before the version number -tag=$(echo $tag | sed "s/\([a-z_A-Z]*\)\(.*\)/\2/") - -# 20120324-123-b0d78f7b9c -printf "%s-%04d-%s\n" $(date "+%Y%m%d") "$counter" "$hash" +echo "$hash" diff --git a/tools/get-scala-commit-sha.bat b/tools/get-scala-commit-sha.bat new file mode 100644 index 0000000000..80d9aa34b1 --- /dev/null +++ b/tools/get-scala-commit-sha.bat @@ -0,0 +1,21 @@ +@echo off +rem +rem Usage: get-scala-commit-drift.bat [dir] +rem Figures out current scala commit drift, of a clone. +rem +rem If no dir is given, current working dir is used. + +@setlocal +set _DIR= +if "%*"=="" ( + for /f "delims=;" %%i in ('cd') do set "_DIR=%%i" +) else ( + set "_DIR=%~1" +) +cd %_DIR% + +rem TODO - truncate chars. +git log -1 --format="%T" + +:end +@endlocal diff --git a/tools/get-scala-revision.bat b/tools/get-scala-revision.bat deleted file mode 100644 index b5b30eb3a8..0000000000 --- a/tools/get-scala-revision.bat +++ /dev/null @@ -1,27 +0,0 @@ -@echo off -rem -rem Usage: get-scala-revison.bat [dir] -rem Figures out current scala revision of a git clone. -rem -rem If no dir is given, current working dir is used. - -@setlocal -set _DIR= -if "%*"=="" ( - for /f "delims=;" %%i in ('cd') do set "_DIR=%%i" -) else ( - set "_DIR=%~1" -) -cd %_DIR% - -rem TODO - Look up bat scripting example and fix the darn string. -if exist .git\NUL ( - git describe --abbrev=10 --always --tags -) - -rem Implement something like the following -rem for /f "tokens=1,2,3 delims=- " %%a in ("%gitdescribe%") do set version=%%a&set commits=%%b&set sha=%%c -rem echo %date?%-%commits%-%sha% - -:end -@endlocal |