mirror of https://github.com/sbt/sbt.git
166 lines
9.2 KiB
Markdown
166 lines
9.2 KiB
Markdown
|
|
[@cunei]: https://github.com/cunei
|
|
[@eed3si9n]: https://github.com/eed3si9n
|
|
[@gkossakowski]: https://github.com/gkossakowski
|
|
[@jsuereth]: https://github.com/jsuereth
|
|
[@dwijnand]: http://github.com/dwijnand
|
|
[@ajsquared]: https://github.com/ajsquared
|
|
[@jroper]: https://github.com/jroper
|
|
[@kamilkloch]: https://github.com/kamilkloch
|
|
[@DavidPerezIngeniero]: https://github.com/DavidPerezIngeniero
|
|
[@PanAeon]: https://github.com/PanAeon
|
|
[@asflierl]: http://github.com/asflierl
|
|
[@matthewfarwell]: http://github.com/matthewfarwell
|
|
[SI9027]: https://issues.scala-lang.org/browse/SI-9027
|
|
[1950]: https://github.com/sbt/sbt/pull/1950
|
|
[1987]: https://github.com/sbt/sbt/pull/1987
|
|
[1970]: https://github.com/sbt/sbt/pull/1970
|
|
[1960]: https://github.com/sbt/sbt/pull/1960
|
|
[1562]: https://github.com/sbt/sbt/issues/1562
|
|
[1900]: https://github.com/sbt/sbt/issues/1900
|
|
[1940]: https://github.com/sbt/sbt/pull/1940
|
|
[1922]: https://github.com/sbt/sbt/pull/1922
|
|
[1721]: https://github.com/sbt/sbt/issues/1721
|
|
[2014]: https://github.com/sbt/sbt/issues/2014
|
|
[2030]: https://github.com/sbt/sbt/pull/2030
|
|
[1998]: https://github.com/sbt/sbt/issues/1998
|
|
[2000]: https://github.com/sbt/sbt/pull/2000
|
|
[1828]: https://github.com/sbt/sbt/issues/1828
|
|
[1992]: https://github.com/sbt/sbt/pull/1992
|
|
[1961]: https://github.com/sbt/sbt/issues/1961
|
|
[1223]: https://github.com/sbt/sbt/issues/1223
|
|
[1773]: https://github.com/sbt/sbt/pull/1773
|
|
[2028]: https://github.com/sbt/sbt/issues/2028
|
|
[1651]: https://github.com/sbt/sbt/issues/1651
|
|
[1990]: https://github.com/sbt/sbt/pull/1990
|
|
[1847]: https://github.com/sbt/sbt/issues/1847
|
|
[1989]: https://github.com/sbt/sbt/pull/1989
|
|
[1856]: https://github.com/sbt/sbt/issues/1856
|
|
[1877]: https://github.com/sbt/sbt/issues/1877
|
|
[2035]: https://github.com/sbt/sbt/pull/2035
|
|
[2001]: https://github.com/sbt/sbt/issues/2001
|
|
[2027]: https://github.com/sbt/sbt/pull/2027
|
|
[1666]: https://github.com/sbt/sbt/issues/1666
|
|
[2068]: https://github.com/sbt/sbt/pull/2068
|
|
[2005]: https://github.com/sbt/sbt/issues/2005
|
|
[2075]: https://github.com/sbt/sbt/pull/2075
|
|
[1973]: https://github.com/sbt/sbt/issues/1973
|
|
[2006]: https://github.com/sbt/sbt/pull/2006
|
|
[2008]: https://github.com/sbt/sbt/issues/2008
|
|
[2009]: https://github.com/sbt/sbt/pull/2009
|
|
[2046]: https://github.com/sbt/sbt/issues/2046
|
|
[2097]: https://github.com/sbt/sbt/pull/2097
|
|
[2129]: https://github.com/sbt/sbt/pull/2129
|
|
[1938]: https://github.com/sbt/sbt/pull/1938
|
|
|
|
### Fixes with compatibility implications
|
|
|
|
- Starting 0.13.9, `crossScalaVersions` default value is fixed back to the older 0.12.x behavior. See below for details.
|
|
- Starting 0.13.9, the generated POM files no longer include dependencies on source or javadoc jars obtained via `withSources()` or `withJavadoc()`. See below for details.
|
|
- Scala version is bumped to 2.10.5. This brings in the fix for [SI-9027][SI9027]: XML node sequence literal bug. [#1666][1666]/[#2068][2068] by [@eed3si9n][@eed3si9n]
|
|
- Change launcher configuration so [JCenter](https://bintray.com/bintray/jcenter) is looked at first before all other external repositories. [#1938][1938]
|
|
|
|
### Improvements
|
|
|
|
- Adds `retrieveManaged` related improvements. See below for details.
|
|
- Adds `-=` and `--=` for settings and tasks, which are the opposites of `+=` and `++=`. [#1922][1922] by [@dwijnand][@dwijnand]
|
|
- Adds `inThisBuild`, similar to `inConfig`, to allow specifying multiple settings in `ThisBuild` scope. [#1847][1847]/[#1989][1989] by [@dwijnand][@dwijnand]
|
|
- Adds a nicer toString to SimpleCommand to make it more human-friendly. [#1998][1998]/[#2000][2000] by [@dwijnand][@dwijnand]
|
|
- Adds `forceUpdatePeriod` key, that takes values of `Option[FiniteDuration]`. If set, a full `update` will occur after that amount of time without needing to explicitly run the `update` task. By [@ajsquared][@ajsquared]
|
|
- Updates `ForkError.getMessage()` to include exception's original name. [#2028][2028] by [@kamilkloch][@kamilkloch]
|
|
- Adds help message for `inspect actual`. [#1651][1651]/[#1990][1990] by [@dwijnand][@dwijnand]
|
|
- Supports excluding tests in `testOnly`/`testQuick` with `-`, for example `-MySpec`.
|
|
[#1970][1970] by [@matthewfarwell][@matthewfarwell]
|
|
- Adds more diagnostic info for underfined settings.
|
|
[#2008][2008]/[#2009][2009] by [@DavidPerezIngeniero][@DavidPerezIngeniero]
|
|
- Adds an `Extracted.runInputTask` helper to assist with imperatively executing input tasks. [#2006][2006] by [@jroper][@jroper]
|
|
- Renames `distinct` method on `PathFinder` to `distinctName`. [#1973][1973] by [@eed3si9n][@eed3si9n]
|
|
- Adds `distinctPath` method on `PathFinder`. [#1973][1973] by [@eed3si9n][@eed3si9n]
|
|
|
|
### Bug fixes
|
|
|
|
- Fixes memory/performance/correctness issue with cached resolution. See below.
|
|
- Correct incremental compile debug message for invalidated products [#1961][1961] by [@jroper][@jroper]
|
|
- Enables forced GC by default. See below.
|
|
- Fixes Maven compatibility to read `maven-metadata.xml`. See below.
|
|
- Captures errors on `help` command. [#1900][1900]/[#1940][1940] by [@DavidPerezIngeniero][@DavidPerezIngeniero]
|
|
- Prevents history command(s) from going into an infinite loop [#1562][1562] by [@PanAeon][@PanAeon]
|
|
- Honors overwrite flag when publishing locally. [#1960][1960] by [@asflierl][@asflierl]
|
|
- Fixes a certain class of pom corruption that can occur in the presence of parent-poms. [#1856][1856] by [@jsuereth][@jsuereth]
|
|
- Adds dependency-level exclusions in the POM for project-level exclusions. [#1877][1877]/[#2035][2035] by [@dwijnand][@dwijnand]
|
|
|
|
### `crossScalaVersions` default value
|
|
|
|
As of this fix `crossScalaVersions` returns to the behaviour present in `0.12.4` whereby it defaults to what
|
|
`scalaVersion` is set to, for example if `scalaVersion` is set to `"2.11.6"`, `crossScalaVersions` now defaults
|
|
to `Seq("2.11.6")`.
|
|
|
|
Therefore when upgrading from any version between `0.13.0` and `0.13.8` be aware of this new default if
|
|
your build setup depended on it.
|
|
|
|
[#1828][1828]/[#1992][1992] by [@dwijnand][@dwijnand]
|
|
|
|
### POM files no longer include certain source and javadoc jars
|
|
|
|
When declaring library dependencies using the withSources() or withJavadoc() options, sbt was also including
|
|
in the pom file, as dependencies, the source or javadoc jars using the default Maven scope. Such dependencies
|
|
might be erroneously processed as they were regular jars by automated tools
|
|
|
|
[#2001][2001]/[#2027][2027] by [@cunei][@cunei]
|
|
|
|
### `retrieveManaged` related improvements
|
|
|
|
sbt 0.13.9 adds `retrieveManagedSync` key that, when set to `true`, enables synchronizing retrieved to the current build by removed unneeded files.
|
|
|
|
It also adds `configurationsToRetrieve` key, that takes values of `Option[Set[Configuration]]`. If set, when `retrieveManaged` is true only artifacts in the specified configurations will be retrieved to the current build.
|
|
|
|
[#1950][1950]/[#1987][1987] by [@ajsquared][@ajsquared]
|
|
|
|
### Cached resolution fixes
|
|
|
|
On a larger dependency graph, the JSON file growing to be 100MB+
|
|
with 97% of taken up by *caller* information.
|
|
To make the matter worse, these large JSON files were never cleaned up.
|
|
|
|
sbt 0.13.9 filters out artificial or duplicate callers,
|
|
which fixes `OutOfMemoryException` seen on some builds.
|
|
This generally shrinks the size of JSON, so it should make the IO operations faster.
|
|
Dynamic graphs will be rotated with directories named after `yyyy-mm-dd`,
|
|
and stale JSON files will be cleaned up after few days.
|
|
|
|
sbt 0.13.9 also fixes a correctness issue that was found in the earlier releases.
|
|
Under some circumstances, libraries that shouldn't have been evicted was being evicted.
|
|
This occured when library `A1` depended on `B2`, but a newer `A2` dropped the dependency,
|
|
and `A2` and `B1` are also is in the graph. This is fixed by sorting the graph prior to eviction.
|
|
|
|
[#2030][2030]/[#1721][1721]/[#2014][2014]/[#2046][2046]/[#2097][2097]/[#2129][2129] by [@eed3si9n][@eed3si9n]
|
|
|
|
### Force GC
|
|
|
|
[@cunei][@cunei] in [#1223][1223] discovered that sbt leaks PermGen
|
|
when it creates classloaders to call Scala Compilers.
|
|
sbt 0.13.9 will call GC on a set interval (default: 60s).
|
|
It will also call GC right before cross building.
|
|
This behavior can diabled using by setting false to `forcegc`
|
|
setting or `sbt.task.forcegc` flag.
|
|
|
|
[#1773][1773] by [@eed3si9n][@eed3si9n]
|
|
|
|
### Maven compatibility fix
|
|
|
|
To resolve dynamic versions such as `SNAPSHOT` and version ranges, the dependency resolution engine
|
|
queries for the list of available versions.
|
|
For Maven repositories, it was supposed read `maven-metadata.xml` first, but
|
|
because sbt customizes the repository layout for cross building, it has been falling back
|
|
to screen scraping of the Apache directory listing.
|
|
This problem surfaced as:
|
|
|
|
- Version range not working for artifacts hosted on Bintray. [#2005][2005]
|
|
- Potentially other `SNAPSHOT` related issues.
|
|
|
|
sbt 0.13.9 fixes this by relaxing the Maven compatiblity check, so it will read `maven-metadata.xml`. [#2075][2075] by [@eed3si9n][@eed3si9n]
|
|
|
|
### Contributors
|
|
|
|
Special thanks to the contributors for making this release a success. Compared to 0.13.8, there were 127 (non-merge) commits, by 14 contributors: Eugene Yokota, Dale Wijnand, Josh Suereth, Andrew Johnson, David Perez, Matthew Farwell, Antonio Cunei, Andrzej Jozwik, James Roper, Vitalii Voloshyn, Benjy, Kamil Kloch, Max Worgan, Andreas Flierl. Thank you!
|