Skip to content

Bug: sbt version not getting updated when using buildRoots #3664

@mkurz

Description

@mkurz

Reproducer: https://github.com/mkurz/scala-steward-sbt-update-bug

Point is: there a two build.properties but with different sbt versions:

  • project/build.properties -> sbt.version=1.11.2 (link)
  • src/main/g8/project/build.properties -> sbt.version=1.11.0 (outdated sbt version) (link)
  • scala steward config with buildRoots = [ ".", "src/main/g8" ] (link)

Running scala steward against this repo does not update src/main/g8/project/build.properties:

2025-06-22 13:29:50,570 INFO
  ____            _         ____  _                             _
 / ___|  ___ __ _| | __ _  / ___|| |_ _____      ____ _ _ __ __| |
 \___ \ / __/ _` | |/ _` | \___ \| __/ _ \ \ /\ / / _` | '__/ _` |
  ___) | (_| (_| | | (_| |  ___) | ||  __/\ V  V / (_| | | | (_| |
 |____/ \___\__,_|_|\__,_| |____/ \__\___| \_/\_/ \__,_|_|  \__,_|
 v0.34.0-4-083ed690-20250613-1121-SNAPSHOT

2025-06-22 13:29:51,308 INFO  Loaded 304 artifact migration(s)
2025-06-22 13:29:51,623 INFO  Loaded 37 Scalafix migration(s)
2025-06-22 13:29:51,936 INFO  Loaded 2 repo config(s)
2025-06-22 13:29:52,032 INFO  Run self checks
2025-06-22 13:29:52,128 INFO  Using git version 2.49.0
2025-06-22 13:29:52,372 INFO  Using scalafix 0.14.2
2025-06-22 13:29:52,678 INFO  Using scalafmt 3.9.4
2025-06-22 13:29:53,684 INFO  Removing any run-specific files
2025-06-22 13:29:53,703 INFO  ──────────── Steward mkurz/scala-steward-sbt-update-bug:main ────────────
2025-06-22 13:29:53,703 INFO  Check cache of mkurz/scala-steward-sbt-update-bug:main
2025-06-22 13:29:54,680 INFO  Clone mkurz/scala-steward-sbt-update-bug
2025-06-22 13:29:55,503 INFO  Refresh cache of mkurz/scala-steward-sbt-update-bug:main
2025-06-22 13:29:55,562 INFO  Parsed repo config {
  "commits" : {
    "message" : "${artifactName} ${nextVersion} (was ${currentVersion})"
  },
  "pullRequests" : {
    "grouping" : [
      {
        "name" : "patches",
        "title" : "Patch updates",
        "filter" : [
          {
            "version" : "patch"
          }
        ]
      }
    ]
  },
  "buildRoots" : [
    ".",
    "src/main/g8"
  ]
}
2025-06-22 13:29:55,726 INFO  Get dependencies in . from sbt
2025-06-22 13:30:03,276 INFO  Get dependencies in src/main/g8 from sbt
2025-06-22 13:30:11,886 INFO  Find updates for mkurz/scala-steward-sbt-update-bug:main
2025-06-22 13:30:13,778 INFO  Ignore org.scala-sbt:sbt : 1.11.2 -> 2.0.0-alpha6 -> 2.0.0-alpha7 -> ... -> 2.0.0-M2 -> 2.0.0-M3 -> 2.0.0-M4 (reason: no suitable next version)
2025-06-22 13:30:15,171 INFO  Found 2 updates:
  org.playframework:sbt-plugin : 3.0.6 -> 3.0.7
  org.scala-lang:scala-library : 2.13.15 -> 2.13.16
2025-06-22 13:30:15,177 INFO  mkurz/scala-steward-sbt-update-bug:main is outdated:
  new version: org.playframework:sbt-plugin : 3.0.6 -> 3.0.7
  new version: org.scala-lang:scala-library : 2.13.15 -> 2.13.16
2025-06-22 13:30:15,178 INFO  Nurture mkurz/scala-steward-sbt-update-bug:main
2025-06-22 13:30:15,189 INFO  Found 1 update:
  patches (group) {
    org.playframework:sbt-plugin : 3.0.6 -> 3.0.7
    org.scala-lang:scala-library : 2.13.15 -> 2.13.16
  }
2025-06-22 13:30:15,215 INFO  Process update patches
2025-06-22 13:30:15,460 INFO  Create branch update/main/patches
2025-06-22 13:30:15,703 INFO  Push 2 commit(s)
2025-06-22 13:30:16,823 INFO  Create PR update/main/patches
2025-06-22 13:30:39,397 INFO  Created PR https://github.com/mkurz/scala-steward-sbt-update-bug/pull/1
2025-06-22 13:30:39,499 INFO  ──────────── Total time: Steward mkurz/scala-steward-sbt-update-bug:main: 45s 795ms ────────────
2025-06-22 13:30:39,502 INFO  ──────────── Total time: run: 47s 471ms ────────────

Important line is:

2025-06-22 13:30:13,778 INFO  Ignore org.scala-sbt:sbt : 1.11.2 -> 2.0.0-alpha6 -> 2.0.0-alpha7 -> ... -> 2.0.0-M2 -> 2.0.0-M3 -> 2.0.0-M4 (reason: no suitable next version)

However, when I change the build roots so it only contains the g8 project, scala steward then will update src/main/g8/project/build.properties:

 `buildRoots = [ "src/main/g8" ]`

So does the "main" sbt version of the "root" project overrule other sbt versions? Why is there not differentiation between the two build.properties?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions