Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
aebeaa0
Fix .jvmopts for modern JDKs by removing unsupported CMSClassUnloadin…
halotukozak Feb 24, 2026
c55330d
Bump sbt to 1.10.7
halotukozak Feb 24, 2026
b7c6bf5
Bump sbt-scoverage to 2.3.1 to resolve scala-xml conflict
halotukozak Feb 24, 2026
3e83f14
Bump sbt-scalajs to 1.18.2
halotukozak Feb 24, 2026
d9a9cbd
Bump sbt-unidoc to 0.5.0 (org change to com.github.sbt)
halotukozak Feb 24, 2026
65a0106
Bump sbt-jmh to 0.4.7
halotukozak Feb 24, 2026
c1d3daa
Bump sbt-mima-plugin to 1.1.4
halotukozak Feb 24, 2026
85cb483
Bump sbt-header to 5.10.0
halotukozak Feb 24, 2026
031d577
Bump sbt-scalafmt to 2.5.4
halotukozak Feb 24, 2026
807251c
Bump sbt-assembly to 2.3.1
halotukozak Feb 24, 2026
9da2412
Bump sbt-reproducible-builds to 0.32
halotukozak Feb 24, 2026
b1d55b8
Bump sbt-dynver to 5.1.0 (org change to com.github.sbt)
halotukozak Feb 24, 2026
0f8710a
Bump sbt-git to 2.1.0 (org change to com.github.sbt)
halotukozak Feb 24, 2026
d365e23
Bump sbt-sonatype to 3.12.2
halotukozak Feb 24, 2026
911ea97
Bump sbt-pgp to 2.3.1
halotukozak Feb 24, 2026
f395995
Add libraryDependencySchemes for geny to resolve meta-build conflict
halotukozak Feb 24, 2026
6aeefdf
Fix geny version conflict using VersionScheme.Always
halotukozak Feb 24, 2026
45d359d
Update Scala versions to 2.12.20, 2.13.16, 3.3.5
halotukozak Feb 24, 2026
0c9251f
Fix Scala 2.13.16 compatibility and build configuration
halotukozak Feb 24, 2026
cb4aebe
Clarify Task.start/startAndForget stack tracing behavior
halotukozak Feb 25, 2026
b6440ef
feat(01-infrastructure-modernization-01): migrate sbt-tpolecat to org…
halotukozak Feb 25, 2026
da27598
docs(01-infrastructure-modernization-01): complete sbt-tpolecat migra…
halotukozak Feb 25, 2026
7465e7b
fix(01-02): add -Wconf suppressions and fix Scala 3 value-discard errors
halotukozak Feb 25, 2026
294f64c
fix(01-02): disable tpolecat test-time warnings for pre-existing patt…
halotukozak Feb 25, 2026
07bfa7f
docs(01-02): complete cross-compile verification plan
halotukozak Feb 26, 2026
cdb46e3
Remove .planning from git and add to .gitignore
halotukozak Feb 26, 2026
0ecf74e
some reverts
halotukozak Feb 26, 2026
f7e09ea
Address PR review feedback from mikkolaj
halotukozak Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
java: [ 8, 11 ]
# WARN: build.sbt depends on this key path, as scalaVersion and
# crossScalaVersions is determined from it
scala: [ 2.12.15, 2.13.8, 3.1.2 ]
scala: [ 2.12.20, 2.13.18, 3.3.7 ]
Comment on lines 18 to +20
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Scala versions in the CI matrix were updated to 2.13.18 and 3.3.7, but the PR description says 2.13.16/3.3.5. Since build.sbt derives scalaVersion/crossScalaVersions from this YAML, please make sure the CI matrix versions match the versions claimed in the PR (or update the PR description to reflect the actual versions).

Copilot uses AI. Check for mistakes.

env:
CI: true
Expand Down Expand Up @@ -63,9 +63,9 @@ jobs:
# WARN: build.sbt depends on this key path, as scalaVersion and
# crossScalaVersions is determined from it
include:
- { java: 8, scala: 2.12.15 }
- { java: 8, scala: 2.13.8 }
- { java: 8, scala: 3.1.2 }
- { java: 8, scala: 2.12.20 }
- { java: 8, scala: 2.13.18 }
- { java: 8, scala: 3.3.7 }

env:
CI: true
Expand Down Expand Up @@ -115,9 +115,9 @@ jobs:
fail-fast: false
matrix:
include:
- { java: 8, scala: 2.12.15 }
- { java: 8, scala: 2.13.8 }
- { java: 8, scala: 3.1.2 }
- { java: 8, scala: 2.12.20 }
- { java: 8, scala: 2.13.18 }
- { java: 8, scala: 3.3.7 }

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -158,9 +158,9 @@ jobs:
fail-fast: false
matrix:
include:
- { java: 8, scala: 2.13.8 }
- { java: 8, scala: 2.13.18 }
# TODO: enable this after it works!
# - { java: 8, scala: 3.1.2 }
# - { java: 8, scala: 3.3.5 }
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commented-out Scala version under unidoc is 3.3.5, but the rest of the workflow matrix uses 3.3.7. Please update the comment to the same Scala 3 version to avoid confusion when re-enabling that job entry.

Suggested change
# - { java: 8, scala: 3.3.5 }
# - { java: 8, scala: 3.3.7 }

Copilot uses AI. Check for mistakes.

steps:
- uses: actions/checkout@v2
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ TAGS
metals.sbt
.vscode
.bsp
.planning/
1 change: 0 additions & 1 deletion .jvmopts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,4 @@
-XX:ReservedCodeCacheSize=250M
-XX:+TieredCompilation
-XX:-UseGCOverheadLimit
-XX:+CMSClassUnloadingEnabled

29 changes: 25 additions & 4 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import sbt.{ Def, Global, Tags }

import scala.collection.immutable.SortedSet
import MonixBuildUtils._
import org.typelevel.scalacoptions.ScalacOptions

val benchmarkProjects = List(
"benchmarksPrev",
Expand Down Expand Up @@ -31,9 +32,9 @@ val reactiveStreams_Version = "1.0.4"
val macrotaskExecutor_Version = "1.0.0"
val minitest_Version = "2.9.6"
val implicitBox_Version = "0.3.4"
val kindProjector_Version = "0.13.2"
val kindProjector_Version = "0.13.4"
val betterMonadicFor_Version = "0.3.1"
val silencer_Version = "1.7.8"
val silencer_Version = "1.7.19"
val scalaCompat_Version = "2.7.0"

// The Monix version with which we must keep binary compatibility.
Expand Down Expand Up @@ -177,6 +178,13 @@ lazy val sharedSettings = pgpSettings ++ Seq(
}
},
*/
// Auto-fix implicit type warnings instead of silencing them
Compile / scalacOptions ++= {
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, 13)) => Seq("-quickfix:cat=other-implicit-type")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quickfix works like that:

  1. temporarily add the option like you did here (also remember about Test / scalacOptions)
  2. run source and test compilation that will trigger making quickfixes (with Scala 2.13 since that's the version defined here)
  3. verify everything compiles
  4. remove quickfix options
  5. commit changes made by the compiler

case _ => Seq.empty
}
},

// Disabled from the sbt-tpolecat set
Compile / scalacOptions --= Seq(
Expand All @@ -189,8 +197,19 @@ lazy val sharedSettings = pgpSettings ++ Seq(
"-Wunused:explicits",
"-Ywarn-unused:params",
"-Wunused:params",
"-Xlint:infer-any"
"-Xlint:infer-any",
"-Wnonunit-statement"
),
// Disabled from tpolecat for test compilation:
// -Wunused:patvars triggers on for-comprehension loop vars in tests (pre-existing pattern)
// -Xlint:constant triggers on intentional overflow tests (e.g. Long.MaxValue + 1)
Test / scalacOptions --= {
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, 13)) => Seq("-Wunused:patvars", "-Xlint:constant")
case Some((2, 12)) => Seq("-Ywarn-unused:patvars")
case _ => Seq.empty
}
},
// Turning off fatal warnings for doc generation
Compile / doc / tpolecatExcludeOptions ++= ScalacOptions.defaultConsoleExclude,
// Silence everything in auto-generated files
Expand All @@ -202,7 +221,9 @@ lazy val sharedSettings = pgpSettings ++ Seq(
},
scalacOptions --= {
if (isDotty.value)
Seq("-Xfatal-warnings")
// tpolecat uses -Werror in Scala 3; disable fatal warnings
// so that pre-existing value-discard and similar patterns don't break Scala 3 builds
Seq("-Werror")
else
Seq()
},
Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@
# limitations under the License.
#

sbt.version=1.5.2
sbt.version=1.12.6
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

project/build.properties sets sbt.version=1.12.6, but the PR title/description and test plan state the target is SBT 1.10.7. Please align the pinned sbt version with the intended bump (or update the PR description/test plan if 1.12.6 is the actual target), since this value drives local builds and CI caching keys.

Copilot uses AI. Check for mistakes.
30 changes: 16 additions & 14 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.10.0")
addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.0")
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.7.0")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
addSbtPlugin("com.github.tkawachi" % "sbt-doctest" % "0.10.0")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.2")
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.4")
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6")
addSbtPlugin("io.github.sbt-doctest" % "sbt-doctest" % "0.12.4")
Comment on lines +5 to +7
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sbt-scalafmt is bumped to 2.5.6 here, but the PR description lists 2.5.4. Please either adjust this version to match the stated bump or update the PR description so the documented plugin versions stay accurate.

Copilot uses AI. Check for mistakes.
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.3.1")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.2.0")
addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.30")
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.3.1")
addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.2")
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.12")
addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2")
addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.32")
addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.3")
addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.0")
addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0")
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.12.2")
addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1")

libraryDependencySchemes += "com.lihaoyi" %% "geny" % VersionScheme.Always

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed now.

Loading