Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency sbt/sbt to v0.13.18 #2839

Merged
merged 1 commit into from Mar 6, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 6, 2023

Mend Renovate

This PR contains the following updates:

Package Update Change
sbt/sbt patch 0.13.12 -> 0.13.18

Release Notes

sbt/sbt

v0.13.18: 0.13.18

Compare Source

v0.13.17: 0.13.17

Compare Source

Improvements
Bug fixes
Internal

v0.13.16: 0.13.16

Compare Source

Fixes with compatibility implications
  • Removes the "hit [ENTER] to switch to interactive mode" feature. Run sbt xxx shell to stay in shell after xxx. #​3091/#​3153 by @​dwijnand
Improvements
  • Improves the new startup messages. See below.
  • Ports sbt-cross-building's ^ and ^^ commands for plugin cross building. See below.
  • Adds Zero scope component for sbt 1.0 compatibility. #​3179 by @​eed3si9n
  • Backports withXXX methods for ModuleID and Artifact for sbt 1.0 compatibility. #​3215 by @​eed3si9n
Bug fixes
  • Fixes the new startup messages. See below.
  • Fixes forward compatibility of Scripted plugin with sbt 1.0.0-RC2. #​3329 by @​dwijnand
  • Fixes ScalaTest nested suite test names being reported as "(It is not a test)". #​3154 by @​jameskoch
  • Fixes default scalaBinaryVersion for Dotty. #​3152 by @​smarter
  • Updates JLine dependency to 2.14.4 to work around ncurses change causing NumberFormatException. #​3265 by @​Rogach
sbt-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:

^^ 1.0.0-RC2

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:

crossSbtVersions := Vector("0.13.15", "1.0.0-RC2")

Then, run:

^ compile

#​3133 by @​eed3si9n

Eviction warning presentation

sbt 0.13.16 improves the eviction warning presentation.

Before:

[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]  * com.google.code.findbugs:jsr305:2.0.1 -> 3.0.0
[warn] Run 'evicted' to see detailed eviction warnings

After:

[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]
[warn]      * com.typesafe.akka:akka-actor_2.12:2.5.0 is selected over 2.4.17
[warn]          +- de.heikoseeberger:akka-log4j_2.12:1.4.0            (depends on 2.5.0)
[warn]          +- com.typesafe.akka:akka-parsing_2.12:10.0.6         (depends on 2.4.17)
[warn]          +- com.typesafe.akka:akka-stream_2.12:2.4.17 ()       (depends on 2.4.17)
[warn]
[warn] Run 'evicted' to see detailed eviction warnings

#​3202 by @​eed3si9n

Improvements and bug fixes to the startup messages

sbt writes out the sbt.version in project/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 running sbt 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 with suppressSbtShellNotification := true.

#​3091/#​3097/#​3147 by @​dwijnand

v0.13.15: 0.13.15

Compare Source

Fixes with compatibility implications
  • sbt 0.13.15 removes the Maven version range when possible. See below.
Improvements
  • Adds preliminary compatibility with JDK 9. Using this requires 0.13.15+ launcher. #​2951/143 by @​retronym
  • Adds "local-preloaded" repository for offline installation. See below.
  • Notifies and enables users to stay in sbt's shell on the warm JVM by hitting [ENTER] while sbt is running. #​2987/#​2996 by @​dwijnand
  • Adds an Append instance to support sourceGenerators += Def.task { ... }, instead of needing .taskValue. #​2943 by @​eed3si9n
  • Writes out the sbt.version in project/build.properties if it is missing. #​754/#​3025 by @​dwijnand
  • XML generated by JUnitXmlTestsListener now correctly flags ignored, skipped and pending tests. #​2198/#​2854 by @​ashleymercer
  • When sbt detects that the project is compiled with dotty, it now automatically
    sets scalaCompilerBridgeSource correctly, this reduces the boilerplate needed
    to 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
  • Updates sbt new's reference implementation to Giter8 0.7.2.
  • ScriptedPlugin: Add the ability to paginate scripted tests.
    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
Maven 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.13

Compare Source

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 by @​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. 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 @​eed3si9n
  • Improve show when key returns a Seq by showing the elements one per line. Disable with -Dsbt.disable.show.seq=true. #​2755 by @​eed3si9n
  • Recycles classloaders to be anti-hostile to JIT. Disable with -Dsbt.disable.interface.classloader.cache=true. #​2754 by @​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/sbt/ivy#​22/#​2731 by @​jtgrabowski
  • Adds the ability to call aggregateProjects(..) for the current project inside a build sbt file. #​2682 by @​xuwei-k
  • Adds .jvmopts support to the launcher script. sbt/sbt-launcher-package#​111 by @​fommil
  • Adds .java-version support to the Windows launcher script. sbt/sbt-launcher-package#​111 by @​fommil
  • The startup log level is dropped to -error in script mode using scalas. #​840/#​2746 by @​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
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 is provided. For instance:

sbt new eed3si9n/hello.g8

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 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/#​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,

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 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!


Configuration

📅 Schedule: Branch creation - "every 3 weeks on Monday" (UTC), 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Mar 6, 2023
@vlsi vlsi merged commit bd56565 into master Mar 6, 2023
@renovate renovate bot deleted the renovate/sbt-sbt-0.x branch March 6, 2023 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant