Skip to content

Sync fork with upstream monix/monix:main#26

Open
halotukozak wants to merge 73 commits intoseries/3.x-avsfrom
sync-upstream-main
Open

Sync fork with upstream monix/monix:main#26
halotukozak wants to merge 73 commits intoseries/3.x-avsfrom
sync-upstream-main

Conversation

@halotukozak
Copy link
Copy Markdown
Member

Summary

  • Merges upstream monix/monix:main into series/3.x-avs
  • Brings in VarHandle atomics, Scala 3.8.2, updated dependencies, scalafmt formatting, and mima refactoring
  • Conflicts resolved preferring upstream style (formatting, private[this]private, import braces)
  • Fixed duplicate imports in build.sbt

Test plan

  • CI passes (JVM + JS tests)
  • sbt compile succeeds
  • sbt mimaReportBinaryIssues passes

🤖 Generated with Claude Code

alexandru and others added 30 commits August 11, 2020 22:27
* 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).

[![monix Scala version support](https://index.scala-lang.org/monix/monix/monix/latest-by-scala-version.svg)](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>
scala-steward and others added 26 commits May 20, 2022 10:56
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
Copilot AI review requested due to automatic review settings April 9, 2026 18:26
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

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 @nowarn suppressions).

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'
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment on lines +19 to +22
env:
CI: true

runs-on: ubuntu-20.04
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +32
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11
- uses: sbt/setup-sbt@v1
java-version: 8
distribution: adopt
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
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 = {
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
}

private final class PublisherCallback[A](out: Subscriber[_ >: A])(implicit s: UncaughtExceptionReporter)
private final class PublisherCallback[A](out: Subscriber[? >: A])(implicit s: UncaughtExceptionReporter)
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Task.unit
case first :: rest =>
Task.raiseError(Platform.composeErrors(first, rest: _*))
Task.raiseError(Platform.composeErrors(first, rest*))
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment on lines +10 to +13
- 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.
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
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))*)
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
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>
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.