mirror of https://github.com/sbt/sbt.git
Move release notes
This commit is contained in:
parent
69385029ed
commit
3ec0734f6c
|
|
@ -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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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 `--<command>` that was added in 0.13.1 to `early(<command>)`. 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
|
||||||
Loading…
Reference in New Issue