Update dependency sbt/sbt to v0.13.18 #6
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.9→0.13.18Release 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
cleanconcurrency fix. #2156/#3834 by @dwijnandscala.ext.dir. #3142/#3701 by @retronymaddSbtPluginto 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
docfriendly. #3401 by @dwijnandv0.13.16: 0.13.16Compare Source
Fixes with compatibility implications
sbt xxx shellto stay in shell afterxxx. #3091/#3153 by @dwijnandImprovements
^and^^commands for plugin cross building. See below.Zeroscope component for sbt 1.0 compatibility. #3179 by @eed3si9nwithXXXmethods forModuleIDandArtifactfor sbt 1.0 compatibility. #3215 by @eed3si9nBug fixes
scalaBinaryVersionfor 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 pluginCrossBuildfrom 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.versioninproject/build.propertiesif 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 compilefrom 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 @dwijnandAppendinstance to supportsourceGenerators += Def.task { ... }, instead of needing.taskValue. #2943 by @eed3si9nproject/build.propertiesif it is missing. #754/#3025 by @dwijnandsets
scalaCompilerBridgeSourcecorrectly, 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 tests on a CI, to benefit from the available parallelism. 3013 by @smarter
Bug fixes
:=and.valuemacros. #1444/#2908 by @dwijnandCompile. #2827/#2786 by @eed3si9nCompile. #2828/#1466 by @eed3si9nPackage.makeJardeleting 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.14Compare Source
0.13.14 is dead on arrival. #3086
v0.13.13: 0.13.13Compare Source
Fixes with compatibility implications
.valuemethod is deprecated for input tasks. Calling.valueon an input key returns anInputTask[A],which is completely unintuitive and often results in a bug. In most cases
.evaluatedshould be called,which returns
Aby evaluating the task.Just in case
InputTask[A]is needed,.inputTaskValuemethod 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--debugwill 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 @eed3si9nshowwhen key returns aSeqby 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
newcommand andtemplateResolverInfos. See below for more details.aggregateProjects(..)for the current project inside a build sbt file. #2682 by @xuwei-k.jvmoptssupport to the launcher script. sbt/sbt-launcher-package#111 by @fommil.java-versionsupport to the Windows launcher script. sbt/sbt-launcher-package#111 by @fommil-errorin script mode usingscalas. #840/#2746 by @eed3si9nCrossVersion.patchwhich sits in betweenCrossVersion.binaryandCrossVersion.fullin 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.patchfrom this release on.Bug fixes
scalaOrganizationis set. #2703 by @milessabinTags.ForkedTestGroup. #2677/#2681 by @pauldrapernew command and templateResolverInfos
sbt 0.13.13 adds a
newcommand, which helps create new build definitions.The
newcommand 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
AutoPlugins to define subprojects programmatically,by overriding the
extraProjectsmethod: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
scalaVersionandscalaOrganization. Previously a user specifiedscalaOrganizationwould 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
.sbtformat #2530 by @dwijnandImprovements
RecompileOnMacroDefis 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/@dwijnanddependsOnfor the current project inside a.sbtfile. #2653 by @anatolydwnldBug fixes
IndexOutOfBoundsExceptionin 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=trueto 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
useJCentercan be set totrueto re-include it, as the first external resolver to find library dependencies. #2217/#2467 by @eed3si9nwithInterProjectFirstto the update option, which is enabled by default. When set totrue,inter-projectresolver will be prioritized above all resolvers and Ivy cache. #1827 by @eed3si9nwithLatestSnapshotsso 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.autoimportflag istrue. #2120/#2399 by @timcharperImprovements
publishMavenStyleistrue,updatetask 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.Nullpublic. #2094 by @pdalpraAppend.Sequenceinstance forListto allow+=/++=ondeveloperssetting. #2107/#2114 by @pdalprasealedfrom the typeclasses inAppend. #2322 by @dwijnandlocalIfFiletoMavenRepository, to force artifacts to be copied to the cache. #2172 by @dwijnandResolver.bintrayIvyRepo(owner, repo). #2285 by @dwijnand-Joptions. sbt/sbt-launcher-package#105Bug fixes
@Duhemm
sbt.Execute. #2302/#2303 by @jrudolphupdateClassifiersdownloading updated snapshot sources and docs.#1750/sbt/ivy#17/#2163/sbt/ivy#18/#2186 by @dwijnand
updateClassifierson Ivy modules withoutdefaultconfiguration.#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
tasksandsettingscommand. #2192 by @DavidPerezIngenierojavacby always failing if the local Java compiler reported errors. #2228/#2271 by @DuhemmJavaErrorParserto parse non-compile-errors #2256/#2272 by @Duhemmsbt-ivy-snapshotsrepository to resolve nightly builds. @eed3si9ncompileLate. #2453 by @retronymSBT_OPTS. sbt/sbt-launcher-package#101 by @eed3si9nConfigurable Scala compiler bridge
sbt 0.13.11 adds
scalaCompilerBridgeSourcesetting 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 bybootIvyConfigurationtask.#2106/#2197/#2336 by @Duhemm
Dotty awareness
sbt 0.13.11 will assume that Dotty is used when
scalaVersionstarts 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
trackInternalDependenciesandexportToInternalsettings. 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
trackInternalDependenciesis set toTrackLevel.TrackIfMissing, sbt will no longer try to compile internal (inter-project) dependencies automatically, unless there are no*.classfiles (or JAR file whenexportJarsistrue) 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
exportToInternalsetting 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 thetrackInternalDependenciesandexportToInternalsettings 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.settingsit 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!
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 was generated by Mend Renovate. View the repository job log.