sbt/notes/1.0.0-M4.markdown

2.2 KiB

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 implementations 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 #2577
  • Build.scala style builds are gone. Use multi-project build.sbt. #2524
  • Project(...) constructor is restricted down to two parameters. Use project instead. #2543
  • sbt.Plugin is also gone. Use auto plugins. #2575
  • The incremental compiler, called Zinc, uses class-based name hashing. zinc#86 by @gkossakowski
  • 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._

Travis CI instruction

Travis CI uses unofficial sbt-extra launcher, so you might need to do the following to use 1.0.0-M4:

language: scala

scala:
   - 2.11.8

before_install:
  - mkdir launcher
  - curl https://repo1.maven.org/maven2/org/scala-sbt/launcher/1.0.0/launcher-1.0.0.jar > launcher/sbt-launch.jar
  - curl https://raw.githubusercontent.com/sbt/sbt/v1.0.0-M4/src/main/conscript/xsbt/launchconfig > launcher/launchconfig

script:
   - java -Xms2048M -Xmx2048M -Xss6M -XX:MaxPermSize=512M -jar launcher/sbt-launch.jar @launcher/launchconfig ++$TRAVIS_SCALA_VERSION test