Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
df4d186
Update build.yml for series/4.x
alexandru Aug 11, 2020
171586d
1202: prioritized merge (#1205)
ctoomey Aug 11, 2020
60eec23
Disable stable version publishes
alexandru Aug 12, 2020
4e92eaf
Fix #1229: Drop support for Scala 2.11 (#1230)
alexandru Aug 12, 2020
87d17fd
README simplification (#1233)
alexandru Aug 12, 2020
3344c51
Add Platform.getEnv that works on Node.js too, make CI=true work (#1235)
alexandru Aug 12, 2020
bc2309a
Publish executionShadedJCTools artifacts (#1236)
Avasil Aug 13, 2020
bca654e
Fix publishing of shaded JCTools (#1238) (#1239)
github-actions[bot] Aug 13, 2020
e3a7fe6
Update jctools-core to 3.0.1 (#1237)
scala-steward Aug 13, 2020
a15dcd1
Update jctools-core to 3.1.0 (#1240) (#1246)
alexandru Aug 24, 2020
ce0a3ce
Backport manual publish (#1248)
alexandru Aug 24, 2020
440f0a6
Backport FUNDING.yml to series/4.x (#1250)
alexandru Aug 24, 2020
ee0b8b6
Mention Monix BIO in the readme (#1251) (#1252)
github-actions[bot] Aug 24, 2020
5bac9a1
Merge remote-tracking branch 'origin/series/3.x' into series/4.x
alexandru May 6, 2021
88fdaf6
Fix manual-publish.yml
alexandru May 6, 2021
ff7a7b0
Update README
alexandru May 6, 2021
d68dd0e
Adds discord badge to readme (#1431)
paualarco May 9, 2021
4d1a97c
Merge remote-tracking branch 'origin/series/3.x' into series/4.x
alexandru May 11, 2021
0b7919e
Update for Scala 2.13.5, 3.0.0, other dependencies (#1440)
alexandru May 14, 2021
5708f24
Release notes for 3.4.0 (#1446)
alexandru May 14, 2021
1f5d939
Fix README to mention 3.4 API
alexandru May 14, 2021
3bcd6f6
Update kind-projector to 0.13.0 (#1448)
scala-steward May 18, 2021
d770c03
Add Scaladex badge to show Scala version support (#1467)
rtyley Jun 15, 2021
ac5cce1
Fixed doc typo (#1476)
kpodsiad Aug 11, 2021
a43906b
Update kind-projector to 0.13.2 (#1491)
scala-steward Sep 4, 2021
2e9dc85
Update scalafmt-core to 3.0.2 (#1490)
scala-steward Sep 4, 2021
d6f504a
Update scala3-library, ... to 3.0.2 (#1489)
scala-steward Sep 4, 2021
4823272
Adds Netflix to the list of monix adopters (#1511)
jvican Nov 4, 2021
0f5bbde
Update scala-collection-compat to 2.5.0 (#1470)
scala-steward Nov 4, 2021
09ad306
Add AVSystem to list of adopters (#1516)
ghik Nov 26, 2021
1e439b5
Update README
alexandru May 7, 2022
f1769c9
Merge branch 'series/4.x' of github.com:monix/monix into series/4.x
alexandru May 7, 2022
aab5173
Only include JCTools in executionShadedJCTools (#1514)
gabro Nov 10, 2021
82fa8f6
Trampoline.trampolineContext no longer ignores its parent BlockContex…
Apr 13, 2022
23f2276
Update dependencies (#1554)
alexandru May 7, 2022
38f2ce4
Change PGP key
alexandru May 7, 2022
b2afd33
Prepare for 3.4.1
alexandru May 7, 2022
a0d2ea6
Update PGP key
alexandru May 7, 2022
81f2775
Add .scala-steward.conf
alexandru May 9, 2022
a8f4177
Update sbt-git to 2.0.0 (#1557)
scala-steward May 9, 2022
5d732ee
Update snakeyaml to 1.30 in series/4.x (#1571)
scala-steward May 9, 2022
d2f8ed1
Make Scalafmt mandatory in build (#1573)
alexandru May 15, 2022
72ba954
Licensing headers (#1574)
alexandru May 15, 2022
cf71823
Fix formatting
alexandru May 18, 2022
c688df5
Introduce `monix-execution-atomic` (#1561)
alexandru May 18, 2022
518b8da
Fixes (#1575)
alexandru May 19, 2022
6aa0350
Update cats-effect, cats-effect-laws to 2.5.5 in series/4.x (#1577)
scala-steward May 20, 2022
e11cfad
Backport to 4.x — Switch to `MacrotaskExecutor` on JS (#1522) (#1578)
alexandru May 20, 2022
0df25b6
Enable more Scala warnings (#1579)
alexandru May 21, 2022
5393572
Build.sbt — align source directories to standard (#1581)
alexandru May 21, 2022
de87984
Add `DigitalGenius` to the list of adopters (#1618)
radusw Jul 25, 2022
f2cca0d
New Adopter: PITS Global Data Recovery Services (#1716)
May 3, 2023
cf4f1e5
use setup-java instead of deprecated olafurpg/setup-scala (#1778)
xuwei-k Oct 15, 2023
41511b3
add dependabot.yml (#1779)
xuwei-k Oct 15, 2023
629cf79
Bump actions/checkout from 2 to 4 (#1780)
dependabot[bot] Oct 15, 2023
c1cbf43
add explicit type (#1783)
xuwei-k Oct 16, 2023
88aa30d
Update mima url (#1784)
xuwei-k Oct 16, 2023
dfab0dc
add JDK 17 test instead of 11 (#1787)
xuwei-k Oct 17, 2023
8447616
format build files (#1785)
xuwei-k Oct 17, 2023
2faa2cf
Update scala-js and Scala 3 (#1786)
xuwei-k Oct 17, 2023
9b8d48b
Upgrade build infrastructure: sbt 1.10.9, Scala 2.13.18/3.3.7, plugin…
Copilot Jan 26, 2026
4d76ff9
Update sbt
alexandru Jan 26, 2026
4358e23
Update library dependencies and migrate sbt-tpolecat to org.typelevel…
Copilot Mar 28, 2026
8c00851
VarHandle, Scala 3.8.2, drop Scala 2.12, set minimum JDK to 17
alexandru Apr 1, 2026
201c6bf
Disable auto-publishing for main
alexandru Apr 1, 2026
f38a4f5
Re-enable Mima (#2018)
alexandru Apr 2, 2026
3e74752
Restore Callback`s API (#2021)
alexandru Apr 6, 2026
240ec65
Mima refactoring (#2022)
alexandru Apr 7, 2026
f4cf169
Switch to `main` as main branch
alexandru Apr 7, 2026
330fd7d
Update README
alexandru Apr 7, 2026
f7ce85d
Fix build on main
alexandru Apr 7, 2026
13aa053
Fix formatting
alexandru Apr 8, 2026
b15e911
Merge upstream/main into series/3.x-avs
halotukozak Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
125 changes: 96 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ name: build

on:
pull_request:
branches: [ 'series/*' ]
branches: ['series/*', 'main']
push:
branches: [ 'series/*' ]
tags: [ "v[0-9]+*" ]
branches: ['series/*', 'main']
tags: ["v[0-9]+*"]

jobs:
jvm-tests:
name: JVM / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
java: [ 11, 17, 21, 25 ]
java: [ 17, 21, 25 ]
# WARN: build.sbt depends on this key path, as scalaVersion and
# crossScalaVersions is determined from it
scala: [ 2.13.18, 3.3.7 ]
scala: [ 2.13.18, 3.8.2 ]

env:
CI: true
Expand All @@ -26,8 +26,8 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: "${{ matrix.java }}"
distribution: temurin
java-version: ${{ matrix.java }}
- uses: sbt/setup-sbt@v1

- name: Cache ivy2
Expand Down Expand Up @@ -56,17 +56,24 @@ jobs:
PLATFORM: ${{ matrix.java }}
SBT_COMMAND: ci-jvm

- name: sbt reactiveTests/test
run: ./.github/scripts/exec-sbt-command
env:
SCALA_VERSION: ${{ matrix.scala }}
PLATFORM: ${{ matrix.java }}
SBT_COMMAND: "reactiveTests/test"

js-tests:
name: JS / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
# WARN: build.sbt depends on this key path, as scalaVersion and
# crossScalaVersions is determined from it
include:
- { java: 11, scala: 2.13.18 }
- { java: 11, scala: 3.3.7 }
- { java: 17, scala: 2.13.18 }
- { java: 17, scala: 3.8.2 }

env:
CI: true
Expand All @@ -75,8 +82,8 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: "${{ matrix.java }}"
distribution: temurin
java-version: ${{ matrix.java }}
- uses: sbt/setup-sbt@v1

- name: Cache ivy2
Expand All @@ -101,7 +108,7 @@ jobs:
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 14
node-version: 20

- name: sbt ci-js
run: |
Expand All @@ -113,20 +120,24 @@ jobs:

mima:
name: Mima / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

env:
CI: true

strategy:
fail-fast: false
matrix:
include:
- { java: 11, scala: 2.13.18 }
- { java: 11, scala: 3.3.7 }
- { java: 17, scala: 2.13.18 }
- { java: 17, scala: 3.8.2 }

steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: "${{ matrix.java }}"
distribution: temurin
java-version: ${{ matrix.java }}
- uses: sbt/setup-sbt@v1

- name: Cache ivy2
Expand Down Expand Up @@ -155,23 +166,74 @@ jobs:
SCALA_VERSION: ${{ matrix.scala }}
SBT_COMMAND: mimaReportBinaryIssues

scalafmt:
name: Scalafmt / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
runs-on: ubuntu-22.04

env:
CI: true

strategy:
fail-fast: false
matrix:
include:
- { java: 17, scala: 2.13.18 }
- { java: 17, scala: 3.8.2 }

steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: "${{ matrix.java }}"
distribution: temurin
- uses: sbt/setup-sbt@v1

- name: Cache ivy2
uses: actions/cache@v4
with:
path: ~/.ivy2/cache
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}

- name: Cache coursier (linux)
if: contains(runner.os, 'linux')
uses: actions/cache@v4
with:
path: ~/.cache/coursier/v1
key: ${{ runner.os }}-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}

- name: Cache sbt
uses: actions/cache@v4
with:
path: ~/.sbt
key: ${{ runner.os }}-sbt-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}

- name: sbt scalafmtCheckAll
run: |
./.github/scripts/exec-sbt-command
env:
SCALA_VERSION: ${{ matrix.scala }}
SBT_COMMAND: "scalafmtCheckAll scalafmtSbtCheck"

unidoc:
name: Unidoc / scala ${{ matrix.scala }}, jdk ${{ matrix.java }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

env:
CI: true

strategy:
fail-fast: false
matrix:
include:
- { java: 11, scala: 2.13.18 }
# TODO: enable this after it works!
# - { java: 11, scala: 3.3.5 }
- { java: 17, scala: 2.13.18 }
- { java: 17, scala: 3.8.2 }

steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: "${{ matrix.java }}"
distribution: temurin
java-version: ${{ matrix.java }}
- uses: sbt/setup-sbt@v1

- name: Cache ivy2
Expand Down Expand Up @@ -202,28 +264,33 @@ jobs:

all_tests:
name: All Tests
needs: [ jvm-tests, js-tests, mima, unidoc ]
runs-on: ubuntu-latest
if: always()
needs: [ jvm-tests, js-tests, mima, scalafmt, unidoc ]
runs-on: ubuntu-22.04
steps:
- name: Ack
run: |
echo "All done."
- name: Validate required tests
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}

publish:
name: Publish to Sonatype
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/series/3.x')
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/series/3.x-avs')
needs: [ all_tests ]

runs-on: ubuntu-latest
env:
CI: true

runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 100

- uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
java-version: 11
- uses: sbt/setup-sbt@v1

- name: Install GnuPG2
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/manual-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
ref_to_publish:
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.
stable_version:
description: 'Stable version? (true=staging, false=snapshot)'
required: true
Expand All @@ -16,7 +16,10 @@ jobs:
publish:
name: Publish to Sonatype (Request)

runs-on: ubuntu-latest
env:
CI: true

runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -25,8 +28,8 @@ jobs:

- uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
java-version: 11
- uses: sbt/setup-sbt@v1

- name: Install GnuPG2
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ TAGS
.tags
.metals
.bloop
.bsp
metals.sbt
.vscode
.bsp
.planning/
*.sublime*
.sisyphus/
8 changes: 4 additions & 4 deletions .scala-steward.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pullRequests.frequency = "7 days"

updates.pin = [
{ groupId = "org.typelevel", artifactId="cats-effect", version = "2." },
{ groupId = "org.typelevel", artifactId="cats-effect-laws", version = "2." },
]
#updates.pin = [
# { groupId = "org.typelevel", artifactId="cats-effect", version = "2." },
# { groupId = "org.typelevel", artifactId="cats-effect-laws", version = "2." },
#]
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ align.tokens = [
]

fileOverride {
"glob:**/src/main/scala_3.0/**" {
"glob:**/src/main/scala-3*/**" {
runner.dialect = scala3
},
"glob:**/*.sbt" {
Expand Down
15 changes: 15 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Agent Instructions for Monix

This file contains mandatory rules for AI agents (Copilot, Claude, Cursor, etc.) working on this repository.
**Any violation is a CI-breaking mistake!**

---

## Code rules

- 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.
Comment on lines +10 to +13
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.
- Use package imports, instead of fully qualified names.
- Make an effort to write idiomatic, yet performant Scala code.
18 changes: 17 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
## Version 3.5.0 (Mar 31, 2026)

This release updates Monix 3.x support baselines for modern JVM and Scala toolchains.

Breaking changes:

- JDK `17` is now the minimum supported runtime and build target.
- JDK `21` is now part of the validated support matrix.
- Scala `2.12` support is dropped.
- Scala `3` is upgraded to `3.8.2`.
- Legacy `sun.misc.Unsafe`-based internals were removed in favor of JDK `VarHandle`-based implementations.

This release was made possible by the work and feedback of:

- Alexandru Nedelcu (@alexandru)

## Version 3.4.1 (May 7, 2022)

This is a minor bug-fixing release for the 3.x series.
Expand Down Expand Up @@ -1531,7 +1547,7 @@ Bug fixes:
Build:

- enabled the Scala
[Migration Manager](https://github.com/typesafehub/migration-manager)
[Migration Manager](https://github.com/lightbend/mima)
(MiMa) in `build.sbt` to check for backwards compatibility problems
- [Issue #322](https://github.com/monix/monix/issues/322):
Switch projects which use `CrossVersion.full/"org.scala-lang"`
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The Monix project welcomes contributions from anybody wishing to participate.
All code or documentation that is provided must be licensed with Apache 2.0
(see LICENSE.txt).
(see `LICENSE.txt`).

## Code of Conduct

Expand Down
Loading
Loading