diff --git a/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/DefPlugin.scala b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/DefPlugin.scala new file mode 100644 index 000000000..a108440a8 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/DefPlugin.scala @@ -0,0 +1,6 @@ +import sbt._ +import Keys._ + +object DefPlugin extends Plugin { + val aValue = "demo" +} diff --git a/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/def.sbt b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/def.sbt new file mode 100644 index 000000000..2815ceedc --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/def.sbt @@ -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 diff --git a/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-build.sbt b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-build.sbt new file mode 100644 index 000000000..813c360de --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-build.sbt @@ -0,0 +1 @@ +name := aValue diff --git a/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-plugins.sbt b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-plugins.sbt new file mode 100644 index 000000000..6d8030900 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/latest-local-plugin/changes/use-plugins.sbt @@ -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 +} diff --git a/sbt/src/sbt-test/dependency-management/latest-local-plugin/pending b/sbt/src/sbt-test/dependency-management/latest-local-plugin/pending new file mode 100644 index 000000000..0cebbc398 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/latest-local-plugin/pending @@ -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 +