From 63ab6d84b7d2c9347f6ab05593900f63c7720eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Kozak?= Date: Fri, 27 Feb 2026 14:11:26 +0100 Subject: [PATCH 1/3] chore: add Mima filters for `avs` changes --- build.sbt | 3 ++- project/MimaFilters.scala | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index ab1241bd5..4b40b98db 100644 --- a/build.sbt +++ b/build.sbt @@ -376,7 +376,8 @@ def mimaSettings(projectName: String) = Seq( mimaBinaryIssueFilters ++= MimaFilters.changesFor_3_0_1, mimaBinaryIssueFilters ++= MimaFilters.changesFor_3_2_0, mimaBinaryIssueFilters ++= MimaFilters.changesFor_3_3_0, - mimaBinaryIssueFilters ++= MimaFilters.changesFor_3_4_0 + mimaBinaryIssueFilters ++= MimaFilters.changesFor_3_4_0, + mimaBinaryIssueFilters ++= MimaFilters.changesFor_avs ) lazy val doctestTestSettings = Seq( diff --git a/project/MimaFilters.scala b/project/MimaFilters.scala index 491aa12a2..9ca0d9985 100644 --- a/project/MimaFilters.scala +++ b/project/MimaFilters.scala @@ -100,4 +100,14 @@ object MimaFilters { // Scala 3 / Dotty support exclude[MissingClassProblem]("monix.execution.schedulers.AdaptedThreadPoolExecutorMixin") ) + + lazy val changesFor_avs = Seq( + // TrampolineExecutionContext signature tweaks (internal API) + exclude[IncompatibleMethTypeProblem]( + "monix.execution.schedulers.TrampolineExecutionContext#JVMNormalTrampoline.startLoop" + ), + exclude[IncompatibleMethTypeProblem]( + "monix.execution.schedulers.TrampolineExecutionContext#JVMOptimalTrampoline.startLoop" + ) + ) } From 37067bdba9c50d6f179aa282de6effacc754f0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Kozak?= Date: Fri, 27 Feb 2026 15:35:43 +0100 Subject: [PATCH 2/3] chore: update Mima filters for `avs` changes --- project/MimaFilters.scala | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/project/MimaFilters.scala b/project/MimaFilters.scala index 9ca0d9985..48a1ae9f5 100644 --- a/project/MimaFilters.scala +++ b/project/MimaFilters.scala @@ -103,11 +103,8 @@ object MimaFilters { lazy val changesFor_avs = Seq( // TrampolineExecutionContext signature tweaks (internal API) - exclude[IncompatibleMethTypeProblem]( - "monix.execution.schedulers.TrampolineExecutionContext#JVMNormalTrampoline.startLoop" - ), - exclude[IncompatibleMethTypeProblem]( - "monix.execution.schedulers.TrampolineExecutionContext#JVMOptimalTrampoline.startLoop" - ) + exclude[IncompatibleMethTypeProblem]("monix.execution.schedulers.TrampolineExecutionContext#JVMNormalTrampoline.startLoop"), + exclude[IncompatibleMethTypeProblem]("monix.execution.schedulers.TrampolineExecutionContext#JVMOptimalTrampoline.startLoop"), + exclude[IncompatibleMethTypeProblem]("monix.execution.schedulers.TrampolineExecutionContext.this") ) } From bac1b8bc484376c32a0f7dfc9c73ba941aab7e06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Kozak?= Date: Fri, 27 Feb 2026 16:22:43 +0100 Subject: [PATCH 3/3] drop Scala 2.12 support and remove `compat.scala` --- .github/workflows/build.yml | 2 +- .../scala_2.13-/monix/execution/compat.scala | 43 ------------------- 2 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 monix-execution/shared/src/main/scala_2.13-/monix/execution/compat.scala diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 406baf9a9..6ef547589 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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.13.8, 3.1.2 ] env: CI: true diff --git a/monix-execution/shared/src/main/scala_2.13-/monix/execution/compat.scala b/monix-execution/shared/src/main/scala_2.13-/monix/execution/compat.scala deleted file mode 100644 index 44487e7a3..000000000 --- a/monix-execution/shared/src/main/scala_2.13-/monix/execution/compat.scala +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2014-2021 by The Monix Project Developers. - * See the project homepage at: https://monix.io - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package monix.execution - -import scala.collection.generic.CanBuildFrom -import scala.collection.mutable - -object compat { - - type BuildFrom[-From, -A, +C] = CanBuildFrom[From, A, C] - - private[monix] object internal { - type IterableOnce[+X] = scala.collection.GenTraversableOnce[X] - def toIterator[X](i: IterableOnce[X]): Iterator[X] = i.toIterator - def hasDefiniteSize[X](i: IterableOnce[X]): Boolean = i.hasDefiniteSize - - def newBuilder[From, A, C](bf: BuildFrom[From, A, C], from: From): mutable.Builder[A, C] = bf.apply(from) - - def toSeq[A](array: Array[AnyRef]): Seq[A] = - new scala.collection.mutable.WrappedArray.ofRef(array).toSeq.asInstanceOf[Seq[A]] - } - - private[monix] object Features { - type Flag <: Long with monix.execution.Features.FlagTag - - type Flags <: Long with monix.execution.Features.FlagsTag - } -}