From 1d7872dad51de9c97b3902418ffb6b8ac003976d Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 13:35:57 -0400 Subject: [PATCH 1/9] notes --- MIGRATION.md | 17 +++++++++++------ notes/1.0.0-M1.markdown | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 notes/1.0.0-M1.markdown diff --git a/MIGRATION.md b/MIGRATION.md index c9e38e23b..34f1c5c14 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, is 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/notes/1.0.0-M1.markdown b/notes/1.0.0-M1.markdown new file mode 100644 index 000000000..f619bddb5 --- /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 binrary 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._ From dac9d2135cc20fed32cc3f2cd5cfd83a78e125bd Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 14:49:43 -0400 Subject: [PATCH 2/9] readme --- README.md | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) 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 ------- From f96d3a2540be7b9ffff98a73e472d22818cf9ddd Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 14:50:28 -0400 Subject: [PATCH 3/9] rename conscripted app from sbt to xsbt --- src/main/conscript/{sbt => xsbt}/launchconfig | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/conscript/{sbt => xsbt}/launchconfig (100%) 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 From d150825e18d6e0672f63aac0058d5970827c878d Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 15:01:00 -0400 Subject: [PATCH 4/9] Set crossScalaVersions for sbt --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index ba52ef28e..dbd430c20 100644 --- a/build.sbt +++ b/build.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) ) From 426f43f61815896c060ee7491857a0edca53b78e Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 15:29:28 -0400 Subject: [PATCH 5/9] Fix bintrayRepository --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index dbd430c20..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", From d887d7d824f3c10a3425dc6ddbe203c896b9f891 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 16:18:23 -0400 Subject: [PATCH 6/9] Fix POM settings --- project/Util.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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)) From 0144a47ce6d64728583981528d56d58bc4fb13df Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 16:21:23 -0400 Subject: [PATCH 7/9] Include new repositories to grab sbt --- launch/src/main/input_resources/sbt/sbt.boot.properties | 2 ++ 1 file changed, 2 insertions(+) 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 From 638c290e620dc5784a62947097da6922cb4f5d5d Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 16:45:20 -0400 Subject: [PATCH 8/9] Fix launcher publishing --- project/Release.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) From 2e868fbc92e1a9cf49ecba5cb20c3a596f899065 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 8 May 2016 17:13:23 -0400 Subject: [PATCH 9/9] Typo fixes --- MIGRATION.md | 2 +- notes/1.0.0-M1.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 34f1c5c14..10fe5701b 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -5,7 +5,7 @@ Migration notes - 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. +- The incremental compiler, called Zinc, uses class-based name hashing. - Zinc drops support for Scala 2.8.x and 2.9.x. #### Additional import required diff --git a/notes/1.0.0-M1.markdown b/notes/1.0.0-M1.markdown index f619bddb5..53bcea664 100644 --- a/notes/1.0.0-M1.markdown +++ b/notes/1.0.0-M1.markdown @@ -1,5 +1,5 @@ This is the first milestone (beta) release of sbt 1.0. -There's no binrary compatibility with sbt 0.13 or other future versions. +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.