From 3ec0734f6c90dc4c57ab4ea10abb01a21d480d0a Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 15 Jan 2017 05:59:51 -0500 Subject: [PATCH] Move release notes --- notes/0.13.12.markdown | 80 ++++++++++++ notes/0.13.12/depends-on-build-sbt.md | 9 -- notes/0.13.12/native-script-support.md | 9 -- notes/0.13.13.markdown | 168 +++++++++++++++++++++++++ 4 files changed, 248 insertions(+), 18 deletions(-) create mode 100644 notes/0.13.12.markdown delete mode 100644 notes/0.13.12/depends-on-build-sbt.md delete mode 100644 notes/0.13.12/native-script-support.md create mode 100644 notes/0.13.13.markdown diff --git a/notes/0.13.12.markdown b/notes/0.13.12.markdown new file mode 100644 index 000000000..9a8d9162e --- /dev/null +++ b/notes/0.13.12.markdown @@ -0,0 +1,80 @@ + +### Fixes with compatibility implications + +- By default the Scala toolchain artifacts are now transitively resolved using the provided `scalaVersion` and + `scalaOrganization`. Previously a user specified `scalaOrganization` would not have affected transitive + dependencies on, eg. `scala-reflect`. An Ivy-level mechanism is used for this purpose, and as a consequence + the overriding happens early in the resolution process which might improve resolution times, and as a side + benefit fixes [#2286][2286]. The old behavior can be restored by adding + `ivyScala := { ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)} }` + to your build. [#2286][2286]/[#2634][2634] by [@milessabin][milessabin] +- The Build trait is deprecated in favor of the `.sbt` format [#2530][2530] by [@dwijnand][@dwijnand] + +### Improvements + +- When `RecompileOnMacroDef` is enabled, sbt will now print out a info level log indicating that some sources are being recompiled because it's used from a source that contains a macro definition. Can be disabled with `incOptions := incOptions.value.withLogRecompileOnMacro(false)` [#2637][2637]/[#2659][2659] by [@eed3si9n][@eed3si9n]/[@dwijnand][@dwijnand] +- Adds Windows script support and native file extensions on Unix platforms. [#2603][2603] by [@ekrich][@ekrich] +- Improves loading time of large builds. [#2630][2630] by [@eed3si9n][@eed3si9n] +- Adds the ability to call `dependsOn` for the current project inside a `.sbt` file. [#2653][2653] by [@anatolydwnld][@anatolydwnld] + +### Bug fixes + +- Fixes a 0.13.11 regression: dependency resolution hitting Maven Central even with repository overrides. [#2519][2519]/[#2569][2569] by [@eed3si9n][@eed3si9n] +- Fixes a 0.13.11 regression in incremental compiler: `IndexOutOfBoundsException` in ExtractAPI [#2497][2497]/[#2557][2557] by [@smarter][@smarter] +- Fixes merged dependency descriptors dropping configuration specification. [#2002][2002]/[#1500][1500] by [@eed3si9n][@eed3si9n] +- Fixes merged dependency descriptors creating non-existing artifacts. [#2431][2431]/[#2500][2500] by [@Duhemm][@Duhemm] +- Fixes incremental compilation misses when macro expansion references another source. [#2560][2560]/[#2563][2563] by [@eed3si9n][@eed3si9n] +- Fixes incremental compilation of package objects transitively in name hashing. [#2432][2432]/[#2326][2326] by [@gkossakowski][@gkossakowski] +- Fixes incremental compilation relying on filename of package objects. [#2438][2438] by [@Duhemm][@Duhemm] +- Provides a workaround flag `incOptions := incOptions.value.withIncludeSynthToNameHashing(true)` for name hashing not including synthetic methods. This will not be enabled by default in sbt 0.13. It can also enabled by passing `sbt.inc.include_synth=true` to JVM. [#2537][2537] by [@eed3si9n][@eed3si9n] +- Fixes tab completion for tasks defined in AutoPlugin's buildSettings [#2460][2460]/[#2469][2469] by [@Duhemm][@Duhemm] +- Fixes configuration merging during cached resolution. [#2435][2435]/[#2513][2513] by [@Duhemm][@Duhemm] + + [2637]: https://github.com/sbt/sbt/pull/2637 + [2286]: https://github.com/sbt/sbt/issues/2286 + [2634]: https://github.com/sbt/sbt/pull/2634 + [2530]: https://github.com/sbt/sbt/pull/2530 + [2460]: https://github.com/sbt/sbt/issues/2460 + [2469]: https://github.com/sbt/sbt/pull/2469 + [2432]: https://github.com/sbt/sbt/pull/2432 + [2326]: https://github.com/sbt/sbt/issues/2326 + [2438]: https://github.com/sbt/sbt/pull/2438 + [2431]: https://github.com/sbt/sbt/issues/2431 + [2500]: https://github.com/sbt/sbt/pull/2500 + [2435]: https://github.com/sbt/sbt/issues/2435 + [2513]: https://github.com/sbt/sbt/pull/2513 + [2560]: https://github.com/sbt/sbt/issues/2560 + [2563]: https://github.com/sbt/sbt/pull/2563 + [2519]: https://github.com/sbt/sbt/issues/2519 + [2569]: https://github.com/sbt/sbt/pull/2569 + [2497]: https://github.com/sbt/sbt/issues/2497 + [2557]: https://github.com/sbt/sbt/pull/2557 + [2603]: https://github.com/sbt/sbt/pull/2603 + [2630]: https://github.com/sbt/sbt/pull/2630 + [2653]: https://github.com/sbt/sbt/pull/2653 + [2642]: https://github.com/sbt/sbt/pull/2642 + [2002]: https://github.com/sbt/sbt/issues/2002 + [1500]: https://github.com/sbt/sbt/issues/1500 + [2537]: https://github.com/sbt/sbt/issues/2537 + [2659]: https://github.com/sbt/sbt/pull/2659 + + [@eed3si9n]: https://github.com/eed3si9n + [@jsuereth]: https://github.com/jsuereth + [@dwijnand]: http://github.com/dwijnand + [@Duhemm]: http://github.com/Duhemm + [@gkossakowski]: https://github.com/gkossakowski + [@adriaanm]: https://github.com/adriaanm + [@jrudolph]: https://github.com/jrudolph + [@stuhood]: https://github.com/stuhood + [@pdalpra]: https://github.com/pdalpra + [@fkorotkov]: http://github.com/fkorotkov + [@hgiddens]: https://github.com/hgiddens + [@DavidPerezIngeniero]: https://github.com/DavidPerezIngeniero + [@romanowski]: https://github.com/romanowski + [@timcharper]: https://github.com/timcharper + [@smarter]: https://github.com/smarter + [@retronym]: https://github.com/retronym + [milessabin]: https://github.com/milessabin + [@ekrich]: https://github.com/ekrich + [@smarter]: https://github.com/smarter + [@anatolydwnld]: https://github.com/anatolydwnld diff --git a/notes/0.13.12/depends-on-build-sbt.md b/notes/0.13.12/depends-on-build-sbt.md deleted file mode 100644 index 04bb4760c..000000000 --- a/notes/0.13.12/depends-on-build-sbt.md +++ /dev/null @@ -1,9 +0,0 @@ - [@anatolydwnld]: https://github.com/anatolydwnld - -### Fixes with compatibility implications - -### Improvements - -- Add the ability to call dependsOn for the current project inside a build sbt file. By [@anatolydwnld][@anatolydwnld] - -### Bug fixes diff --git a/notes/0.13.12/native-script-support.md b/notes/0.13.12/native-script-support.md deleted file mode 100644 index 67e4fda65..000000000 --- a/notes/0.13.12/native-script-support.md +++ /dev/null @@ -1,9 +0,0 @@ - [@ekrich]: https://github.com/ekrich - -### Fixes with compatibility implications - -### Improvements - -- Add Windows script support and native file extensions on Unix platforms. By [@ekrich][@ekrich] - -### Bug fixes \ No newline at end of file diff --git a/notes/0.13.13.markdown b/notes/0.13.13.markdown new file mode 100644 index 000000000..75b5c31c5 --- /dev/null +++ b/notes/0.13.13.markdown @@ -0,0 +1,168 @@ + +### Fixes with compatibility implications + +- Deprecates the old sbt 0.12 DSL, to be removed in sbt 1.0. See below for more details. +- The `.value` method is deprecated for input tasks. Calling `.value` on an input key returns an `InputTask[A]`, + which is completely unintuitive and often results in a bug. In most cases `.evaluated` should be called, + which returns `A` by evaluating the task. + Just in case `InputTask[A]` is needed, `.inputTaskValue` method is now provided. [#2709][2709] by [@eed3si9n][@eed3si9n] +- sbt 0.13.13 renames the early command `--` that was added in 0.13.1 to `early()`. This fixes the regression [#1041][1041]. For backward compatibility `--error`, `--warn`, `--info`, and `--debug` will continue to function during the 0.13 series, but it is strongly encouraged to migrate to the single hyphen options: `-error`, `-warn`, `-info`, and `-debug`. [#2742][2742] by [@eed3si9n][@eed3si9n] +- Improve `show` when key returns a `Seq` by showing the elements one per line. Disable with `-Dsbt.disable.show.seq=true`. [#2755][2755] by [@eed3si9n][@eed3si9n] +- Recycles classloaders to be anti-hostile to JIT. Disable with `-Dsbt.disable.interface.classloader.cache=true`. [#2754][2754] by [@retronym][@retronym] + +### Improvements + +- Adds `new` command and `templateResolverInfos`. See below for more details. +- Auto plugins can add synthetic subprojects. See below for more details. +- Supports wildcard exclusions in POMs [#1431][1431]/[sbt/ivy#22][sbt-ivy-22]/[#2731][2731] by [@jtgrabowski][@jtgrabowski] +- Adds the ability to call `aggregateProjects(..)` for the current project inside a build sbt file. [#2682][2682] by [@xuwei-k][@xuwei-k] +- Adds `.jvmopts` support to the launcher script. [sbt/sbt-launcher-package#111][111] by [@fommil][@fommil] +- Adds `.java-version` support to the Windows launcher script. [sbt/sbt-launcher-package#111][111] by [@fommil][@fommil] +- The startup log level is dropped to `-error` in script mode using `scalas`. [#840][840]/[#2746][2746] by [@eed3si9n][@eed3si9n] +- Adds `CrossVersion.patch` which sits in between `CrossVersion.binary` and `CrossVersion.full` in that it strips off any + trailing `-bin-...` suffix which is used to distinguish variant but binary compatible Scala toolchain builds. Most things + which are currently `CrossVersion.full` (eg. Scala compiler plugins, esp. macro-paradise) would be more appropriately + depended on as `CrossVersion.patch` from this release on. + +### Bug fixes + +- Fixes a regression in sbt 0.13.12 that wrongly reports build-level keys to be ambiguous. [#2707][2707]/[#2708][2708] by [@Duhemm][@Duhemm] +- Fixes a regression in sbt 0.13.12 that was misfiring Scala version enforcement when an alternative `scalaOrganization` is set. [#2703][2703] by [@milessabin][@milessabin] +- Fixes `Tags.ForkedTestGroup`. [#2677][2677]/[#2681][2681] by [@pauldraper][@pauldraper] +- Fixes forked tests being reported as successful when the test harness fails. [#2442][2442]/[#2722][2722]/[#2730][2730] by [@eed3si9n][@eed3si9n]/[@dwijnand][@dwijnand] +- Fixes incorrect installation path on Windows. [sbt/sbt-launcher-package#110][110] by [@dwijnand][@dwijnand] + +### new command and templateResolverInfos + +sbt 0.13.13 adds a `new` command, which helps create new build definitions. +The `new` command is extensible via a mechanism called the template resolver. +A template resolver pattern matches on the passed in arguments after `new`, +and if it's a match it will apply the template. + +As a reference implementation, template resolver for [Giter8][g8] is provided. For instance: + + sbt new eed3si9n/hello.g8 + +will run [eed3si9n/hello.g8][] using Giter8. + +[#2705][2705] by [@eed3si9n][@eed3si9n] + +### Synthetic subprojects + +sbt 0.13.13 adds support for `AutoPlugin`s to define subprojects programmatically, +by overriding the `extraProjects` method: + + import sbt._, Keys._ + + object ExtraProjectsPlugin extends AutoPlugin { + override def extraProjects: Seq[Project] = + List("foo", "bar", "baz") map generateProject + + def generateProject(id: String): Project = + Project(id, file(id)). + settings( + name := id + ) + } + +In addition, subprojects may be derived from an existing subproject +by overriding `derivedProjects`: + + import sbt._, Keys._ + + object DerivedProjectsPlugin extends AutoPlugin { + // Enable this plugin by default + override def requires: Plugins = sbt.plugins.CorePlugin + override def trigger = allRequirements + + override def derivedProjects(proj: ProjectDefinition[_]): Seq[Project] = + // Make sure to exclude project extras to avoid recursive generation + if (proj.projectOrigin != ProjectOrigin.DerivedProject) { + val id = proj.id + "1" + Seq( + Project(id, file(id)). + enablePlugins(DatabasePlugin) + ) + } + else Nil + } + +[#2532][2532]/[#2717][2717]/[#2738][2738] by [@eed3si9n][@eed3si9n] + +### Deprecate old sbt 0.12 DSL + +The no-longer-documented operators `<<=`, `<+=`, and `<++=` and tuple enrichments are deprecated, +and will be removed in sbt 1.0. + +Generally, + + task3 <<= (task1, task2) map { (t1, t2) => println(t1 + t2); t1 + t2 } + +should migrate to + + task3 := { + println(task1.value + task2.value) + task1.value + task2.value + } + +Except for source generators, which requires task values: + + sourceGenerators in Compile <+= buildInfo + +This becomes: + + sourceGenerators in Compile += buildInfo.taskValue + +Another exception is input task: + + run <<= docsRunSetting + +This becomes: + + run := docsRunSetting.evaluated + +See [Migrating from sbt 0.12.x](http://www.scala-sbt.org/0.13/docs/Migrating-from-sbt-012x.html) for more details. + +[#2716][2716]/[#2763][2763]/[#2764][2764] by [@eed3si9n][@eed3si9n] and [@dwijnand][@dwijnand] + + [g8]: http://www.foundweekends.org/giter8/ + [eed3si9n/hello.g8]: https://github.com/eed3si9n/hello.g8 + + [840]: https://github.com/sbt/sbt/issues/840 + [1041]: https://github.com/sbt/sbt/issues/1041 + [1431]: https://github.com/sbt/sbt/issues/1431 + [2442]: https://github.com/sbt/sbt/issues/2442 + [2532]: https://github.com/sbt/sbt/issues/2532 + [2677]: https://github.com/sbt/sbt/issues/2677 + [2681]: https://github.com/sbt/sbt/pull/2681 + [2705]: https://github.com/sbt/sbt/pull/2705 + [2682]: https://github.com/sbt/sbt/pull/2682 + [2703]: https://github.com/sbt/sbt/pull/2703 + [2707]: https://github.com/sbt/sbt/issues/2707 + [2708]: https://github.com/sbt/sbt/issues/2708 + [2709]: https://github.com/sbt/sbt/pull/2709 + [2716]: https://github.com/sbt/sbt/pull/2716 + [2717]: https://github.com/sbt/sbt/pull/2717 + [2722]: https://github.com/sbt/sbt/issues/2722 + [2730]: https://github.com/sbt/sbt/pull/2730 + [2731]: https://github.com/sbt/sbt/pull/2731 + [2738]: https://github.com/sbt/sbt/issues/2738 + [2742]: https://github.com/sbt/sbt/pull/2742 + [2746]: https://github.com/sbt/sbt/pull/2746 + [2754]: https://github.com/sbt/sbt/pull/2754 + [2755]: https://github.com/sbt/sbt/pull/2755 + [2763]: https://github.com/sbt/sbt/issues/2763 + [2764]: https://github.com/sbt/sbt/pull/2764 + [110]: https://github.com/sbt/sbt-launcher-package/pull/110 + [111]: https://github.com/sbt/sbt-launcher-package/pull/111 + [sbt-ivy-22]: https://github.com/sbt/ivy/pull/22 + + [@eed3si9n]: https://github.com/eed3si9n + [@dwijnand]: https://github.com/dwijnand + [@Duhemm]: https://github.com/Duhemm + [@xuwei-k]: https://github.com/xuwei-k + [@jtgrabowski]: https://github.com/jtgrabowski + [@fommil]: https://github.com/fommil + [@milessabin]: https://github.com/milessabin + [@pauldraper]: https://github.com/pauldraper + [@retronym]: https://github.com/retronym