diff options
-rwxr-xr-x | release.sh | 35 | ||||
-rw-r--r-- | src/test/scala/scala/async/package.scala | 2 |
2 files changed, 37 insertions, 0 deletions
diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..826b62d --- /dev/null +++ b/release.sh @@ -0,0 +1,35 @@ +#! /bin/bash -e +# +# Build, test, and release Scala Async. +# +# Requires credentials: +# +# % cat ~/.sbt/0.13/publish.sbt +# credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "<user>", "<pass>") + +function sbt211() { + sbt 'set scalaVersion := "2.11.0-M6"' 'set scalaBinaryVersion := scalaVersion.value' $@ + return $? +} +die () { + echo "$@" + exit 1 +} + +CHECK=";clean;test;publishLocal" +RELEASE=";clean;test;publish" +VERSION=`gsed -rn 's/version :=.*"(.+).*"/\1/p' build.sbt` +[[ -n "$(git status --porcelain)" ]] && die "working directory is not clean!" + +sbt211 $CHECK +sbt $CHECK +sbt $RELEASE +sbt211 $RELEASE + +cat <<EOM +Released! For non-snapshot releases: + - tag: git tag -s -a v$VERSION -m "scala-async $VERSION" + - push tag: git push origin v$VERSION + - close the staging repository: https://oss.sonatype.org + - change the version number in build.sbt to a suitable -SNAPSHOT version +EOM
\ No newline at end of file diff --git a/src/test/scala/scala/async/package.scala b/src/test/scala/scala/async/package.scala index 7c42024..98d2256 100644 --- a/src/test/scala/scala/async/package.scala +++ b/src/test/scala/scala/async/package.scala @@ -43,8 +43,10 @@ package object async { } def scalaBinaryVersion: String = { + val PreReleasePattern = """.*-(M|RC).*""".r val Pattern = """(\d+\.\d+)\..*""".r scala.util.Properties.versionNumberString match { + case s @ PreReleasePattern(_) => s case Pattern(v) => v case _ => "" } |