Skip to content
Merged
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 .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ jobs:
resource_class: large
steps:
- checkout
- run:
name: Update submodules
command: |
git submodule update --init --recursive
- run:
name: Set BASH_ENV
command: |
Expand Down
41 changes: 33 additions & 8 deletions .github/workflows/build_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ jobs:
with:
submodules: true
# Install Python & Packages
- uses: actions/setup-python@v4
- uses: actions/setup-python@v6
with:
python-version: "3.10"
python-version: "3.14"
- run: which python
- name: Lint with pre-commit
run: |
Expand All @@ -51,7 +51,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
python-version: "3.14"
- name: Build from source
run: |
python -m pip install --upgrade pip setuptools wheel
Expand All @@ -66,7 +66,7 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
python-version: ["3.11", "3.12", "3.13", "3.14"]

steps:
- name: Free Disk Space (Ubuntu)
Expand All @@ -79,7 +79,7 @@ jobs:
submodules: true

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
Expand Down Expand Up @@ -112,7 +112,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.14"
cache: 'pip'
- name: Install dependencies
run: |
Expand All @@ -125,14 +125,39 @@ jobs:
run: |
python -m pytest --durations=20 -v test/ ot/ --color=yes --cov=./ --cov-report=xml

# linux-minimal-deps-ft:

# runs-on: ubuntu-latest
# if: "!contains(github.event.head_commit.message, 'no ci')"
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true

# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version: "3.14t"
# cache: 'pip'
# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip setuptools
# pip install pytest pytest-cov
# - name: Install POT
# run: |
# pip install -e .
# - name: Run tests
# run: |
# python -m pytest --durations=20 -v test/ ot/ --color=yes --cov=./ --cov-report=xml

macos:
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'no ci')"
strategy:
max-parallel: 4
matrix:
os: [macos-latest]
python-version: ["3.12"]
python-version: ["3.13"]

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -162,7 +187,7 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: ["3.12"]
python-version: ["3.13"]

steps:
- uses: actions/checkout@v4
Expand Down
48 changes: 2 additions & 46 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
if: "contains(github.event.head_commit.message, 'build wheels')"
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v4
Expand All @@ -36,7 +36,7 @@ jobs:

- name: Build wheels
env:
CIBW_SKIP: "pp*-win* pp*-macosx* cp2* pp* cp36* cp37* cp38* cp*musl* *i686" # remove pypy on mac and win (wrong version)
CIBW_SKIP: "cp38* cp*musl* *i686 *win32" # remove pypy on mac and win (wrong version)
run: |
python -m cibuildwheel --output-dir wheelhouse

Expand All @@ -46,47 +46,3 @@ jobs:
path: ./wheelhouse


build_all_wheels:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
if: "contains(github.event.head_commit.message, 'build all wheels')"
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools

- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==3.1.4

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
with:
platforms: all

- name: Build wheels
env:
CIBW_SKIP: "pp*-win* pp*-macosx* cp2* pp* cp*musl* *i686" # remove pypy on mac and win (wrong version)
CIBW_ARCHS_LINUX: auto aarch64 # force aarch64 with QEMU
CIBW_ARCHS_MACOS: x86_64 universal2 arm64
run: |
python -m cibuildwheel --output-dir wheelhouse

- uses: actions/upload-artifact@v4
with:
name: wheels-${{ strategy.job-index }}
path: ./wheelhouse

11 changes: 2 additions & 9 deletions .github/workflows/build_wheels_weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v4
Expand All @@ -33,16 +33,9 @@ jobs:
run: |
python -m pip install cibuildwheel==3.1.4

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
with:
platforms: all

- name: Build wheels
env:
CIBW_SKIP: "pp*-win* pp*-macosx* cp2* pp* cp*musl* cp36* cp37* cp38* *i686" # remove pypy on mac and win (wrong version)
CIBW_ARCHS_LINUX: auto aarch64 # force aarch64 with QEMU
CIBW_SKIP: "cp*musl* cp38* *i686 *win32" # remove pypy on mac and win (wrong version)
CIBW_ARCHS_MACOS: x86_64 universal2 arm64
run: |
python -m cibuildwheel --output-dir wheelhouse
Expand Down
2 changes: 2 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ This new release adds support for sparse cost matrices and a new lazy EMD solver
- Add cost functions between linear operators following
[A Spectral-Grassmann Wasserstein metric for operator representations of dynamical systems](https://arxiv.org/pdf/2509.24920),
implemented in `ot.sgot` (PR #792)
- Build wheels on ubuntu ARM to avoid QEMU emulation (PR #818)

#### Closed issues

Expand All @@ -42,6 +43,7 @@ This new release adds support for sparse cost matrices and a new lazy EMD solver
- Reverting the openmp fix on macOS (PR #789) for macOS (PR #797)
- Align documentation build dependencies and doc extras (PR #801)
- Debug Debug linux test core dump (PR #815)
- Fix documentation build on master with submodules (PR #818)

## 0.9.6.post1

Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ scikit-learn
torch<=2.11
jax
jaxlib
tensorflow
tensorflow; python_version < '3.14'
pytest
torch_geometric
cvxpy
Expand Down
Loading