This repository has been archived by the owner on Aug 5, 2023. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.13.0
->0.13.18
⚠ Dependency Lookup Warnings ⚠
Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.
Release Notes
sbt/sbt (sbt/sbt)
v0.13.18
: 0.13.18Compare Source
^^
#3923 by @xuwei-kv0.13.17
: 0.13.17Compare Source
Improvements
Bug fixes
clean
concurrency fix. #2156/#3834 by @dwijnandscala.ext.dir
. #3142/#3701 by @retronymaddSbtPlugin
to use the correct version of sbt. #3393/#3397 by @dwijnandaddCompilerPlugin(...)
so it can consume compiler plugins published to Ivy repository using sbt 1.x. #3784/#3855 by @eed3si9nInternal
doc
friendly. #3401 by @dwijnandv0.13.16
: 0.13.16Compare Source
Fixes with compatibility implications
sbt xxx shell
to stay in shell afterxxx
. #3091/#3153 by @dwijnandImprovements
^
and^^
commands for plugin cross building. See below.Zero
scope component for sbt 1.0 compatibility. #3179 by @eed3si9nwithXXX
methods forModuleID
andArtifact
for sbt 1.0 compatibility. #3215 by @eed3si9nBug fixes
scalaBinaryVersion
for Dotty. #3152 by @smarterNumberFormatException
. #3265 by @Rogachsbt-cross-building
@jrudolph's sbt-cross-building is a plugin author's plugin.
It adds cross command
^
and sbtVersion switch command^^
, similar to+
and++
,but for switching between multiple sbt versions across major versions.
sbt 0.13.16 merges these commands into sbt because the feature it provides is useful as we migrate plugins to sbt 1.0.
To switch the
sbtVersion in pluginCrossBuild
from the shell use:Your plugin will now build with sbt 1.0.0-RC2 (and its Scala version 2.12.2).
If you need to make changes specific to a sbt version, you can now include them into
src/main/scala-sbt-0.13
,and
src/main/scala-sbt-1.0
, where the binary sbt version number is used as postfix.To run a command across multiple sbt versions, set:
Then, run:
#3133 by @eed3si9n
Eviction warning presentation
sbt 0.13.16 improves the eviction warning presentation.
Before:
After:
#3202 by @eed3si9n
Improvements and bug fixes to the startup messages
sbt writes out the
sbt.version
inproject/build.properties
if it is missing.sbt 0.13.16 fixes the logging when it happens by using the logger.
We encourage the use of the sbt shell by running
sbt
, instead of runningsbt compile
from the terminal repeatedly.The sbt shell keeps the JVM warm, and there is a significant performance improvement gained for your compilation.
The startup message that we added in sbt 0.13.15 was a bit too aggressive, so we are toning it down in 0.13.16.
It will only be triggered for
sbt compile
, and it can also be suppressed withsuppressSbtShellNotification := true
.#3091/#3097/#3147 by @dwijnand
v0.13.15
: 0.13.15Compare Source
Fixes with compatibility implications
Improvements
[ENTER]
while sbt is running. #2987/#2996 by @dwijnandAppend
instance to supportsourceGenerators += Def.task { ... }
, instead of needing.taskValue
. #2943 by @eed3si9nproject/build.properties
if it is missing. #754/#3025 by @dwijnandsets
scalaCompilerBridgeSource
correctly, this reduces the boilerplate neededto make a dotty project. Note that dotty support in sbt is still considered
experimental and not officially supported, see dotty.epfl.ch for
more information. #2902 by @smarter
It is now possible to run a subset of scripted tests in a directory at once,
for example:
scripted source-dependencies/*1of3
Will create three pages and run page 1. This is especially useful when running
scripted tests on a CI, to benefit from the available parallelism. 3013 by @smarter
Bug fixes
:=
and.value
macros. #1444/#2908 by @dwijnandCompile
. #2827/#2786 by @eed3si9nCompile
. #2828/#1466 by @eed3si9nPackage.makeJar
deleting directory recursively. #3014 by @larsrhMaven version range improvement
Previously, when the dependency resolver (Ivy) encountered a Maven version range such as
[1.3.0,)
it would go out to the Internet to find the latest version.
This would result to a surprising behavior where the eventual version keeps changing over time
even when there's a version of the library that satisfies the range condition.
Starting sbt 0.13.15, some Maven version ranges would be replaced with its lower bound
so that when a satisfactory version is found in the dependency graph it will be used.
You can disable this behavior using the JVM flag
-Dsbt.modversionrange=false
.#2954 by @eed3si9n
Offline installation
sbt 0.13.15 adds two new repositories called "local-preloaded-ivy"
and "local-preloaded" that point to
~/.sbt/preloaded/
.The purpose for the repositories is to preload them with
sbt artifacts so the installation of sbt will not require access to the Internet.
This also improves the startup time of sbt when you first run it
since the resolution happens off of a local-preloaded repository.
#2993/#145 by @eed3si9n
Notes
No changes should be necessary to your project definition and all plugins published for sbt 0.13.{x|x<14} should still work.
See Migrating from sbt 0.12.x for details on the old operator deprecation.
Special thanks to the contributors for making this release a success. According to
git shortlog -sn --no-merges v0.13.13..0.13.15
, compared to 0.13.13, there were 64 (non-merge) commits, by eleven contributors: Eugene Yokota, Dale Wijnand, Guillaume Martres, Jason Zaugg, Lars Hupel, Petro Verkhogliad, Eric Richardson, Claudio Bley, Haochi Chen, Paul Draper, Ashley Mercer. Thank you!v0.13.14
Compare Source
0.13.14 is dead on arrival. https://github.com/sbt/sbt/issues/3086
v0.13.13
: 0.13.13Compare Source
Fixes with compatibility implications
.value
method is deprecated for input tasks. Calling.value
on an input key returns anInputTask[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 by @eed3si9n--<command>
that was added in 0.13.1 toearly(<command>)
. This fixes the regression #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 by @eed3si9nshow
when key returns aSeq
by showing the elements one per line. Disable with-Dsbt.disable.show.seq=true
. #2755 by @eed3si9n-Dsbt.disable.interface.classloader.cache=true
. #2754 by @retronymImprovements
new
command andtemplateResolverInfos
. See below for more details.aggregateProjects(..)
for the current project inside a build sbt file. #2682 by @xuwei-k.jvmopts
support to the launcher script. sbt/sbt-launcher-package#111 by @fommil.java-version
support to the Windows launcher script. sbt/sbt-launcher-package#111 by @fommil-error
in script mode usingscalas
. #840/#2746 by @eed3si9nCrossVersion.patch
which sits in betweenCrossVersion.binary
andCrossVersion.full
in that it strips off anytrailing
-bin-...
suffix which is used to distinguish variant but binary compatible Scala toolchain builds. Most thingswhich are currently
CrossVersion.full
(eg. Scala compiler plugins, esp. macro-paradise) would be more appropriatelydepended on as
CrossVersion.patch
from this release on.Bug fixes
scalaOrganization
is set. #2703 by @milessabinTags.ForkedTestGroup
. #2677/#2681 by @pauldrapernew 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 is provided. For instance:
will run eed3si9n/hello.g8 using Giter8.
#2705 by @eed3si9n
Synthetic subprojects
sbt 0.13.13 adds support for
AutoPlugin
s to define subprojects programmatically,by overriding the
extraProjects
method:In addition, subprojects may be derived from an existing subproject
by overriding
derivedProjects
:#2532/#2717/#2738 by @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,
should migrate to
Except for source generators, which requires task values:
This becomes:
Another exception is input task:
This becomes:
See Migrating from sbt 0.12.x for more details.
#2716/#2763/#2764 by @eed3si9n and @dwijnand
Notes
No changes should be necessary to your project definition and all plugins published for sbt 0.13.{x|x<12} should still work.
Special thanks to the contributors for making this release a success. According to git shortlog -sn --no-merges v0.13.12..v0.13.13, compared to 0.13.12, there were 63 (non-merge) commits, by 9 contributors: Eugene Yokota, Dale Wijnand, Martin Duhem, Miles Sabin, Jaroslaw Grabowski, Kenji Yoshida, Jason Zaugg, Paul Draper, Björn Antonsson. Thank you!
v0.13.12
: 0.13.12Compare Source
Fixes with compatibility implications
scalaVersion
andscalaOrganization
. Previously a user specifiedscalaOrganization
would not have affected transitivedependencies on, eg.
scala-reflect
. An Ivy-level mechanism is used for this purpose, and as a consequencethe overriding happens early in the resolution process which might improve resolution times, and as a side
benefit fixes #2286. The old behavior can be restored by adding
ivyScala := { ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)} }
to your build. #2286/#2634 by @milessabin
.sbt
format #2530 by @dwijnandImprovements
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 withincOptions := incOptions.value.withLogRecompileOnMacro(false)
#2637/#2659 by @eed3si9n/@dwijnanddependsOn
for the current project inside a.sbt
file. #2653 by @anatolydwnldBug fixes
IndexOutOfBoundsException
in ExtractAPI #2497/#2557 by @smarterincOptions := 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 passingsbt.inc.include_synth=true
to JVM. #2537 by @eed3si9nNotes
No changes should be necessary to your project definition and all plugins published for sbt 0.13.{x|x<12} should still work. Please report any issues you encounter if this is not the case.
Special thanks to the contributors for making this release a success. According to
git shortlog -sn --no-merges v0.13.11..0.13.12
, compared to 0.13.11, there were 83 (non-merge) commits, by 11 contributors: Eugene Yokota, Martin Duhem, Grzegorz Kossakowski, Dale Wijnand, Guillaume Martres, Jason Zaugg, Miles Sabin, Tim Harper, ddworak, ekrich, Anatoly Fayngelerin. Thank you!v0.13.11
: 0.13.11Compare Source
Fixes with compatibility implications
useJCenter
can be set totrue
to re-include it, as the first external resolver to find library dependencies. #2217/#2467 by @eed3si9nwithInterProjectFirst
to the update option, which is enabled by default. When set totrue
,inter-project
resolver will be prioritized above all resolvers and Ivy cache. #1827 by @eed3si9nwithLatestSnapshots
so it handles modules without an artifact. This flag will be enabled by default.#1514/#1616/#2313 by @eed3si9n
-J<flag>
options to the local Java compiler. #1968/#2272 by @Duhemmsbt.global.autoimport
flag istrue
. #2120/#2399 by @timcharperImprovements
publishMavenStyle
istrue
,update
task warns when it sees intransitive dependencies, which do not translate to Maven. #2127 by @jsuerethDef.settings
, which facilitates mixing settings with seq of settings. See below.Logger.Null
public. #2094 by @pdalpraAppend.Sequence
instance forList
to allow+=
/++=
ondevelopers
setting. #2107/#2114 by @pdalprasealed
from the typeclasses inAppend
. #2322 by @dwijnandlocalIfFile
toMavenRepository
, to force artifacts to be copied to the cache. #2172 by @dwijnandResolver.bintrayIvyRepo(owner, repo)
. #2285 by @dwijnand-J
options. sbt/sbt-launcher-package#105Bug fixes
@Duhemm
sbt.Execute
. #2302/#2303 by @jrudolphupdateClassifiers
downloading updated snapshot sources and docs.#1750/sbt/ivy#17/#2163/sbt/ivy#18/#2186 by @dwijnand
updateClassifiers
on Ivy modules withoutdefault
configuration.#2264 by @eed3si9n/@Duhemm
correctly trigger incremental compilation for downstream classes. This is to
account for the fact that Java compilers may inline constant fields in
downstream classes. #1967/#2085 by @stuhood
ListBuffer#readOnly
. #2095 by @adriaanm@Duhemm
tasks
andsettings
command. #2192 by @DavidPerezIngenierojavac
by always failing if the local Java compiler reported errors. #2228/#2271 by @DuhemmJavaErrorParser
to parse non-compile-errors #2256/#2272 by @Duhemmsbt-ivy-snapshots
repository to resolve nightly builds. @eed3si9ncompileLate
. #2453 by @retronymSBT_OPTS
. sbt/sbt-launcher-package#101 by @eed3si9nConfigurable Scala compiler bridge
sbt 0.13.11 adds
scalaCompilerBridgeSource
setting to specify the compiler brigde source. This allows different implementation of the bridge for Scala versions, and also allows future versions of Scala compiler implementation to diverge. The source module will be retrieved using library management configured bybootIvyConfiguration
task.#2106/#2197/#2336 by @Duhemm
Dotty awareness
sbt 0.13.11 will assume that Dotty is used when
scalaVersion
starts with0.
.The built-in compiler bridge in sbt does not support Dotty,
but a separate compiler bridge is being developed at smarter/dotty-bridge and
an example project that uses it is available at smarter/dotty-example-project.
#2344 by @smarter
Inter-project dependency tracking
sbt 0.13.11 adds
trackInternalDependencies
andexportToInternal
settings. These can be used to control whether to trigger compilation of a dependent subprojects when you callcompile
. Both keys will take one of three values:TrackLevel.NoTracking
,TrackLevel.TrackIfMissing
, andTrackLevel.TrackAlways
. By default they are both set toTrackLevel.TrackAlways
.When
trackInternalDependencies
is set toTrackLevel.TrackIfMissing
, sbt will no longer try to compile internal (inter-project) dependencies automatically, unless there are no*.class
files (or JAR file whenexportJars
istrue
) in the output directory. When the setting is set toTrackLevel.NoTracking
, the compilation of internal dependencies will be skipped. Note that the classpath will still be appended, and dependency graph will still show them as dependencies. The motivation is to save the I/O overhead of checking for the changes on a build with many subprojects during development. Here's how to set all subprojects toTrackIfMissing
.The
exportToInternal
setting allows the dependee subprojects to opt out of the internal tracking, which might be useful if you want to track most subprojects except for a few. The intersection of thetrackInternalDependencies
andexportToInternal
settings will be used to determine the actual track level. Here's an example to opt-out one project:#2266/#2354 by @eed3si9n
Def.settings
Using
Def.settings
it is now possible to nicely define settings as such:#2151 by @dwijnand
Notes
No changes should be necessary to your project definition and all plugins published for sbt 0.13.{x|x<11} should still work. Please report any issues you encounter if this is not the case.
Special thanks to the contributors for making this release a success. According to git shortlog -sn --no-merges v0.13.9..v0.13.11, [compared to 0.13.9][3], there were 201 (non-merge) commits, by 19 contributors: Martin Duhem, Eugene Yokota, Dale Wijnand, Stu Hood, Adriaan Moors, Pierre DAL-PRA, Grzegorz Kossakowski, fkorotkov, Josh Suereth, Huw Giddens, Tim Harper, Guillaume Martres, Antonio Cunei, Krzysztof Romanowski, David Perez, Jason Zaugg, Jacek Laskowski, Johannes Rudolph, Jonas Fonseca. Thank you!
v0.13.9
: 0.13.9Compare Source
Fixes with compatibility implications
crossScalaVersions
default value is fixed back to the older 0.12.x behavior. See below for details.withSources()
orwithJavadoc()
. See below for details.Improvements
retrieveManaged
related improvements. See below for details.-=
and--=
for settings and tasks, which are the opposites of+=
and++=
. #1922 by @dwijnandinThisBuild
, similar toinConfig
, to allow specifying multiple settings inThisBuild
scope. #1847/#1989 by @dwijnandforceUpdatePeriod
key, that takes values ofOption[FiniteDuration]
. If set, a fullupdate
will occur after that amount of time without needing to explicitly run theupdate
task. By @ajsquaredForkError.getMessage()
to include exception's original name. #2028 by @kamilklochinspect actual
. #1651/#1990 by @dwijnandtestOnly
/testQuick
with-
, for example-MySpec
.#1970 by @matthewfarwell
#2008/#2009 by @DavidPerezIngeniero
Extracted.runInputTask
helper to assist with imperatively executing input tasks. #2006 by @jroperdistinct
method onPathFinder
todistinctName
. #1973 by @eed3si9ndistinctPath
method onPathFinder
. #1973 by @eed3si9nBug fixes
maven-metadata.xml
. See below.help
command. #1900/#1940 by @DavidPerezIngenierocrossScalaVersions
default valueAs of this fix
crossScalaVersions
returns to the behaviour present in0.12.4
whereby it defaults to whatscalaVersion
is set to, for example ifscalaVersion
is set to"2.11.6"
,crossScalaVersions
now defaultsto
Seq("2.11.6")
.Therefore when upgrading from any version between
0.13.0
and0.13.8
be aware of this new default ifyour build setup depended on it.
#1828/#1992 by @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/#2027 by @cunei
retrieveManaged
related improvementssbt 0.13.9 adds
retrieveManagedSync
key that, when set totrue
, enables synchronizing retrieved to the current build by removed unneeded files.It also adds
configurationsToRetrieve
key, that takes values ofOption[Set[Configuration]]
. If set, whenretrieveManaged
is true only artifacts in the specified configurations will be retrieved to the current build.#1950/#1987 by @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 onB2
, but a newerA2
dropped the dependency,and
A2
andB1
are also is in the graph. This is fixed by sorting the graph prior to eviction.#2030/#1721/#2014/#2046/#2097/#2129 by @eed3si9n
Force GC
@cunei in #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 by @eed3si9n
Maven compatibility fix
To resolve dynamic versions such as
SNAPSHOT
and version ranges, the dependency resolution enginequeries for the list of available versions.
For Maven repositories, it was supposed read
maven-metadata.xml
first, butbecause 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:
SNAPSHOT
related issues.sbt 0.13.9 fixes this by relaxing the Maven compatiblity check, so it will read
maven-metadata.xml
. #2075 by @eed3si9nContributors
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!
v0.13.8
: 0.13.8Compare Source
Changes with compatibility implications
IvyPlugin
by default (-Dsbt.root.ivyplugin=true
will revert this behavior). #1871/#1869 by @dwijnandImprovements
evicted
will display all evictions (including the ones not suspected of binary incompatibility). #1615 by @eed3si9n--depth 1
for git clone. #1787 by @xuwei-kFixes
compilerReporter
is fed to javac during incremental compilation. #1542 by @jsuerethRolling back XML parsing workaround
sbt 0.13.7 implemented natural whitespace handling by switching
build.sbt
parsing to use Scala compiler,Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.