sbt/notes/0.13.6.markdown

191 lines
12 KiB
Markdown
Raw Normal View History

[413]: https://github.com/sbt/sbt/issues/413
[528]: https://github.com/sbt/sbt/issues/528
[670]: https://github.com/sbt/sbt/issues/670
2014-08-01 23:23:58 +02:00
[856]: https://github.com/sbt/sbt/issues/856
2014-07-30 00:35:48 +02:00
[1036]: https://github.com/sbt/sbt/pull/1036
[1059]: https://github.com/sbt/sbt/issues/1059
[1181]: https://github.com/sbt/sbt/issues/1181
2014-07-30 00:35:48 +02:00
[1194]: https://github.com/sbt/sbt/issues/1194
2014-07-27 18:53:49 +02:00
[1200]: https://github.com/sbt/sbt/issues/1200
2014-07-30 00:35:48 +02:00
[1213]: https://github.com/sbt/sbt/issues/1213
[1275]: https://github.com/sbt/sbt/issues/1275
2014-07-30 00:35:48 +02:00
[1312]: https://github.com/sbt/sbt/pull/1312
[1313]: https://github.com/sbt/sbt/pull/1313
[1315]: https://github.com/sbt/sbt/issues/1315
[1330]: https://github.com/sbt/sbt/pull/1330
[1346]: https://github.com/sbt/sbt/pull/1346
[1347]: https://github.com/sbt/sbt/issues/1347
[1352]: https://github.com/sbt/sbt/pull/1352
[1358]: https://github.com/sbt/sbt/pull/1358
[1366]: https://github.com/sbt/sbt/issues/1366
[1367]: https://github.com/sbt/sbt/pull/1367
[1378]: https://github.com/sbt/sbt/pull/1378
[1383]: https://github.com/sbt/sbt/pull/1383
[1384]: https://github.com/sbt/sbt/issues/1384
2014-07-30 00:35:48 +02:00
[1400]: https://github.com/sbt/sbt/pull/1400
[1401]: https://github.com/sbt/sbt/pull/1401
[1405]: https://github.com/sbt/sbt/pull/1405
2014-07-30 00:35:48 +02:00
[1409]: https://github.com/sbt/sbt/pull/1409
[1416]: https://github.com/sbt/sbt/issues/1416
[1419]: https://github.com/sbt/sbt/pull/1419
[1422]: https://github.com/sbt/sbt/issues/1422
[1423]: https://github.com/sbt/sbt/pull/1423
[1426]: https://github.com/sbt/sbt/pull/1426
[1433]: https://github.com/sbt/sbt/pull/1433
[1439]: https://github.com/sbt/sbt/issues/1439
2014-07-30 00:35:48 +02:00
[1447]: https://github.com/sbt/sbt/pull/1447
[1450]: https://github.com/sbt/sbt/pull/1450
[1451]: https://github.com/sbt/sbt/pull/1451
[1454]: https://github.com/sbt/sbt/pull/1454
2014-07-30 00:35:48 +02:00
[1456]: https://github.com/sbt/sbt/pull/1456
[1467]: https://github.com/sbt/sbt/pull/1467
2014-08-01 00:24:43 +02:00
[1476]: https://github.com/sbt/sbt/pull/1476
[1477]: https://github.com/sbt/sbt/pull/1477
[1484]: https://github.com/sbt/sbt/issues/1484
2014-08-01 21:14:51 +02:00
[1486]: https://github.com/sbt/sbt/pull/1486
2014-08-01 23:18:37 +02:00
[1487]: https://github.com/sbt/sbt/pull/1487
[1488]: https://github.com/sbt/sbt/pull/1488
2014-08-01 23:23:58 +02:00
[1489]: https://github.com/sbt/sbt/pull/1489
[1494]: https://github.com/sbt/sbt/pull/1494
[1516]: https://github.com/sbt/sbt/pull/1516
[1465]: https://github.com/sbt/sbt/issues/1465
2014-08-24 05:37:45 +02:00
[1514]: https://github.com/sbt/sbt/issues/1514
[1524]: https://github.com/sbt/sbt/issues/1524
[1530]: https://github.com/sbt/sbt/issues/1530
2014-08-22 08:56:04 +02:00
[1536]: https://github.com/sbt/sbt/pull/1536
2014-08-23 02:27:34 +02:00
[1541]: https://github.com/sbt/sbt/issues/1541
2014-08-22 08:56:04 +02:00
[1546]: https://github.com/sbt/sbt/pull/1546
2014-08-01 23:23:58 +02:00
2014-08-22 08:56:04 +02:00
[@benmccann]: https://github.com/benmccann
2014-07-30 00:35:48 +02:00
[@dansanduleac]: https://github.com/dansanduleac
[@2m]: https://github.com/2m
[@pvlugter]: https://github.com/pvlugter
[@eed3si9n]: https://github.com/eed3si9n
[@evgeny-goldin]: https://github.com/evgeny-goldin
2014-08-22 08:56:04 +02:00
[@gkossakowski]: https://github.com/gkossakowski
2014-07-30 00:35:48 +02:00
[@jsuereth]: https://github.com/jsuereth
[@benjyw]: https://github.com/benjyw
[@xuwei-k]: https://github.com/xuwei-k
[@jroper]: https://github.com/jroper
[@lpiepiora]: https://github.com/lpiepiora
[@vn971]: https://github.com/vn971
[@dpratt]: https://github.com/dpratt
[@henrikengstrom]: https://github.com/henrikengstrom
2014-08-01 00:24:43 +02:00
[@puffnfresh]: https://github.com/puffnfresh
[@rtyley]: https://github.com/rtyley
2014-07-30 00:35:48 +02:00
### Fixes with compatibility implications
- Maven Central Repository, Java.net Maven 2 Repository, Typesafe Repository, and sbt Plugin repository now defaults to HTTPS. (See below)
2014-07-30 00:35:48 +02:00
- `ThisProject` used to resolve to the root project in a build even when it's place in `subproj/build.sbt`. sbt 0.13.6 fixes it to resolve to the sub project. [#1194][1194]/[#1358][1358] by [@dansanduleac][@dansanduleac]
- Global plugins classpath used to be injected into every build. This will no longer be the case. [#1347][1347]/[#1352][1352] by [@dansanduleac][@dansanduleac]
- Fixes `newer` command in scripted. [#1419][1419] by [@jroper][@jroper]
- Name hashing is enabled by default. `inc.Analysis.empty` also defaults to the one compatible with name hashing. [#1546][1546] by [@gkossakowski][@gkossakowski]
2014-07-30 00:35:48 +02:00
### Improvements
- Derived settings can replace previously-defined but non-default settings. [#1036][1036] by [@dansanduleac][@dansanduleac]
- Sorts setting key names in the inspect tree view. [#1313][1313] by [@2m][@2m]
- Uses separate update caches when cross compiling scala. [#1330][1330] by [@pvlugter][@pvlugter]
- Ensures sequences in analysis files are read in order. [#1346][1346] by [@benjyw][@benjyw]
- Enables tab completion for scripted task. [#1383][1383] by [@xuwei-k][@xuwei-k]
- Allows project reference to to a branch of a local git repository. [#1409][1409] by [@vn971][@vn971]
- Triggered Execution is now aware of rename or move of files. [#1401][1401] by [@xuwei-k][@xuwei-k]
- No longer updates classifiers of `projectDependencies`. [#1366][1366]/[#1367][1367] by [@dansanduleac][@dansanduleac]
- Selects the first test fingerprint for a test name for forked tests. [#1450][1450] by [@pvlugter][@pvlugter]
- Allows default auto plugins to be disabled. [#1451][1451] by [@jsuereth][@jsuereth]
- Allows keys defined inside `build.sbt` to be used from sbt shell. [#1059][1059]/[#1456][1456]
2014-08-01 00:24:43 +02:00
- Updates internal Ivy instance to cache the results of dependency exclusion rules. [#1476][1476] by [@eed3si9n][@eed3si9n]
- Adds `Resolver.jcenterRepo` and `Resolver.bintrayRepo(owner, repo)` to add Bintray easier. [#1405][1405] by [@evgeny-goldin][@evgeny-goldin]
2015-01-24 19:45:15 +01:00
- AutoPlugins with no requirements enabled by allRequirements can now be disabled by the user. [#1516][1516] by [@jsuereth][@jsuereth]
2014-07-30 00:35:48 +02:00
### Bug fixes
2014-07-30 03:06:33 +02:00
- Allows auto-generated projects to have overridden organization. [#1315][1315]/[#1378][1378] by [@jsuereth][@jsuereth]
2014-07-30 00:35:48 +02:00
- Fixes auto plugins declared without package object. [#1423][1423] by [@lpiepiora][@lpiepiora]
- Fixes `plugin` command. [#1416][1416]/[#1426][1426] by [@lpiepiora][@lpiepiora]
- Adds `scala-jar` to the list of jar artifacts recognized by CustomPomParser. [#1400][1400] by [@dpratt][@dpratt]
2015-01-24 19:45:15 +01:00
- Fixes cross versioning to recognize version number with multiple -tags. [#1433][1433] by [@henrikengstrom][@henrikengstrom]
2014-08-01 00:24:43 +02:00
- Works around "Not a simple type" breaking `-Xfatal-warnings`. [#1477][1477] by [@puffnfresh][@puffnfresh]
2015-01-24 19:45:15 +01:00
- Fixes sLog usage in tandem with the `set` command [#1486][1486] [@jsuereth][@jsuereth]
2014-08-01 23:18:37 +02:00
- Test suites with whitespace will have prettier filenames [#1487][1487] [@jsuereth][@jsuereth]
- sbt no longer crashes when run in root directory [#1488][1488] by [@jsuereth][@jsuereth]
2014-08-01 23:23:58 +02:00
- set no longer removes any `++` scala version setting. [#856][856]/[#1489][1489] by [@jsuereth][@jsuereth]
- Fixes `Scope.parseScopedKey`. [#1384][1384] by [@eed3si9n][@eed3si9n]
- Fixes `build.sbt` errors causing `ArrayIndexOutOfBoundsException` due to invalid source in position. [#1181][1181] by [@eed3si9n][@eed3si9n]
- Fixes `http.proxyPassword` showing up in launcher's update.log. [#670][670] by [@eed3si9n][@eed3si9n]
- Fixes config-classes leak in loading build files. [#1524][1524] by [@jsuereth][@jsuereth]
- Fixes name-conflicts in hashed settings class files. [#1465][1465] by [@jsuereth][@jsuereth]
- Fixes the pom conversion of dynamic revisions like `1.1+`. [#1275][1275] by [@eed3si9n][@eed3si9n]
- Fixes `NullPointerError` in tab completion by `FileExamples`. [#1530][1530] by [@eed3si9n][@eed3si9n]
- Fixes metabuild downloading unused Scala 2.10.2. [#1439][1439] by [@eed3si9n][@eed3si9n]
2014-08-22 08:56:04 +02:00
### HTTPS related changes
Thanks to Sonatype, HTTPS access to Maven Central Repository is available to public. This is now enabled by default, but if HTTP is required for some reason the following system properties can be used:
-Dsbt.repository.secure=false
Java.net Maven 2 repository, Typesafe repository, and sbt Plugin repository also defaults to HTTPS.
2014-08-23 02:27:34 +02:00
[#1494][1494] by [@rtyley][@rtyley], [#1536][1536] by [@benmccann][@benmccann], and [#1541][1541] by [@eed3si9n][@eed3si9n].
2014-08-22 08:56:04 +02:00
2014-07-30 00:35:48 +02:00
### enablePlugins/disablePlugins
sbt 0.13.6 now allows `enablePlugins` and `disablePlugins` to be written directly in `build.sbt`. [#1213][1213]/[#1312][1312] by [@jsuereth][@jsuereth]
### Unresolved dependencies error
sbt 0.13.6 will try to reconstruct dependencies tree when it fails to resolve a managed dependency.
This is an approximation, but it should help you figure out where the problematic dependency is coming from. When possible sbt will display the source position next to the modules:
2014-07-30 00:35:48 +02:00
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: foundrylogic.vpp#vpp;2.2.1: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Unresolved dependencies path:
[warn] foundrylogic.vpp:vpp:2.2.1
[warn] +- org.apache.cayenne:cayenne-tools:3.0.2
[warn] +- org.apache.cayenne.plugins:maven-cayenne-plugin:3.0.2 (/foo/some-test/build.sbt#L28)
2014-07-30 00:35:48 +02:00
[warn] +- d:d_2.10:0.1-SNAPSHOT
[#528][528]/[#1422][1422]/[#1447][1447] by [@eed3si9n][@eed3si9n]
2014-07-27 18:53:49 +02:00
### Eviction warnings
sbt 0.13.6 displays eviction warnings when it resolves your project's managed dependencies via `update` task.
Currently the eviction warnings are categorized into three layers: `scalaVersion` eviction, direct evictions, and transitive evictions.
2015-01-24 19:45:15 +01:00
By default eviction warning on `update` task will display only `scalaVersion` eviction and direct evictions.
2014-07-27 18:53:49 +02:00
2015-01-24 19:45:15 +01:00
`scalaVersion` eviction warns you when `scalaVersion` is no longer effective. This happens when one of your dependencies depends on a newer release of scala-library than your `scalaVersion`.
Direct evictions are evictions related to your direct dependencies. Warnings are displayed only when API incompatibility is suspected. For Java libraries, Semantic Versioning is used for guessing, and for Scala libraries Second Segment versioning (second segment bump makes API incompatible) is used.
2014-07-27 18:53:49 +02:00
To display all eviction warnings with caller information, run `evicted` task.
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-actor_2.10:2.1.4 -> 2.3.4 (caller: com.typesafe.akka:akka-remote_2.10:2.3.4,
org.w3:banana-sesame_2.10:0.4, org.w3:banana-rdf_2.10:0.4)
2014-07-30 00:35:48 +02:00
[#1200][1200]/[#1467][1467] by [@eed3si9n][@eed3si9n]
2014-07-27 18:53:49 +02:00
### Latest SNAPSHOTs
sbt 0.13.6 adds a new setting key called `updateOptions` for customizing the details of managed dependency resolution with `update` task. One of its flags is called `lastestSnapshots`, which controls the behavior of the chained resolver. Up until 0.13.6, sbt was picking the first `-SNAPSHOT` revision it found along the chain. When `latestSnapshots` is enabled (default: `true`), it will look into all resolvers on the chain, and compare them using the publish date.
2015-01-24 19:45:15 +01:00
The tradeoff is probably a longer resolution time if you have many remote repositories on the build or you live away from the servers. So here's how to disable it:
updateOptions := updateOptions.value.withLatestSnapshots(false)
[#1514][1514] by [@eed3si9n][@eed3si9n]
### Consolidated resolution
`updateOptions` can also be used to enable consolidated resolution for `update` task.
updateOptions := updateOptions.value.withConsolidatedResolution(true)
2015-01-24 19:45:15 +01:00
This feature is specifically targeted to address [Ivy resolution is unreasonably slow for multi-module projects #413][413]. Consolidated resolution aims to fix this issue by artificially constructing an Ivy dependency graph for the unique managed dependencies. If two subprojects introduce identical external dependencies, both subprojects should consolidate to the same graph, and therefore resolve immediately for the second `update`. [#1454][1454] by [@eed3si9n][@eed3si9n]