Skip to content

Commit 513e3d4

Browse files
authored
Merge branch 'dev' into mlflow-sqlite-migration
2 parents c7bae32 + 87060c4 commit 513e3d4

91 files changed

Lines changed: 3803 additions & 347 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/blossom-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
runs-on: ubuntu-latest
5252
steps:
5353
- name: Checkout code
54-
uses: actions/checkout@v4
54+
uses: actions/checkout@v7
5555
with:
5656
repository: ${{ fromJson(needs.Authorization.outputs.args).repo }}
5757
ref: ${{ fromJson(needs.Authorization.outputs.args).ref }}

.github/workflows/build_docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
# minimum supported version of Python
2525
PYTHON_VER1: '3.10'
2626
steps:
27-
- uses: actions/checkout@v6
27+
- uses: actions/checkout@v7
2828
- name: Set up Python ${{ env.PYTHON_VER1 }}
2929
uses: actions/setup-python@v6
3030
with:

.github/workflows/cicd_tests.yml

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
sudo rm -rf /opt/ghc /usr/local/.ghcup
6767
sudo docker system prune -f
6868
69-
- uses: actions/checkout@v6
69+
- uses: actions/checkout@v7
7070
- name: Set up Python ${{ env.PYTHON_VER1 }}
7171
uses: actions/setup-python@v6
7272
with:
@@ -129,7 +129,7 @@ jobs:
129129
sudo rm -rf /usr/local/lib/android
130130
sudo rm -rf /opt/ghc /usr/local/.ghcup
131131
sudo docker system prune -f
132-
- uses: actions/checkout@v6
132+
- uses: actions/checkout@v7
133133
- name: Set up Python ${{ matrix.python-version }}
134134
uses: actions/setup-python@v6
135135
with:
@@ -171,7 +171,7 @@ jobs:
171171
strategy:
172172
fail-fast: false
173173
matrix:
174-
os: [windows-latest, ubuntu-latest] # macOS-latest omitted for now for being very slow, see #8864
174+
os: [windows-latest, ubuntu-latest, macOS-latest] # macOS-latest is very slow (#8864), testing install only
175175
timeout-minutes: 120
176176
env:
177177
QUICKTEST: True
@@ -191,7 +191,7 @@ jobs:
191191
minimum-size: 8GB
192192
maximum-size: 16GB
193193
disk-root: "D:"
194-
- uses: actions/checkout@v6
194+
- uses: actions/checkout@v7
195195
- name: Set up Python ${{ env.PYTHON_VER1 }}
196196
uses: actions/setup-python@v6
197197
with:
@@ -223,19 +223,77 @@ jobs:
223223
cat "requirements-dev.txt"
224224
python -m pip install --no-build-isolation -r requirements-dev.txt
225225
python -m pip list
226-
python -m pip install -e . # test no compile installation
226+
python -m pip install --no-build-isolation -e . # test no compile installation
227227
shell: bash
228228
- name: Run compiled (${{ runner.os }})
229229
run: |
230230
python -m pip uninstall -y monai
231-
BUILD_MONAI=1 python -m pip install -e . # compile the cpp extensions
231+
BUILD_MONAI=1 python -m pip install --no-build-isolation -e . # compile the cpp extensions
232232
shell: bash
233-
- name: Run quick tests
233+
- if: runner.os != 'macOS'
234+
name: Run full tests
234235
run: |
235236
python -c 'import torch; print(torch.__version__); print(torch.rand(5,3))'
236237
python -c "import monai; monai.config.print_config()"
237238
python -m unittest -v
238239
shell: bash
240+
- if: runner.os == 'macOS'
241+
name: Run min tests
242+
run: |
243+
python -c 'import torch; print(torch.__version__); print(torch.rand(5,3))'
244+
python -c "import monai; monai.config.print_config()"
245+
# TODO: enable large range of macOS tests which don't take a very long time
246+
./runtests.sh --min
247+
shell: bash
248+
249+
hyena-dep: # Optional HyenaND dependency + the no-CUDA Hyena tests.
250+
# nvsubquadratic >= 0.1.1 supports Python >= 3.10 and keeps its CUDA-kernel sdist
251+
# (subquadratic-ops-torch-cu12) plus the megatron / dali / timm packages in opt-in
252+
# extras, so it installs on a CPU runner. We still pass ``--no-deps`` deliberately:
253+
# (1) the HyenaND operators import only torch + einops + omegaconf at runtime, so
254+
# skipping the (still batteries-included: datasets/lightning/wandb) core deps
255+
# keeps this job lean; and
256+
# (2) nvsubquadratic pins torch>=2.10,<2.11, which would otherwise upgrade/clash
257+
# with the torch this job (and MONAI's matrix) installs.
258+
# CUDA-required Hyena tests skip cleanly here; the GPU surface is covered by
259+
# ``.github/workflows/pythonapp-hyena-gpu.yml``.
260+
runs-on: ubuntu-latest
261+
timeout-minutes: 30
262+
steps:
263+
- name: Clean unused tools
264+
run: |
265+
find /opt/hostedtoolcache/* -maxdepth 0 ! -name 'Python' -exec rm -rf {} \;
266+
sudo rm -rf /usr/share/dotnet
267+
sudo rm -rf /usr/local/lib/android
268+
sudo rm -rf /opt/ghc /usr/local/.ghcup
269+
sudo docker system prune -f
270+
- uses: actions/checkout@v6
271+
- name: Set up Python ${{ env.PYTHON_VER1 }}
272+
uses: actions/setup-python@v6
273+
with:
274+
python-version: ${{ env.PYTHON_VER1 }}
275+
cache: 'pip'
276+
- name: Install dependencies + nvsubquadratic (no-deps)
277+
run: |
278+
python -m pip install --upgrade pip wheel
279+
python -m pip install torch==${PYTORCH_VER1} torchvision==${TORCHVISION_VER1}
280+
python -m pip install --no-build-isolation -r requirements-dev.txt
281+
python -m pip install -e .
282+
# nvsubquadratic runtime imports need only torch + einops + omegaconf; install
283+
# the package itself without its core dependency tree (see job comment above).
284+
python -m pip install omegaconf
285+
python -m pip install --no-deps 'nvsubquadratic>=0.1.1'
286+
python -m pip list
287+
shell: bash
288+
- name: Run Hyena tests (CUDA-required cases skip cleanly)
289+
run: |
290+
python -c "from monai.networks.blocks.hyena import is_nvsubquadratic_available; \
291+
assert is_nvsubquadratic_available(), 'nvsubquadratic must be importable'"
292+
python -m pytest -v \
293+
tests/networks/blocks/test_hyena_block.py \
294+
tests/networks/nets/test_hyena_nd_unetr.py \
295+
tests/networks/nets/test_swin_unetr.py
296+
shell: bash
239297

240298
packaging: # Test package generation
241299
runs-on: ubuntu-latest
@@ -249,7 +307,7 @@ jobs:
249307
sudo rm -rf /usr/local/lib/android
250308
sudo rm -rf /opt/ghc /usr/local/.ghcup
251309
sudo docker system prune -f
252-
- uses: actions/checkout@v6
310+
- uses: actions/checkout@v7
253311
with:
254312
fetch-depth: 0
255313
- name: Set up Python ${{ env.PYTHON_VER1 }}

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838

3939
steps:
4040
- name: Checkout repository
41-
uses: actions/checkout@v6
41+
uses: actions/checkout@v7
4242

4343
# Initializes the CodeQL tools for scanning.
4444
- name: Initialize CodeQL

.github/workflows/conda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
minimum-size: 8GB
3333
maximum-size: 16GB
3434
disk-root: "D:"
35-
- uses: actions/checkout@v6
35+
- uses: actions/checkout@v7
3636
- name: Clean up disk space
3737
run: |
3838
find /opt/hostedtoolcache/* -maxdepth 0 ! -name 'Python' -exec rm -rf {} \;

.github/workflows/cron-ngc-bundle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
if: github.repository == 'Project-MONAI/MONAI'
1818
runs-on: ubuntu-latest
1919
steps:
20-
- uses: actions/checkout@v6
20+
- uses: actions/checkout@v7
2121
- name: Set up Python 3.10
2222
uses: actions/setup-python@v6
2323
with:

.github/workflows/cron.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
options: "--gpus all"
3333
runs-on: [self-hosted, linux, x64, common]
3434
steps:
35-
- uses: actions/checkout@v6
35+
- uses: actions/checkout@v7
3636
- name: apt install
3737
run: |
3838
apt-get update
@@ -67,7 +67,7 @@ jobs:
6767
if pgrep python; then pkill python; fi
6868
shell: bash
6969
- name: Upload coverage
70-
uses: codecov/codecov-action@v6
70+
uses: codecov/codecov-action@v7
7171
with:
7272
fail_ci_if_error: false
7373
files: ./coverage.xml
@@ -82,7 +82,7 @@ jobs:
8282
options: "--gpus all"
8383
runs-on: [self-hosted, linux, x64, integration]
8484
steps:
85-
- uses: actions/checkout@v6
85+
- uses: actions/checkout@v7
8686
- name: Install APT dependencies
8787
run: |
8888
apt-get update
@@ -115,7 +115,7 @@ jobs:
115115
if pgrep python; then pkill python; fi
116116
shell: bash
117117
- name: Upload coverage
118-
uses: codecov/codecov-action@v6
118+
uses: codecov/codecov-action@v7
119119
with:
120120
fail_ci_if_error: false
121121
files: ./coverage.xml
@@ -131,7 +131,7 @@ jobs:
131131
options: "--gpus all"
132132
runs-on: [self-hosted, linux, x64, integration]
133133
steps:
134-
- uses: actions/checkout@v6
134+
- uses: actions/checkout@v7
135135
with:
136136
fetch-depth: 0
137137
- name: Install the dependencies
@@ -220,7 +220,7 @@ jobs:
220220
if pgrep python; then pkill python; fi
221221
shell: bash
222222
- name: Upload coverage
223-
uses: codecov/codecov-action@v6
223+
uses: codecov/codecov-action@v7
224224
with:
225225
fail_ci_if_error: false
226226
files: ./coverage.xml
@@ -233,7 +233,7 @@ jobs:
233233
options: "--gpus all --ipc=host"
234234
runs-on: [self-hosted, linux, x64, integration]
235235
steps:
236-
- uses: actions/checkout@v6
236+
- uses: actions/checkout@v7
237237
- name: Install MONAI
238238
id: monai-install
239239
run: |

.github/workflows/docker.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
if: ${{ false }} # disable docker build job project-monai/monai#7450
2222
runs-on: ubuntu-latest
2323
steps:
24-
- uses: actions/checkout@v6
24+
- uses: actions/checkout@v7
2525
# full history so that we can git describe
2626
with:
2727
ref: dev
@@ -53,7 +53,7 @@ jobs:
5353
needs: versioning_dev
5454
runs-on: ubuntu-latest
5555
steps:
56-
- uses: actions/checkout@v6
56+
- uses: actions/checkout@v7
5757
with:
5858
ref: dev
5959
- name: Download version

.github/workflows/integration.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: [self-hosted, linux, x64, command]
1414
steps:
1515
# checkout the pull request branch
16-
- uses: actions/checkout@v6
16+
- uses: actions/checkout@v7
1717
with:
1818
token: ${{ secrets.PR_MAINTAIN }}
1919
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
@@ -22,7 +22,7 @@ jobs:
2222
id: pip-cache
2323
run: echo "datew=$(date '+%Y-%V')" >> $GITHUB_OUTPUT
2424
- name: cache for pip
25-
uses: actions/cache@v5
25+
uses: actions/cache@v6
2626
id: cache
2727
with:
2828
path: |
@@ -89,7 +89,7 @@ jobs:
8989
runs-on: [self-hosted, linux, x64, command1]
9090
steps:
9191
# checkout the pull request branch
92-
- uses: actions/checkout@v6
92+
- uses: actions/checkout@v7
9393
with:
9494
token: ${{ secrets.PR_MAINTAIN }}
9595
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
@@ -98,7 +98,7 @@ jobs:
9898
id: pip-cache
9999
run: echo "datew=$(date '+%Y-%V')" >> $GITHUB_OUTPUT
100100
- name: cache for pip
101-
uses: actions/cache@v5
101+
uses: actions/cache@v6
102102
id: cache
103103
with:
104104
path: |

.github/workflows/pythonapp-gpu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
options: --gpus all --env NVIDIA_DISABLE_REQUIRE=true # workaround for unsatisfied condition: cuda>=11.6
4747
runs-on: [self-hosted, linux, x64, common]
4848
steps:
49-
- uses: actions/checkout@v6
49+
- uses: actions/checkout@v7
5050
- name: apt install
5151
if: github.event.pull_request.merged != true
5252
run: |
@@ -127,6 +127,6 @@ jobs:
127127
shell: bash
128128
- name: Upload coverage
129129
if: ${{ github.head_ref != 'dev' && github.event.pull_request.merged != true }}
130-
uses: codecov/codecov-action@v6
130+
uses: codecov/codecov-action@v7
131131
with:
132132
files: ./coverage.xml

0 commit comments

Comments
 (0)