Skip to content

Bump SBT 1.12.6, Scala 2.13.18/3.3.7, and all build plugins#5

Merged
halotukozak merged 37 commits intoseries/3.x-avsfrom
bump-dependencies
Mar 27, 2026
Merged

Bump SBT 1.12.6, Scala 2.13.18/3.3.7, and all build plugins#5
halotukozak merged 37 commits intoseries/3.x-avsfrom
bump-dependencies

Conversation

@halotukozak
Copy link
Copy Markdown
Member

@halotukozak halotukozak commented Feb 26, 2026

Summary

Build tooling

  • SBT 1.5.2 → 1.12.6
  • Scala 2.13.8 / 3.1.2 → 2.13.18 / 3.3.7
  • sbt-scalajs 1.10.0 → 1.20.2
  • sbt-tpolecat 0.3.1 (io.github.davidgregory084) → 0.5.3 (org.typelevel)
  • sbt-scoverage 1.9.3 → 2.3.1
  • sbt-doctest 0.10.0 (com.github.tkawachi) → 0.12.4 (io.github.sbt-doctest)
  • sbt-unidoc 0.4.3 (com.eed3si9n) → 0.5.0 (com.github.sbt)
  • sbt-mima-plugin 1.1.0 → 1.1.4
  • sbt-jmh 0.4.3 → 0.4.7
  • sbt-scalafmt 2.4.6 → 2.5.6
  • sbt-header 5.7.0 → 5.10.0
  • sbt-pgp 2.1.2 → 2.3.1
  • sbt-sonatype 3.9.12 → 3.12.2
  • sbt-git 1.0.2 (com.typesafe.sbt) → 2.1.0 (com.github.sbt)
  • sbt-dynver 4.1.1 (com.dwijnand) → 5.1.0 (com.github.sbt)
  • sbt-reproducible-builds 0.30 → 0.32
  • sbt-assembly kept at 1.2.0 (2.x breaks JCTools shading)

Compiler plugins (build.sbt)

  • kind-projector 0.13.2 → 0.13.4
  • silencer 1.7.8 → 1.7.19

Compilation fixes

  • Added explicit Scheduler type annotations on all implicit val scheduler declarations (~130 files — required by newer Scala)
  • Added -Wconf suppressions for tpolecat 0.5.x value-discard warnings (Scala 2.13)
  • Removed -Werror for Scala 3 (tpolecat 0.5.x uses -Werror instead of -Xfatal-warnings)
  • Tuned test-scope scalacOptions for pre-existing patterns (-Wunused:patvars, -Xlint:constant)
  • Replaced throw null with throw new NullPointerException(...) in Reactive Streams publishers
  • Added explicit Eq[Task[A]] return type in test suite

Other

  • Removed unsupported -XX:+CMSClassUnloadingEnabled from .jvmopts
  • Added .planning/ to .gitignore

Test plan

  • sbt +compile passes on all Scala versions
  • sbt +test passes (JVM)
  • sbt +mimaReportBinaryIssues passes
  • CI green

🤖 Generated with Claude Code

halotukozak and others added 25 commits February 24, 2026 14:40
 - Bump kind-projector and silencer versions\n - Silence other-implicit-type warnings in 2.13\n - Revert sbt-assembly to 1.2.0 to keep shading working
 - Explicitly state that starting a new stack trace is intentional for performance and thread-safety\n - Add verification tests in TracingSuite
….typelevel 0.5.3

- Replace io.github.davidgregory084 group with org.typelevel in project/plugins.sbt
- Update plugin version from 0.3.1 to 0.5.3
- Add explicit import org.typelevel.scalacoptions.ScalacOptions to build.sbt (required by 0.5.x API)
- SBT loads without errors after migration
…tion plan

- Create 01-01-SUMMARY.md documenting the org.typelevel migration
- Update STATE.md with current position (Phase 01, Plan 02 next) and decisions
- Update ROADMAP.md plan progress (1/2 summaries for phase 01)
- Mark requirement UP-02 complete in REQUIREMENTS.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add -Wconf:msg=unused value of type:silent for Scala 2.13 to suppress
  -Wvalue-discard warnings newly enabled by tpolecat 0.5.x (pre-existing
  patterns like trySuccess/tryFailure returning Boolean are intentional)
- Remove -Werror for Scala 3 (tpolecat 0.5.x uses -Werror, not -Xfatal-warnings;
  the existing removal of -Xfatal-warnings was insufficient)
- Fix CancelablePromise.scala:245: add @unchecked to val x :: xs pattern
  (Scala 3 requires annotation for refutable patterns used as definitions)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…erns

Add Test / scalacOptions --= to remove warnings that tpolecat 0.5.x newly
enables for test compilation but which trigger on pre-existing test patterns:
- Remove -Wunused:patvars (2.13) / -Ywarn-unused:patvars (2.12): triggers on
  for-comprehension loop vars (e.g. `for (i <- 0 until 5) yield Future {...}`)
- Remove -Xlint:constant (2.13): triggers on intentional overflow tests
  (e.g. `mc.orderedUpdate(c2, Long.MaxValue + 1)` in OrderedCancelableSuite)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Create 01-02-SUMMARY.md documenting UAT-verified cross-compilation
  success on Scala 2.12.20, 2.13.16, and 3.3.5
- Update STATE.md: Phase 01 all plans complete; document known issues
  (CatsEffectIssue380Suite JS hang, MiMa TrampolineExecutionContext)
- Update ROADMAP.md: Phase 1 marked complete (2/2 plans done)
- Mark requirements UP-01 and UP-02 complete in REQUIREMENTS.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 26, 2026 13:53
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates Monix’s build toolchain to newer SBT/Scala patch versions and refreshes sbt plugins, with follow-up compilation/test adjustments to accommodate tpolecat 0.5.x warning defaults and Scala 3 compiler strictness.

Changes:

  • Bumped SBT to 1.10.7, updated Scala versions in CI, and upgraded build plugins (including tpolecat → 0.5.3 under org.typelevel).
  • Adjusted scalacOptions / -Wconf suppressions and test-scope compiler options to keep cross-compilation working under the new toolchain.
  • Applied a Scala 3 refutable-pattern fix (@unchecked) and added/updated tracing tests and documentation notes about fiber stack-trace behavior.

Reviewed changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
project/build.properties Bumps SBT version to 1.10.7.
project/plugins.sbt Updates sbt plugin versions and adds a dependency scheme override for geny.
build.sbt Adds tpolecat-related -Wconf suppressions, tunes test-scope scalac options, and disables Scala 3 fatal warnings.
.github/workflows/build.yml Updates Scala versions in the CI matrix.
.jvmopts Removes a legacy JVM option.
monix-execution/shared/src/main/scala/monix/execution/CancelablePromise.scala Scala 3 compatibility tweak for a refutable pattern binding.
monix-eval/shared/src/main/scala/monix/eval/Task.scala Documents stack-trace behavior for Task.start / startAndForget.
tracingTests/src/test/scala/tracing/TracingSuite.scala Adds tests asserting stack-trace isolation behavior for fibers.
.planning/** Adds planning/roadmap/state docs for the maintenance effort and decisions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@halotukozak halotukozak self-assigned this Feb 26, 2026
@halotukozak halotukozak requested a review from mikkolaj February 26, 2026 14:01
- Bump Scala to 2.13.18/3.3.7, sbt to 1.12.6
- Bump plugins: sbt-scalajs 1.20.2, sbt-scalafmt 2.5.6, kind-projector 0.13.4
- Migrate sbt-doctest to io.github.sbt-doctest 0.12.4
- Use -quickfix:cat=other-implicit-type instead of -Wconf silence
- Add -Wnonunit-statement to tpolecat exclusions instead of -Wconf silence
- Restore debug scalacOptions section as commented-out
- Remove unnecessary -Xfatal-warnings (tpolecat 0.5.x uses -Werror)
- Remove unnecessary @unchecked on CancelablePromise pattern match

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 6 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

mikkolaj

This comment was marked as resolved.

@halotukozak halotukozak changed the title Bump SBT 1.10.7, Scala 2.12.20/2.13.16/3.3.5, and all build plugins Bump SBT 1.12.6, Scala 2.13.18/3.3.7, and all build plugins Mar 26, 2026
…-dependencies

# Conflicts:
#	.github/workflows/build.yml
Copy link
Copy Markdown

@mikkolaj mikkolaj left a comment

Choose a reason for hiding this comment

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

Generally LGTM, but:

  • the diff is shown in a weird way and it includes already merged changes - try pushing squashed commits before merging
  • description can be updated - Known issues is no longer valid.

@halotukozak halotukozak merged commit 2a585b7 into series/3.x-avs Mar 27, 2026
17 of 18 checks passed
@halotukozak halotukozak deleted the bump-dependencies branch March 27, 2026 09:35
@halotukozak halotukozak changed the title Bump SBT 1.12.6, Scala 2.13.18/3.3.7, and all build plugins JDK 25 compatibility: JCTools 4.x, VarHandle fencing, CI matrix expansion Mar 27, 2026
@halotukozak halotukozak changed the title JDK 25 compatibility: JCTools 4.x, VarHandle fencing, CI matrix expansion JDK 17+ compatibility: JCTools 4.x, Thread.getId nowarn, CI matrix expansion Mar 27, 2026
@halotukozak halotukozak changed the title JDK 17+ compatibility: JCTools 4.x, Thread.getId nowarn, CI matrix expansion JDK 17+ compatibility: JCTools 4.x, suppress deprecation warnings, expand CI matrix Mar 27, 2026
@halotukozak halotukozak changed the title JDK 17+ compatibility: JCTools 4.x, suppress deprecation warnings, expand CI matrix Bump SBT 1.12.6, Scala 2.13.18/3.3.7, and all build plugins Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants