diff --git a/MIGRATION.md b/MIGRATION.md index c9e38e23b..10fe5701b 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,11 +1,16 @@ Migration notes =============== -- `project/Build.scala` style based on `sbt.Build` is removed. Migrate to `build.sbt`. -- `Project(...)` constructor is limited to just two parameters. +- Build definition is based on Scala 2.11.8 +- Build.scala style builds are gone. Use multi-project `build.sbt`. +- `Project(...)` constructor is restricted down to two parameters. Use `project` instead. +- `sbt.Plugin` is also gone. Use auto plugins. +- The incremental compiler, called Zinc, uses class-based name hashing. +- Zinc drops support for Scala 2.8.x and 2.9.x. -- change import in auto plugin to: +#### Additional import required -```scala -import sbt._, syntax._, Keys._ -``` +Implicit conversions are moved to `sbt.syntax`. Add the following imports to auto plugins +or `project/*.scala`. + + import sbt._, syntax._, Keys._ diff --git a/README.md b/README.md index 84eec326a..d71adbfeb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - [Google Code]: http://code.google.com/p/simple-build-tool + [sbt/sbt-zero-seven]: https://github.com/sbt/sbt-zero-seven [CONTRIBUTING]: CONTRIBUTING.md [Setup]: http://www.scala-sbt.org/release/docs/Getting-Started/Setup [FAQ]: http://www.scala-sbt.org/release/docs/Faq.html @@ -6,6 +6,11 @@ [searching]: http://stackoverflow.com/tags/sbt [asking]: https://stackoverflow.com/questions/ask?tags=sbt [LICENSE]: LICENSE + [sbt/io]: https://github.com/sbt/io + [sbt/util]: https://github.com/sbt/util + [sbt/librarymanagement]: https://github.com/sbt/librarymanagement + [sbt/zinc]: https://github.com/sbt/zinc + [sbt/sbt]: https://github.com/sbt/sbt sbt === @@ -14,21 +19,30 @@ sbt is a build tool for Scala, Java, and more. For general documentation, see http://www.scala-sbt.org/. +sbt 1.0.x +--------- + +This is the 1.0.x series of sbt. The source code of sbt is split across +several Github repositories, including this one. + +- [sbt/io][sbt/io] hosts `sbt.io` module. +- [sbt/util][sbt/util] hosts a collection of internally used modules. +- [sbt/librarymanagement][sbt/librarymanagement] hosts `sbt.librarymanagement` module that wraps Ivy. +- [sbt/zinc][sbt/zinc] hosts Zinc, an incremental compiler for Scala. +- [sbt/sbt][sbt/sbt], this repository hosts modules that implements the build tool. + +### Other links + + * [Setup]: Describes getting started with the latest binary release. + * [FAQ]: Explains how to get help and more. + * [sbt/sbt-zero-seven]: hosts sbt 0.7.7 and earlier versions + Issues and Pull Requests ------------------------ Please read [CONTRIBUTING] carefully before opening a GitHub Issue. -The short version: try [searching] or [asking] on StackOverflow and [sbt-dev]. Don't open an Issue. - -sbt 1.0.x --------- - -This is the 1.0.x series of sbt. - - * [Setup]: Describes getting started with the latest binary release. - * [FAQ]: Explains how to get help and more. - * [Google Code]: hosts sbt 0.7.7 and earlier versions +The short version: try [searching] or [asking] on StackOverflow and [sbt-dev]. license ------- diff --git a/build.sbt b/build.sbt index ba52ef28e..045937981 100644 --- a/build.sbt +++ b/build.sbt @@ -13,7 +13,7 @@ def buildLevelSettings: Seq[Setting[_]] = inThisBuild(Seq( version := "1.0.0-SNAPSHOT", bintrayOrganization := Some("sbt"), bintrayRepository := { - if (isSnapshot.value) "maven-releases" + if (!isSnapshot.value) "maven-releases" else "maven-snapshots" }, bintrayPackage := "sbt", @@ -201,6 +201,7 @@ lazy val sbtProj = (project in file("sbt")). baseSettings, name := "sbt", normalizedName := "sbt", + crossScalaVersions := Seq(scala211), crossPaths := false, libraryDependencies ++= Seq(compilerBrdige) ) diff --git a/launch/src/main/input_resources/sbt/sbt.boot.properties b/launch/src/main/input_resources/sbt/sbt.boot.properties index 9234be5f8..0d3a64bb3 100644 --- a/launch/src/main/input_resources/sbt/sbt.boot.properties +++ b/launch/src/main/input_resources/sbt/sbt.boot.properties @@ -13,6 +13,8 @@ [repositories] local maven-central + sbt-maven-releases: https://repo.scala-sbt.org/scalasbt/maven-releases/, bootOnly + sbt-maven-snapshots: https://repo.scala-sbt.org/scalasbt/maven-snapshots/, bootOnly typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly sbt-ivy-snapshots: https://repo.scala-sbt.org/scalasbt/ivy-snapshots/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly diff --git a/notes/1.0.0-M1.markdown b/notes/1.0.0-M1.markdown new file mode 100644 index 000000000..53bcea664 --- /dev/null +++ b/notes/1.0.0-M1.markdown @@ -0,0 +1,23 @@ +This is the first milestone (beta) release of sbt 1.0. +There's no binary compatibility with sbt 0.13 or other future versions. + +The biggest change in sbt 1.0 from 0.13 is internal code reorganization to modules +(io, util, librarymanagement, zinc, and sbt), but hopefully this shouldn't affect you much. +In addition, classes and objects related to internal implemetations are moved to `sbt.internal`. +This package indicates that we won't keep binary compatibility for them. + +Here are some more relevant changes: + +- Build definition is based on Scala 2.11.8 +- Build.scala style builds are gone. Use multi-project `build.sbt`. +- `Project(...)` constructor is restricted down to two parameters. Use `project` instead. +- `sbt.Plugin` is also gone. Use auto plugins. +- The incremental compiler, called Zinc, is uses class-based name hashing. +- Zinc drops support for Scala 2.8.x and 2.9.x. + +#### Additional import required + +Implicit conversions are moved to `sbt.syntax`. Add the following imports to auto plugins +or `project/*.scala`. + + import sbt._, syntax._, Keys._ diff --git a/project/Release.scala b/project/Release.scala index 2c8d669fc..30c103b25 100644 --- a/project/Release.scala +++ b/project/Release.scala @@ -9,7 +9,10 @@ object Release { lazy val deployLauncher = TaskKey[Unit]("deploy-launcher", "Upload the launcher to its traditional location for compatibility with existing scripts.") def launcherSettings(launcher: TaskKey[File]): Seq[Setting[_]] = Seq( - launcherRemotePath := s"${organization.value}/${moduleName.value}/${version.value}/${moduleName.value}.jar", + launcherRemotePath := { + val organizationPath = organization.value.replaceAll("""\.""", "/") + s"$organizationPath/${moduleName.value}/${version.value}/${moduleName.value}.jar" + }, deployLauncher := { val repo = bintrayRepo.value repo.upload(bintrayPackage.value, version.value, launcherRemotePath.value, launcher.value, sLog.value) diff --git a/project/Util.scala b/project/Util.scala index b84f7f099..85a88ce06 100644 --- a/project/Util.scala +++ b/project/Util.scala @@ -78,7 +78,6 @@ object Util { def srcID = "compiler-interface-src" def publishPomSettings: Seq[Setting[_]] = Seq( - publishArtifact in makePom := false, pomPostProcess := cleanPom _ ) @@ -100,7 +99,7 @@ object Util { def excludePomDependency(node: scala.xml.Node) = node \ "artifactId" exists { n => excludePomArtifact(n.text) } - def excludePomArtifact(artifactId: String) = (artifactId == "compiler-interface") || (artifactId startsWith "precompiled") + def excludePomArtifact(artifactId: String) = (artifactId startsWith "compiler-bridge") val testExclusive = tags in test += ((ExclusiveTest, 1)) diff --git a/src/main/conscript/sbt/launchconfig b/src/main/conscript/xsbt/launchconfig similarity index 100% rename from src/main/conscript/sbt/launchconfig rename to src/main/conscript/xsbt/launchconfig