Pending test case for #805.

This commit is contained in:
Mark Harrah 2013-09-18 10:27:19 -04:00
parent 6755f2595b
commit f93624d8a4
5 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,6 @@
import sbt._
import Keys._
object DefPlugin extends Plugin {
val aValue = "demo"
}

View File

@ -0,0 +1,18 @@
lazy val stable = settingKey[Boolean]("Build stable release (true) or not (false).")
stable := (baseDirectory.value / "make-stable").exists
name := "def"
sbtPlugin := true
organization := "org.example"
version := ( if(stable.value) "1.0" else "1.1-SNAPSHOT" )
publishTo := {
val base = baseDirectory.value / ( if(stable.value) "stable" else "snapshot" )
Some( Resolver.file("local-" + base, base)(Resolver.ivyStylePatterns) )
}
publishMavenStyle := false

View File

@ -0,0 +1 @@
name := aValue

View File

@ -0,0 +1,6 @@
addSbtPlugin("org.example" % "def" % "latest.integration")
resolvers ++= {
def r(tpe: String) = Resolver.file(s"local-$tpe", baseDirectory.value / ".." / tpe)(Resolver.ivyStylePatterns)
r("stable") :: r("snapshot") :: Nil
}

View File

@ -0,0 +1,40 @@
$ mkdir stable snapshot
# publish 1.0, stable release to local-stable/ repository
$ copy-file changes/def.sbt def.sbt
$ touch make-stable
> reload
> publish
# resolve that release for use as a plugin
# this should fail because build.sbt won't find aValue,
# which isn't in this release
$ delete make-stable
$ delete def.sbt
$ copy-file changes/use-plugins.sbt project/plugins.sbt
$ copy-file changes/use-build.sbt build.sbt
-> reload
# publish 1.1-SNAPSHOT to local-snapshot/ repository
# this time, include aValue
$ delete project
$ delete target
$ delete build.sbt
$ copy-file changes/def.sbt def.sbt
$ copy-file changes/DefPlugin.scala DefPlugin.scala
> reload
> publish
# resolve the latest.integration release, which should
# get 1.1-SNAPSHOT and succeed because aValue is now available
$ delete def.sbt
$ delete DefPlugin.scala
$ copy-file changes/use-plugins.sbt project/plugins.sbt
$ copy-file changes/use-build.sbt build.sbt
> reload