Skip to content

Commit 729c0f1

Browse files
authored
Merge branch 'main' into feature/concat_hdf5_virtual_datasets
2 parents e1833a2 + e6fbb70 commit 729c0f1

19 files changed

Lines changed: 151 additions & 120 deletions

.github/dependabot.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
labels:
8+
- no milestone
9+
- skip-gpu-ci

.github/workflows/benchmark.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ env:
1111

1212
defaults:
1313
run:
14-
shell: bash -el {0}
14+
# Add `-l` to GitHub’s default bash options to activate mamba environments
15+
# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#exit-codes-and-error-action-preference
16+
# https://github.com/mamba-org/setup-micromamba/#readme
17+
shell: bash -elo pipefail {0}
1518

1619
jobs:
1720
benchmark:
@@ -29,9 +32,10 @@ jobs:
2932
ASV_DIR: "./benchmarks"
3033

3134
steps:
32-
- uses: actions/checkout@v4
35+
- uses: actions/checkout@v5
3336
with:
3437
fetch-depth: 0
38+
# no blob filter so asv can checkout other commits
3539

3640
- run: git fetch origin main:main
3741
if: ${{ github.ref_name != 'main' }}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ env:
2424

2525
jobs:
2626
check-milestone:
27-
name: "Triage: Check Milestone"
27+
name: "Triage: Check PR title, milestone, and labels"
2828
runs-on: ubuntu-latest
2929
steps:
3030
- name: Check if merging isn’t blocked
@@ -35,3 +35,7 @@ jobs:
3535
uses: flying-sheep/check@v1
3636
with:
3737
success: ${{ github.event.pull_request.user.login == 'pre-commit-ci[bot]' || github.event.pull_request.milestone != null || contains(env.LABELS, 'no milestone') }}
38+
- name: Check if PR title is valid
39+
uses: amannn/action-semantic-pull-request@v6
40+
env: # Needs repo options: “Squash and merge” with commit message set to “PR title”
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/close-stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
stale:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/stale@v5
11+
- uses: actions/stale@v9
1212
with:
1313
days-before-issue-stale: -1 # We don't want to mark issues as stale in this action
1414
days-before-issue-close: 14

.github/workflows/label-stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
stale:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/stale@v5
11+
- uses: actions/stale@v9
1212
with:
1313
days-before-issue-stale: 60
1414
days-before-pr-stale: -1 # We don't want to mark PRs as stale

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
permissions:
1212
id-token: write # to authenticate as Trusted Publisher to pypi.org
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515
with:
1616
fetch-depth: 0
1717
filter: blob:none

.github/workflows/test-cpu.yml

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@ on:
1010
env:
1111
FORCE_COLOR: "1"
1212

13-
defaults:
14-
run:
15-
shell: bash -el {0}
16-
17-
# Cancel the job if new commits are pushed
18-
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre
13+
# Cancel the job if new commits are pushed: https://stackoverflow.com/q/66335225/247482
1914
concurrency:
2015
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
2116
cancel-in-progress: true
@@ -26,11 +21,11 @@ jobs:
2621
outputs:
2722
envs: ${{ steps.get-envs.outputs.envs }}
2823
steps:
29-
- uses: actions/checkout@v4
24+
- uses: actions/checkout@v5
3025
with:
3126
filter: blob:none
3227
fetch-depth: 0
33-
- uses: astral-sh/setup-uv@v5
28+
- uses: astral-sh/setup-uv@v6
3429
with:
3530
enable-cache: false
3631
- id: get-envs
@@ -41,6 +36,7 @@ jobs:
4136
| { name: .key, python: .value.python, args: (.value."extra-args" // [] | join(" ")) }
4237
)')
4338
echo "envs=${ENVS_JSON}" | tee $GITHUB_OUTPUT
39+
4440
test:
4541
needs: get-environments
4642
runs-on: ubuntu-latest
@@ -51,31 +47,35 @@ jobs:
5147
env: # environment variable for use in codecov’s env_vars tagging
5248
ENV_NAME: ${{ matrix.env.name }}
5349
steps:
54-
- uses: actions/checkout@v4
50+
- uses: actions/checkout@v5
5551
with:
5652
fetch-depth: 0
5753
filter: blob:none
5854

5955
- name: Install system dependencies
6056
run: sudo apt install -y hdf5-tools
6157

62-
- name: Set up Python ${{ matrix.env.python }}
63-
uses: actions/setup-python@v5
64-
with:
65-
python-version: ${{ matrix.env.python }}
66-
6758
- name: Install UV
68-
uses: astral-sh/setup-uv@v5
59+
uses: astral-sh/setup-uv@v6
6960
with:
7061
enable-cache: true
71-
cache-dependency-glob: pyproject.toml
62+
python-version: ${{ matrix.env.python }}
7263

7364
- name: Install dependencies
7465
run: uvx hatch -v env create ${{ matrix.env.name }}
7566

7667
- name: Run tests
7768
run: uvx hatch run ${{ matrix.env.name }}:run-cov -v --color=yes -n auto --cov --cov-report=xml --junitxml=test-data/test-results.xml -m "${{ matrix.io_mark }}" ${{ matrix.env.args }}
7869

70+
- name: Upload test results
71+
if: ${{ !cancelled() }}
72+
uses: codecov/test-results-action@v1
73+
with:
74+
token: ${{ secrets.CODECOV_TOKEN }}
75+
env_vars: ENV_NAME
76+
fail_ci_if_error: true
77+
file: test-data/test-results.xml
78+
7979
- name: Upload coverage data
8080
uses: codecov/codecov-action@v5
8181
with:
@@ -85,17 +85,18 @@ jobs:
8585
files: test-data/coverage.xml
8686

8787
build:
88-
runs-on: ubuntu-22.04
88+
runs-on: ubuntu-24.04
8989
steps:
90-
- uses: actions/checkout@v4
90+
- uses: actions/checkout@v5
9191
with:
9292
fetch-depth: 0
9393
filter: blob:none
9494

95-
- name: Set up Python 3.13
95+
- name: Set up Python
9696
uses: actions/setup-python@v5
9797
with:
98-
python-version: '3.13'
98+
python-version: '3.x'
99+
cache: pip
99100

100101
- name: Install build tools and requirements
101102
run: |
@@ -123,6 +124,6 @@ jobs:
123124
- build
124125
runs-on: ubuntu-latest
125126
steps:
126-
- uses: re-actors/alls-green@release/v1
127-
with:
128-
jobs: ${{ toJSON(needs) }}
127+
- uses: re-actors/alls-green@release/v1
128+
with:
129+
jobs: ${{ toJSON(needs) }}

.github/workflows/test-gpu.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ env:
1313
PYTEST_ADDOPTS: "-v --color=yes"
1414
FORCE_COLOR: "1"
1515

16-
defaults:
17-
run:
18-
shell: bash -el {0}
19-
2016
# Cancel the job if new commits are pushed
2117
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre
2218
concurrency:
@@ -48,7 +44,7 @@ jobs:
4844
timeout-minutes: 30
4945

5046
steps:
51-
- uses: actions/checkout@v4
47+
- uses: actions/checkout@v4 # TODO: upgrade once cirun image supports node 24
5248
with:
5349
fetch-depth: 0
5450
filter: blob:none
@@ -66,28 +62,24 @@ jobs:
6662
max_version=$(echo "$classifiers" | sort -V | tail -1)
6763
echo "max_python_version=$max_version" >> $GITHUB_ENV
6864
69-
- name: Install Python
70-
uses: actions/setup-python@v5
71-
with:
72-
# https://github.com/cupy/cupy/issues/8651 cupy does not support python3.13 yet
73-
python-version: "3.12"
74-
7565
- name: Install UV
76-
uses: astral-sh/setup-uv@v5
66+
uses: astral-sh/setup-uv@v6
7767
with:
7868
enable-cache: true
79-
cache-dependency-glob: pyproject.toml
69+
python-version: ${{ env.max_python_version }}
8070

8171
- name: Install AnnData
82-
run: uv pip install --system -e ".[dev,test,cu12]" -c ci/constraints.txt
72+
run: |
73+
uv venv
74+
uv pip install -e ".[dev,test,cu12]" -c ci/constraints.txt
8375
8476
- name: Env list
85-
run: pip list
77+
run: uv pip list
8678

8779
- name: Run test
88-
run: coverage run -m pytest -m gpu -n auto --cov --cov-report=xml
80+
run: uv run coverage run -m pytest -m gpu -n auto --cov --cov-report=xml
8981

90-
- uses: codecov/codecov-action@v4
82+
- uses: codecov/codecov-action@v5
9183
with:
9284
token: ${{ secrets.CODECOV_TOKEN }}
9385
fail_ci_if_error: true

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
3-
rev: v0.12.9
3+
rev: v0.12.10
44
hooks:
55
- id: ruff
66
args: ["--fix"]
@@ -10,7 +10,7 @@ repos:
1010
id: ruff
1111
args: ["--preview", "--select=PLR0917"]
1212
- repo: https://github.com/biomejs/pre-commit
13-
rev: v2.2.0
13+
rev: v2.2.2
1414
hooks:
1515
- id: biome-format
1616
- repo: https://github.com/ComPWA/taplo-pre-commit

.readthedocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: 2
22
build:
3-
os: ubuntu-20.04
3+
os: ubuntu-24.04
44
tools:
55
python: "3.13"
66
jobs:

0 commit comments

Comments
 (0)