From 3c972ec12122b1bd62bacaae9d4c507338add7df Mon Sep 17 00:00:00 2001 From: Hao Huang Date: Wed, 3 May 2017 18:28:10 -0700 Subject: Remove the next version in sbt-release --- src/main/scala/xyz.driver.sbt/SbtSettings.scala | 27 +++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/scala/xyz.driver.sbt/SbtSettings.scala b/src/main/scala/xyz.driver.sbt/SbtSettings.scala index 9b0d4f8..539a5a4 100644 --- a/src/main/scala/xyz.driver.sbt/SbtSettings.scala +++ b/src/main/scala/xyz.driver.sbt/SbtSettings.scala @@ -14,13 +14,14 @@ import sbtassembly._ import sbtbuildinfo.BuildInfoPlugin import sbtbuildinfo.BuildInfoPlugin.autoImport.{BuildInfoKey, BuildInfoOption, _} import sbtdocker.DockerPlugin +import sbtrelease.ReleasePlugin.autoImport.ReleaseKeys._ import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations._ import sbtrelease.ReleasePlugin.autoImport._ import sbtrelease.{Version, _} import wartremover.WartRemover.autoImport._ // we hide the existing definition for setReleaseVersion to replace it with our own -import sbtrelease.ReleaseStateTransformations.{setReleaseVersion => recordReleaseVersion} +import sbtrelease.ReleaseStateTransformations.{setReleaseVersion => recordReleaseVersion, inquireVersions => _} /** * @see https://engineering.sharethrough.com/blog/2015/09/23/capturing-common-config-with-an-sbt-parent-plugin/ @@ -135,6 +136,25 @@ object SbtSettings extends AutoPlugin { lazy val setReleaseVersion: ReleaseStep = setVersionOnly(_._1) + // Remove the prompt for next version + lazy val inquireVersions: ReleaseStep = { st: State => + val extracted = Project.extract(st) + + val useDefs = st.get(useDefaults).getOrElse(false) + val currentV = extracted.get(version) + + val releaseFunc = extracted.get(releaseVersion) + val suggestedReleaseV = releaseFunc(currentV) + + // flatten the Option[Option[String]] as the get returns an Option, and the value inside is an Option + val releaseV = + readVersion(suggestedReleaseV, "Release version [%s] : ", useDefs, st.get(commandLineReleaseVersion).flatten) + val nextV = releaseV + + st.put(versions, (releaseV, nextV)) + + } + def ServiceReleaseProcess = { Seq[ReleaseStep]( checkSnapshotDependencies, @@ -161,7 +181,6 @@ object SbtSettings extends AutoPlugin { def releaseSettings(releaseProcessSteps: Seq[ReleaseStep]): Seq[Setting[_]] = { - val showNextVersion = settingKey[String]("the future version once releaseNextVersion has been applied to it") val showReleaseVersion = settingKey[String]("the future version once releaseNextVersion has been applied to it") Seq( releaseIgnoreUntrackedFiles := true, @@ -170,11 +189,7 @@ object SbtSettings extends AutoPlugin { releaseVersion := { ver => Version(ver).map(_.bumpBugfix.withoutQualifier.string).getOrElse(versionFormatError) }, - releaseNextVersion <<= releaseVersionBump(bumper => { ver => - Version(ver).map(_.bumpBugfix.withoutQualifier.string + "-SNAPSHOT").getOrElse(versionFormatError) - }), showReleaseVersion <<= (version, releaseVersion)((v, f) => f(v)), - showNextVersion <<= (version, releaseNextVersion)((v, f) => f(v)), releaseProcess := releaseProcessSteps ) } -- cgit v1.2.3