Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ jobs:
- ubuntu-latest
- windows-latest
- macos-latest
resolution-strategy:
- "highest"
- "lowest-direct"
runs-on: ${{ matrix.os }}
env:
# Disable implicitly syncing before running - we run an explicit sync first.
Expand All @@ -34,6 +37,7 @@ jobs:
version: "latest"
python-version: ${{ matrix.python-version }}
enable-cache: true
resolution-strategy: ${{ matrix.resolution-strategy }}
- name: Install test dependencies
run: uv sync --group test --no-dev --locked
- name: Debug - uv pip freeze
Expand Down
30 changes: 16 additions & 14 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,17 @@ dependencies = [
# should not be taken to imply that Coreax is *known* to be incompatible with
# earlier versions; they are just there to prevent extremely out-of-date versions
# of dependencies being used (which would almost certainly have incompatibilities).
"equinox>=0.11.5", # Earlier versions are incompatible.
"flax>=0.8",
"jax>=0.4",
"jaxopt>=0.8",
"jaxtyping>0.2.31", # Earlier versions are incompatible.
"optax>=0.2",
"scikit-learn>=1",
"tqdm>=4",
"typing-extensions>=4.12",
# NOTE: lower bounds are the lowest supported version when using the lowest-direct
# resolution mode of uv on the latest supported version of python.
"equinox>=0.11.11", # Earlier versions are incompatible.
"flax>=0.10.0",
"jax>=0.4.38",
"jaxopt>=0.8.4",
"jaxtyping>0.2.30", # Earlier versions are incompatible.
"optax>=0.1.5",
"scikit-learn>=1.5.0",
"tqdm>=4.27",
"typing-extensions>=4.12", # Earlier versions are incompatible.
]

[dependency-groups]
Expand Down Expand Up @@ -72,24 +74,24 @@ test = [
"pytest>=9",
"pytest-cov>=6",
"pytest-xdist>=3",
"scipy>=1.13",
"scipy>=1.14.1",
]
# Benchmarking - runs very similar code to examples with same dependencies plus more
benchmark = [
{include-group = "example"},
"torch>=2.5",
"torchvision>=0.20",
"torchvision>=0.21",
"umap-learn>=0.5.7", # Earlier versions are incompatible.
# Required for umap-learn - we constrain this so dependency solvers don't
# erroneously backtrack.
"llvmlite>=0.40.0",
]
# Example scripts
example = [
"imageio>=2",
"matplotlib>=3",
"imageio>=2.19.4",
"matplotlib>=3.7.3",
"numpy>=2",
"opencv-python-headless>=4", # WARNING: Incompatible with other versions of opencv
"opencv-python-headless>=4.10.0.84", # WARNING: Incompatible with other versions of opencv
]

[tool.uv]
Expand Down
Loading