search term:

sbt 1.7.0

Hi everyone. On behalf of the sbt project, I am happy to announce sbt 1.7.0. This is the seventh feature release of sbt 1.x, a binary compatible release focusing on new features. sbt 1.x is released under Semantic Versioning, and the plugins are expected to work throughout the 1.x series. Please try it out, and report any issues you might come across.

How to upgrade

Download the official sbt runner from cs setup, SDKMAN, or download from https://github.com/sbt/sbt/releases/tag/v1.7.0.

The sbt version used for your build is upgraded by putting the following in project/build.properties:

sbt.version=1.7.0

This mechanism allows that sbt 1.7.0 is used only for the builds that you want.

Changes with compatibility implications

++ command updates

Prior to sbt 1.7 ++ <sv> <command1> filtered subprojects using crossScalaVersions having the same ABI suffix as <sv>. This behavior was generally not well understood, and also created incorrect result for Scala 3.x since ++ 3.0.1 test could downgrade subproject that may require 3.1 or above.

sbt 1.7.0 fixes this by requiring ++ <sv> <command1> so <sv> part can be given as a semantic version selector expression, such as 3.1.x or 2.13.x. Note that the expression may match at most one Scala version to switch into. In sbt 1.7.0, a concrete version such as ++ 3.0.1 equires exact version to be present in crossScalaVersion.

This contribution was a collaborated effort among Arnout Engelen #6894, Rui Gonçalves lm#400, and Eugene Yokota.

Scala 3 compiler error improvements

In zinc#1082, Toshiyuki Takahashi contributed a fix to ignore Problem#rendered passed from the compiler when sbt uses position mapper to transform the position. This is aimed at fixing the error reporting for Play on Scala 3.

In #6874, Chris Kipp extended xsbti.Problem to track richer information available in Scala 3. This is aimed at enhancing the compilation errors reported to BSP client such as Metals.

BSP updates

setup-java GitHub Actions

GitHub Actions in general includes sbt, and the latest setup-java@v3 implements caching support for sbt.

name: CI
on:
  pull_request:
  push:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Setup JDK
      uses: actions/setup-java@v3
      with:
        distribution: temurin
        java-version: 8
        cache: sbt
    - name: Build and Test
      run: sbt -v +test

This was contributed by Florian Meriaux in setup-java#302.

Other updates

Participation

sbt 1.7.0 was brought to you by 28 contributors.

42 Seth Tisue
36 Eugene Yokota (eed3si9n)
32 Scala Steward
15 Kenji Yoshida (xuwei-k)
 8 Kamil Podsiadlo
 8 dependabot[bot]
 4 Arnout Engelen
 3 Arman Bilge
 3 Ethan Atkins
 3 Fran Mendez
 3 Rikito Taniguchi
 3 Rui Gonçalves
 2 Amina Adewusi
 2 Jens
 2 Philippus
 1 Adrien Piquerez
 1 Alonso Montero
 1 Angus McInnes
 1 Brice Jaglin
 1 Chris Kipp
 1 Julien Richard-Foy
 1 Michał Pałka
 1 Sakib Hadžiavdić
 1 Toshiyuki Takahashi
 1 dmitrii.naumenko
 1 liang3zy22

Thanks to everyone who’s helped improve sbt and Zinc by using them, reporting bugs, improving our documentation, porting builds, porting plugins, and submitting and reviewing pull requests.

For anyone interested in helping sbt, there are many avenues for you to help, depending on your interest. If you’re interested, Contributing, “help wanted”, “good first issue”, and Discussions are good starting points.

🏳️‍🌈 Support Ukraine 🇺🇦

Forbidden Colours has started a fundraising campaign to support organisations in Poland, Hungary and Romania that are welcoming LGBTIQ+ refugees.

https://www.forbidden-colours.com/2022/02/26/support-ukrainian-lgbtiq-refugees/