Sync fork with upstream monix/monix:main#26
Sync fork with upstream monix/monix:main#26halotukozak wants to merge 73 commits intoseries/3.x-avsfrom
Conversation
* 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * Fix unrelated InputStreamObservableSuite bug that failed build * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge * 1202: prioritized merge
* README simplification * Add ToC
Co-authored-by: Alexandru Nedelcu <alexandru@users.noreply.github.com>
Co-authored-by: Scala Steward <43047562+scala-steward@users.noreply.github.com>
* Add manual-publish.yml (monix#1241) * Revert secrets.GITHUB_TOKEN
* Experimenting with a FUNDING.yml (monix#1245) * Update FUNDING (monix#1249) * Add manual-publish.yml (monix#1241)
Not sure where to put it but I want to include it Co-authored-by: Piotr Gawryś <pgawrys2@gmail.com>
* Adds discord badge to readme * Corrects discord invite.
* Draft 3.4.0 release notes * Re-add Scala 2.12 :)
The badge summarises which versions of Scala are supported by Monix (and what the latest artifact version is for each of those Scala versions). [](https://index.scala-lang.org/monix/monix/monix) More details on the badge format here: scalacenter/scaladex#660
Co-authored-by: Alexandru Nedelcu <alexandru@users.noreply.github.com>
Co-authored-by: Alexandru Nedelcu <alexandru@users.noreply.github.com>
When I joined, the Notebooks team started to use Monix and all the backend systems for our next-generation tooling uses Monix.
Co-authored-by: Piotr Gawryś <pgawrys2@gmail.com>
…onix#1578) Co-authored-by: Arman Bilge <armanbilge@gmail.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…s, and GitHub Actions (drop Scala 2.12) (monix#1994) * Initial plan * Upgrade sbt to 1.10.9, Scala versions, and most plugins Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Fix compiler plugin versions and sbt-assembly compatibility Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Add -Wconf to silence other-pure-statement warnings from sbt-tpolecat 0.4.4 Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Update to latest plugin and Scala versions per feedback - Update plugins: sbt-scalajs 1.20.2, sbt-unidoc 0.6.1, sbt-jmh 0.4.8, sbt-scalafmt 2.5.6, sbt-scoverage 2.4.4, sbt-dynver 5.1.1, sbt-pgp 2.3.1 - Update snakeyaml 2.5 - Update Scala versions: 2.12.21, 2.13.18, 3.3.7 - Make silencer plugin conditional (not available for 2.12.21) - Disable -Xfatal-warnings for Scala 2.12.21 and 2.13.18 due to many new warnings - Add comprehensive -Wconf filters for Scala 2.13 warnings Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Drop Scala 2.12 support - remove from build and delete scala-2.12 specific code - Remove Scala 2.12.21 from all CI workflows - Remove scala-2.12 specific source directory (monix-execution/shared/src/main/scala-2.12) - Remove Scala 2.12 specific build configuration from build.sbt - Keep scala-2 directories (needed for Scala 2.13 vs Scala 3 compatibility) - Simplify tpolecatExcludeOptions (no longer need 2.12 special case) - Update silencer plugin configuration (remove 2.12.21 references) Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Update GitHub Actions workflow dependencies to latest versions - Update runner: ubuntu-20.04 → ubuntu-22.04 (20.04 is deprecated) - Update actions/cache: v1 → v4 (v1 is deprecated and causes workflow failures) - Update actions/setup-java: v3 → v4 - Update actions/setup-node: v2.1.2 → v4 - Update Node.js version: 14 → 20 - Update Java distribution: adopt → temurin (adopt is deprecated) These updates fix the GitHub Actions workflow not starting issue. Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * fix(build): make sbt-git use native git for worktree support * Update build.sbt --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> Co-authored-by: Alexandru Nedelcu <noreply@alexn.org>
…monix#1996) * Initial plan * Update library dependencies and sbt-tpolecat plugin Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> * Formatting --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: alexandru <11753+alexandru@users.noreply.github.com> Co-authored-by: Alexandru Nedelcu <noreply@alexn.org> Co-authored-by: Alexandru Nedelcu <alexandru@users.noreply.github.com>
- Raise minimum supported JDK version to 17 - Get rid of our usage of `sun.misc.Unsafe`, replacing it with `VarHandle` - Update Scala 3.x to Scala 3.8.2 — this generates a lot of warnings unfortunately, that need to be fixed (hence the big PR with superficial changes) - Drop support for Scala 2.12
This is for checking binary backwards compatibility against version 3.4.0
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Syncs series/3.x-avs with upstream monix/monix:main, bringing in the JDK 17+ / VarHandle-based atomics refactor, extensive formatting/tooling updates, and multiple internal/test cleanups.
Changes:
- Introduces new VarHandle-based boxed atomic internals and deprecates legacy Unsafe access paths.
- Applies broad Scala formatting / signature refactors and updates docs/config (scalafmt, changes log, steward, dependabot).
- Updates CI/publish workflow defaults and various tests (including added
@nowarnsuppressions).
Reviewed changes
Copilot reviewed 285 out of 1218 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| monix-execution/atomic/jvm/src/main/scala-2/monix/execution/atomic/AtomicNumber.scala | Updates copyright header. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/VarHandleBoxedObject.java | Adds VarHandle-backed boxed object abstraction. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/VarHandleBoxedLong.java | Adds VarHandle-backed boxed long abstraction. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/VarHandleBoxedInt.java | Adds VarHandle-backed boxed int abstraction. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/UnsafeAccess.java | Stubs legacy Unsafe access for JDK 17+ baseline. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right64JavaXBoxedObject.java | Adds padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right64JavaXBoxedLong.java | Adds padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right64JavaXBoxedInt.java | Adds padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right128JavaXBoxedObject.java | Adds larger padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right128JavaXBoxedLong.java | Adds larger padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Right128JavaXBoxedInt.java | Adds larger padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/NormalJavaXBoxedObject.java | Adds non-padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/NormalJavaXBoxedLong.java | Adds non-padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/NormalJavaXBoxedInt.java | Adds non-padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/LeftRight128JavaXBoxedObject.java | Adds left+right padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/LeftRight128JavaXBoxedLong.java | Adds left+right padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/LeftRight128JavaXBoxedInt.java | Adds left+right padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/LeftPadding56.java | Moves package to monix.execution.atomic.internal and removes @InternalApi. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/LeftPadding120.java | Moves package to monix.execution.atomic.internal and removes @InternalApi. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left64JavaXBoxedObject.java | Adds left-padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left64JavaXBoxedLong.java | Adds left-padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left64JavaXBoxedInt.java | Adds left-padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left128JavaXBoxedObject.java | Adds larger left-padded boxed object implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left128JavaXBoxedLong.java | Adds larger left-padded boxed long implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/Left128JavaXBoxedInt.java | Adds larger left-padded boxed int implementation using VarHandle. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/BoxedObject.java | Moves package and removes @InternalApi annotation. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/BoxedLong.java | Moves package and removes @InternalApi annotation. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/BoxedInt.java | Moves package and removes @InternalApi annotation. |
| monix-execution/atomic/jvm/src/main/java/monix/execution/atomic/internal/BoxPaddingStrategy.java | Moves package and removes @InternalApi annotation. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/package.scala | Improves package scaladoc links and examples. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/AtomicShort.scala | Adds @unused params and relaxes private[this] usage for JS implementation. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/AtomicFloat.scala | Adds @unused params and clarifies doc that padding is unused on JS. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/AtomicBuilder.scala | Formatting changes for method signatures. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/AtomicBoolean.scala | Adds @unused params for JS implementation. |
| monix-execution/atomic/js/src/main/scala/monix/execution/atomic/AtomicAny.scala | Adds @unused params for JS implementation. |
| monix-execution/atomic/js/src/main/scala-3/monix/execution/atomic/AtomicNumber.scala | Updates copyright header. |
| monix-execution/atomic/js/src/main/scala-2/monix/execution/atomic/AtomicNumber.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/tracing/StackTracedContextSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskWithCallbackSuite.scala | Adds @nowarn and formatting changes. |
| monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForParallelApplicativeSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForCoevalSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskTraverseSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskToStringSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskToFutureSuite.scala | Refactors deferFutureAction lambdas to ignore scheduler param. |
| monix-eval/shared/src/test/scala/monix/eval/TaskTimedSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskStartSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskStartAndForgetSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskSequenceSuite.scala | Formatting changes for Seq literals. |
| monix-eval/shared/src/test/scala/monix/eval/TaskRunAsyncSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskRightSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskParZipSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskParTraverseUnorderedSuite.scala | Adds @nowarn and Scala 3 syntax changes in types/instances. |
| monix-eval/shared/src/test/scala/monix/eval/TaskParTraverseSuite.scala | Minor formatting (map style). |
| monix-eval/shared/src/test/scala/monix/eval/TaskParSequenceSuite.scala | Formatting changes and map style. |
| monix-eval/shared/src/test/scala/monix/eval/TaskParSequenceNSuite.scala | Adds @nowarn and map style. |
| monix-eval/shared/src/test/scala/monix/eval/TaskOverloadsSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskOrCoevalTransformWithSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskOptionsSuite.scala | Changes extractOptions helper shape and adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskOptionSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskNowSuite.scala | Adds @nowarn and minor lambda param cleanup. |
| monix-eval/shared/src/test/scala/monix/eval/TaskMiscSuite.scala | Adds @nowarn and changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/TaskMapBothSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskLocalSuite.scala | Adds @nowarn and uses SAM lambdas for Runnable / formatting. |
| monix-eval/shared/src/test/scala/monix/eval/TaskLikeConversionsSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskLiftSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskLeftSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskGuaranteeSuite.scala | Adds @nowarn and formatting tweaks. |
| monix-eval/shared/src/test/scala/monix/eval/TaskFromFutureSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskFlatMapSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskExecutionModelSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithOptionsSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithModelSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskExecuteOnSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskExecuteAsyncSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskEvalOnceSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskEvalAsyncSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskEvalAlwaysSuite.scala | Minor lambda param cleanup. |
| monix-eval/shared/src/test/scala/monix/eval/TaskErrorSuite.scala | Adds @nowarn and simplifies unused error param. |
| monix-eval/shared/src/test/scala/monix/eval/TaskEffectInstanceSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskDoOnCancelSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskDelaySuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskDeferActionSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskCreateSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskConversionsSuite.scala | Adds @nowarn and Scala 3 wildcard syntax in reactive-streams types. |
| monix-eval/shared/src/test/scala/monix/eval/TaskConversionsKSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskConnectionRefSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskConnectionCompositeSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskCoevalForeachSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskCoevalDoOnFinishSuite.scala | Changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/TaskClockTimerAndContextShiftSuite.scala | Uses SAM lambdas for Runnable and formatting tweaks. |
| monix-eval/shared/src/test/scala/monix/eval/TaskCancellationSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskCancelableSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/TaskBracketSuite.scala | Adds @nowarn and formatting tweaks. |
| monix-eval/shared/src/test/scala/monix/eval/TaskAsyncSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskAsyncBoundarySuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/TaskAppSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalToStringSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalSequenceSuite.scala | Adds @nowarn and Scala 3 varargs-splice syntax. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalRunSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalRightSuite.scala | Changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalOptionSuite.scala | Changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalLikeConversionsSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalLeftSuite.scala | Changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalGuaranteeSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalConversionsKSuite.scala | Updates copyright header. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalCatsConversions.scala | Adds @nowarn and changes unused implicit scheduler params to _. |
| monix-eval/shared/src/test/scala/monix/eval/CoevalBracketSuite.scala | Adds @nowarn. |
| monix-eval/shared/src/test/scala/monix/eval/BaseTestSuite.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/tracing/TaskTrace.scala | Adjusts privacy qualifiers (private[this] removed). |
| monix-eval/shared/src/main/scala/monix/eval/tracing/TaskEvent.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/tracing/PrintingOptions.scala | Formats case class parameters. |
| monix-eval/shared/src/main/scala/monix/eval/tracing/CoevalTrace.scala | Adjusts privacy qualifiers (private[this] removed). |
| monix-eval/shared/src/main/scala/monix/eval/tracing/CoevalEvent.scala | Removes trailing whitespace line. |
| monix-eval/shared/src/main/scala/monix/eval/package.scala | Formats parameter list in CircuitBreaker helper. |
| monix-eval/shared/src/main/scala/monix/eval/internal/package.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/UnsafeCancelUtils.scala | Formatting and Scala 3 varargs-splice syntax changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TracedAsync.scala | Formatting changes and signature tweak. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskTracing.scala | Switches to Scala 3 wildcard syntax in Class types. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskToReactivePublisher.scala | Switches to Scala 3 wildcard syntax in reactive-streams subscriber types. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskStartAndForget.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskStart.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskSleep.scala | Avoids unused-result warning by binding pop() result. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskShift.scala | Uses SAM lambda for scheduler execution. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskSequence.scala | Formats implicit parameter list. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskRunToFutureWithLocal.scala | Formats large argument list and parameters. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskRacePair.scala | Avoids unused-result warning by binding pop() result. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskRaceList.scala | Uses Scala 3 varargs-splice syntax and avoids unused-result warning for pop(). |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskRace.scala | Avoids unused-result warning by binding pop() result. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskParSequenceUnordered.scala | Formats parameter list and avoids unused-result warning by binding pop() result. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskParSequenceN.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskParSequence.scala | Formatting tweaks and avoids unused-result warning for pop(). |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskMemoize.scala | Formatting tweaks and avoids unused-result warning for tryComplete. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskFromFuture.scala | Avoids unused-result warning and adds explicit null initializations. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskExecuteWithOptions.scala | Formatting and privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskExecuteWithModel.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskExecuteOn.scala | Adds explicit null initializations for locals. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskEvalAsync.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskEffect.scala | Re-formats implicits and avoids unused-result warning. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskDoOnCancel.scala | Adds explicit null initializations and avoids unused-result warning for pop(). |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskDeferAction.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskCreate.scala | Minor syntax adjustments and Scala 3 wildcard type in callback wrapper. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskConversions.scala | Uses SAM lambdas and avoids unused-result warning for pop(). |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskConnectionRef.scala | Formatting and privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskConnectionComposite.scala | Scala 3 varargs-splice syntax in Set construction. |
| monix-eval/shared/src/main/scala/monix/eval/internal/TaskConnection.scala | Formatting cleanup. |
| monix-eval/shared/src/main/scala/monix/eval/internal/StackTracedContext.scala | Privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/StackFrame.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/LazyVal.scala | Adds explicit null init and privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/FrameIndexRef.scala | Privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/ForwardCancelable.scala | Privacy qualifier changes and uses SAM lambdas. |
| monix-eval/shared/src/main/scala/monix/eval/internal/ForkedRegister.scala | Scala 3 wildcard type syntax in pattern matches. |
| monix-eval/shared/src/main/scala/monix/eval/internal/CoevalTracing.scala | Scala 3 wildcard syntax in Class types. |
| monix-eval/shared/src/main/scala/monix/eval/internal/CoevalStackTracedContext.scala | Privacy qualifier changes. |
| monix-eval/shared/src/main/scala/monix/eval/internal/CoevalRunLoop.scala | Scala 3 wildcard syntax and small formatting tweaks. |
| monix-eval/shared/src/main/scala/monix/eval/internal/CoevalDeprecated.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/internal/CoevalBracket.scala | Formats parameter lists. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsSyncForCoeval.scala | Formats bracketCase parameter list. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsParallelForTask.scala | Reorders import braces formatting. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsMonadToMonoid.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsEffectForTask.scala | Privacy qualifier changes and formats bracketCase signature. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsBaseForTask.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/instances/CatsAsyncForTask.scala | Formats bracketCase signature. |
| monix-eval/shared/src/main/scala/monix/eval/TaskLocal.scala | Formats ContextSwitch helper and error message formatting. |
| monix-eval/shared/src/main/scala/monix/eval/TaskLike.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/TaskLift.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/TaskApp.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/Fiber.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/CoevalLike.scala | Updates copyright header. |
| monix-eval/shared/src/main/scala/monix/eval/CoevalLift.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TypeClassLawsForTaskRunSyncUnsafeSuite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskRejectedExecutionSuite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskLocalJVMSuite.scala | Uses SAM lambda for Runnable and formatting changes. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskLikeConversionsJava8Suite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskIssue993Suite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskExecuteWithLocalContextSuite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskCallbackSafetyJVMSuite.scala | Formatting changes for lambdas / try-catch blocks. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskBlockingSuite.scala | Updates copyright header. |
| monix-eval/jvm/src/test/scala/monix/eval/TaskAsyncAutoShiftJVMSuite.scala | Updates copyright header. |
| monix-eval/jvm/src/main/scala/monix/eval/internal/TaskRunSyncUnsafe.scala | Formats params and adds explicit null init. |
| monix-eval/jvm/src/main/java/monix/eval/internal/TracingPlatform.java | Updates copyright header. |
| monix-eval/js/src/main/scala/monix/eval/internal/TracingPlatform.scala | Updates copyright header. |
| monix-eval/js/src/main/scala/monix/eval/internal/TaskRunSyncUnsafe.scala | Adds @unused params and expands signature formatting. |
| monix-catnap/shared/src/test/scala/monix/execution/TypeClassLawsForCancelableFutureSuite.scala | Updates copyright header. |
| monix-catnap/shared/src/test/scala/monix/execution/CallbackInstanceSuite.scala | Changes unused implicit scheduler param to _. |
| monix-catnap/shared/src/test/scala/monix/catnap/cancelables/SingleAssignCancelableFSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/cancelables/BooleanCancelableFSuite.scala | Updates copyright header. |
| monix-catnap/shared/src/test/scala/monix/catnap/cancelables/AssignableCancelableFSuite.scala | Updates copyright header. |
| monix-catnap/shared/src/test/scala/monix/catnap/TestSchedulerEffectSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/SemaphoreSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/ReferenceSchedulerEffectSuite.scala | Updates copyright header. |
| monix-catnap/shared/src/test/scala/monix/catnap/Overrides.scala | Updates copyright header. |
| monix-catnap/shared/src/test/scala/monix/catnap/MVarConcurrentSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/ConcurrentQueueSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/CircuitBreakerSuite.scala | Adds @nowarn. |
| monix-catnap/shared/src/test/scala/monix/catnap/CancelableFSuite.scala | Adds @nowarn and Scala 3 varargs-splice syntax. |
| monix-catnap/shared/src/main/scala/monix/execution/package.scala | Refactors contravariantRef definition formatting. |
| monix-catnap/shared/src/main/scala/monix/execution/CancelableFutureCatsInstances.scala | Formats recoverWith signature. |
| monix-catnap/shared/src/main/scala/monix/catnap/syntax.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/internal/QueueHelpers.scala | Privacy qualifier changes and formats parameter lists. |
| monix-catnap/shared/src/main/scala/monix/catnap/internal/ParallelApplicative.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/internal/AsyncUtils.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/cancelables/SingleAssignCancelableF.scala | Privacy qualifier changes and error message formatting. |
| monix-catnap/shared/src/main/scala/monix/catnap/cancelables/BooleanCancelableF.scala | Adjusts return type of alreadyCanceled and privacy qualifiers. |
| monix-catnap/shared/src/main/scala/monix/catnap/cancelables/AssignableCancelableF.scala | Adjusts return type of alreadyCanceled. |
| monix-catnap/shared/src/main/scala/monix/catnap/SchedulerEffect.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/ProducerF.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/OrElse.scala | Makes return types explicit using OrElse[A,B]. |
| monix-catnap/shared/src/main/scala/monix/catnap/FutureLift.scala | Updates implicit param types to OrElse[...] explicitly. |
| monix-catnap/shared/src/main/scala/monix/catnap/ConsumerF.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/ChannelF.scala | Updates copyright header. |
| monix-catnap/shared/src/main/scala/monix/catnap/CancelableF.scala | Removes unused either-syntax import and refactors cancellation collection impl. |
| monix-catnap/jvm/src/test/scala/monix/catnap/SemaphoreJVMSuite.scala | Updates copyright header. |
| monix-catnap/jvm/src/test/scala/monix/catnap/MVarJVMSuite.scala | Updates copyright header. |
| monix-catnap/jvm/src/test/scala/monix/catnap/FutureLiftJava8Suite.scala | Formatting changes to callback usage. |
| monix-catnap/jvm/src/test/scala/monix/catnap/ConcurrentQueueJVMSuite.scala | Updates copyright header. |
| monix-catnap/jvm/src/test/scala/monix/catnap/ConcurrentChannelJVMSuite.scala | Updates copyright header. |
| monix-catnap/jvm/src/test/scala/monix/catnap/CatsEffectIssue380Suite.scala | Changes atomic assignment style (:= to set). |
| monix-catnap/jvm/src/main/scala/monix/catnap/internal/FutureLiftForPlatform.scala | Updates implicit param types to OrElse[...] explicitly. |
| monix-catnap/js/src/main/scala/monix/catnap/internal/FutureLiftForPlatform.scala | Updates copyright header. |
| benchmarks/vprev/src/main/scala/monix/benchmarks/AsyncQueueBenchmark.scala | Removes trailing whitespace line. |
| benchmarks/vnext/src/main/scala/monix/benchmarks/ObservableIteratorBenchmark.scala | Privacy qualifier change (private[this] removed). |
| benchmarks/vnext/src/main/scala/monix/benchmarks/AsyncQueueBenchmark.scala | Import reformat and removes trailing whitespace line. |
| benchmarks/shared/src/main/scala/monix/benchmarks/TaskSequenceBenchmark.scala | Removes extra blank lines. |
| benchmarks/shared/src/main/scala/monix/benchmarks/ObservableMapTaskBenchmark.scala | Privacy qualifier change (private[this] removed). |
| benchmarks/shared/src/main/scala/monix/benchmarks/ObservableMapAccumulateBenchmark.scala | Formats partial function blocks. |
| benchmarks/shared/src/main/scala/monix/benchmarks/ObservableConcatMapBenchmark.scala | Privacy qualifier change (private[this] removed). |
| benchmarks/shared/src/main/scala/monix/benchmarks/MapParallelObservableBenchmark.scala | Privacy qualifier change (private[this] removed). |
| benchmarks/shared/src/main/scala/monix/benchmarks/ChunkedMapFilterSumBenchmark.scala | Scala 3 varargs-splice syntax and privacy qualifier changes. |
| benchmarks/shared/src/main/scala/monix/benchmarks/ChunkedEvalFilterMapSumBenchmark.scala | Scala 3 varargs-splice syntax in FS2/ZIO constructors. |
| CONTRIBUTING.md | Minor formatting for LICENSE reference. |
| CHANGES.md | Adds 3.5.0 release notes and updates MiMa link reference. |
| AGENTS.md | Adds AI-agent contribution rules (including no @nowarn without consent). |
| .scalafmt.conf | Updates scala3 dialect path glob. |
| .scala-steward.conf | Comments out updates.pin config. |
| .github/workflows/manual-publish.yml | Changes default ref, runner image, and Java setup step. |
| .github/dependabot.yml | Adds Dependabot config for GitHub Actions updates. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| description: 'Ref (branch or tag)' | ||
| required: true | ||
| default: 'refs/heads/series/3.x' | ||
| default: 'refs/heads/main' |
There was a problem hiding this comment.
This workflow sets up Java 8 (Adopt) even though the PR description and CHANGES indicate JDK 17 is the minimum supported baseline. This will likely fail publishes/builds or (worse) publish artifacts built with the wrong toolchain. Update the workflow to use the project baseline (e.g., Temurin 17) and align the setup-java action version accordingly.
.github/workflows/manual-publish.yml
Outdated
| env: | ||
| CI: true | ||
|
|
||
| runs-on: ubuntu-20.04 |
There was a problem hiding this comment.
This workflow sets up Java 8 (Adopt) even though the PR description and CHANGES indicate JDK 17 is the minimum supported baseline. This will likely fail publishes/builds or (worse) publish artifacts built with the wrong toolchain. Update the workflow to use the project baseline (e.g., Temurin 17) and align the setup-java action version accordingly.
.github/workflows/manual-publish.yml
Outdated
| - uses: actions/setup-java@v3 | ||
| with: | ||
| distribution: temurin | ||
| java-version: 11 | ||
| - uses: sbt/setup-sbt@v1 | ||
| java-version: 8 | ||
| distribution: adopt |
There was a problem hiding this comment.
This workflow sets up Java 8 (Adopt) even though the PR description and CHANGES indicate JDK 17 is the minimum supported baseline. This will likely fail publishes/builds or (worse) publish artifacts built with the wrong toolchain. Update the workflow to use the project baseline (e.g., Temurin 17) and align the setup-java action version accordingly.
| def apply[A](self: Task[A])(implicit s: Scheduler): org.reactivestreams.Publisher[A] = | ||
| new org.reactivestreams.Publisher[A] { | ||
| def subscribe(out: Subscriber[_ >: A]): Unit = { | ||
| def subscribe(out: Subscriber[? >: A]): Unit = { |
There was a problem hiding this comment.
This introduces Scala 3-only wildcard syntax (? >: A) in a shared/src/main/scala source file that is typically cross-compiled for Scala 2.x and Scala 3. If Scala 2.13 is still supported (the PR description only mentions dropping 2.12), this will not compile on Scala 2. Replace ? with Scala 2-compatible _ syntax (e.g., Subscriber[_ >: A]), or move this implementation into Scala 3-only source directories with a Scala 2 equivalent.
| } | ||
|
|
||
| private final class PublisherCallback[A](out: Subscriber[_ >: A])(implicit s: UncaughtExceptionReporter) | ||
| private final class PublisherCallback[A](out: Subscriber[? >: A])(implicit s: UncaughtExceptionReporter) |
There was a problem hiding this comment.
This introduces Scala 3-only wildcard syntax (? >: A) in a shared/src/main/scala source file that is typically cross-compiled for Scala 2.x and Scala 3. If Scala 2.13 is still supported (the PR description only mentions dropping 2.12), this will not compile on Scala 2. Replace ? with Scala 2-compatible _ syntax (e.g., Subscriber[_ >: A]), or move this implementation into Scala 3-only source directories with a Scala 2 equivalent.
| Task.unit | ||
| case first :: rest => | ||
| Task.raiseError(Platform.composeErrors(first, rest: _*)) | ||
| Task.raiseError(Platform.composeErrors(first, rest*)) |
There was a problem hiding this comment.
This uses Scala 3 varargs splicing syntax (rest*) in a shared/src/main/scala file. On Scala 2.x this is a compilation error (Scala 2 requires rest: _*). If the module is cross-built for Scala 2.13 + Scala 3, revert to Scala 2-compatible varargs syntax or split the source into scala-2 / scala-3 directories.
| - Never workaround the compiler, make an effort to solve errors in an idiomatic way: | ||
| - Avoid `asInstanceOf` downcasting, unless there's no other way (e.g., untagged union types in Scala 3). | ||
| - `@nowarn` annotations, or other ways for supressing warnings/errors, are not permitted without the user's consent. | ||
| - We fix warnings, we don't ignore them. |
There was a problem hiding this comment.
This PR adds a repository rule disallowing @nowarn, but the same PR also introduces @nowarn across many test suites. This is internally inconsistent and will be confusing for contributors/automation (and potentially CI-enforced policy). Either (a) remove the newly-added @nowarn annotations by fixing the underlying warnings, or (b) adjust this policy to explicitly allow @nowarn in specific scopes (e.g., tests) with a rationale.
| test("Coeval.zipList") { _ => | ||
| check1 { (numbers: List[Int]) => | ||
| val coeval = Coeval.zipList(numbers.map(x => Coeval(x)): _*) | ||
| val coeval = Coeval.zipList(numbers.map(x => Coeval(x))*) |
There was a problem hiding this comment.
This changes varargs expansion to Scala 3 splicing syntax (seq*), which does not compile on Scala 2.x (Scala 2 requires seq: _*). If this test is still cross-compiled for Scala 2.13 + Scala 3, revert to : _* or split tests into scala-2 / scala-3 source directories.
Sync fork with upstream monix/monix:main. Brings in VarHandle atomics, Scala 3.8.2, updated dependencies, scalafmt formatting, and mima refactoring. Conflicts resolved preferring upstream style. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
41c3581 to
b15e911
Compare
Summary
monix/monix:mainintoseries/3.x-avsprivate[this]→private, import braces)build.sbtTest plan
sbt compilesucceedssbt mimaReportBinaryIssuespasses🤖 Generated with Claude Code