Skip to content

Commit 577d7c9

Browse files
authored
CI: Test minimum package versions (#6940)
* Add resolution=lowest-direct CI job * Fix extras parameter when from-lock: false * Bump alembic * Bump flask version * Bump psycopg and sqlalchemy * Bump pymatgen and ASE * Bump tabulate * Bump pydantic * Bump pyparsing and ipython * Upgrade lockfile
1 parent 016d049 commit 577d7c9

File tree

8 files changed

+1596
-1155
lines changed

8 files changed

+1596
-1155
lines changed

.github/actions/install-aiida-core/action.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ inputs:
1818
description: Install aiida-core dependencies from uv lock file
1919
default: 'true'
2020
required: false
21+
resolution-strategy:
22+
description: uv dependency resolution strategy
23+
default: highest
24+
required: false
2125

2226
runs:
2327
using: composite
@@ -42,5 +46,6 @@ runs:
4246

4347
- name: Install aiida-core
4448
if: ${{ inputs.from-lock != 'true' }}
45-
run: uv pip install -e .${{ inputs.extras }}
49+
run: |
50+
uv pip install --resolution ${{ inputs.resolution-strategy }} -e .${{ inputs.extras && format('[{0}]', inputs.extras) || '' }}
4651
shell: bash

.github/workflows/ci-code.yml

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ jobs:
2828
matrix:
2929
python-version: ['3.9', '3.13']
3030
database-backend: [psql]
31-
include:
32-
- python-version: '3.9'
33-
database-backend: sqlite
3431

3532
services:
3633
postgres:
@@ -88,6 +85,45 @@ jobs:
8885
files: ./coverage.xml
8986
fail_ci_if_error: false # don't fail job, if coverage upload fails
9087

88+
tests-minimum-requirements:
89+
name: test minimum reqs (${{ matrix.python-version }}, ${{ matrix.database-backend }})
90+
runs-on: ubuntu-24.04
91+
timeout-minutes: 45
92+
strategy:
93+
fail-fast: false
94+
matrix:
95+
python-version: ['3.9']
96+
database-backend: [sqlite]
97+
98+
services:
99+
rabbitmq:
100+
image: rabbitmq:3.8.14-management
101+
ports:
102+
- 5672:5672
103+
- 15672:15672
104+
105+
steps:
106+
- uses: actions/checkout@v4
107+
108+
- name: Install graphviz
109+
run: sudo apt update && sudo apt install graphviz
110+
111+
- name: Install aiida-core
112+
uses: ./.github/actions/install-aiida-core
113+
with:
114+
python-version: ${{ matrix.python-version }}
115+
from-lock: 'false'
116+
resolution-strategy: lowest-direct
117+
118+
- name: Setup SSH on localhost
119+
run: .github/workflows/setup_ssh.sh
120+
121+
- name: Run test suite
122+
env:
123+
AIIDA_WARN_v3: 0
124+
run: pytest --disable-warnings -n auto --db-backend ${{ matrix.database-backend }} -m 'not nightly' tests/
125+
126+
91127
tests-presto:
92128

93129
runs-on: ubuntu-24.04

.github/workflows/docs-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
uses: ./.github/actions/install-aiida-core
2525
with:
2626
python-version: '3.9'
27-
extras: '[docs,tests,rest,atomic_tools]'
27+
extras: docs,tests,rest,atomic_tools
2828
from-lock: 'false'
2929

3030
- name: Build HTML docs

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
uses: ./.github/actions/install-aiida-core
5252
with:
5353
python-version: '3.11'
54-
extras: '[pre-commit]'
54+
extras: pre-commit
5555
from-lock: 'false'
5656

5757
- name: Run pre-commit

.github/workflows/test-install.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ jobs:
199199
uses: ./.github/actions/install-aiida-core
200200
with:
201201
python-version: ${{ matrix.python-version }}
202-
extras: '[atomic_tools,docs,notebook,rest,tests,tui]'
202+
extras: atomic_tools,docs,notebook,rest,tests,tui
203203
from-lock: 'false'
204204

205205
- name: Setup AiiDA environment

environment.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ channels:
66
- defaults
77
dependencies:
88
- python~=3.9
9-
- alembic~=1.2
9+
- alembic~=1.8
1010
- archive-path~=0.4.2
1111
- asyncssh~=2.19.0
1212
- circus~=0.19.0
@@ -17,7 +17,7 @@ dependencies:
1717
- get-annotations~=0.1
1818
- python-graphviz~=0.19
1919
- plumpy~=0.25.0
20-
- ipython>=7
20+
- ipython>=7.6
2121
- jedi<0.19
2222
- jinja2~=3.0
2323
- kiwipy[rmq]~=0.8.4
@@ -26,13 +26,13 @@ dependencies:
2626
- paramiko~=3.0
2727
- pgsu~=0.3.0
2828
- psutil~=5.6
29-
- psycopg[binary]~=3.0
30-
- pydantic~=2.4
29+
- psycopg[binary]<4,>=3.0.2
30+
- pydantic~=2.6
3131
- pytz~=2021.1
3232
- pyyaml~=6.0
3333
- requests~=2.0
34-
- sqlalchemy~=2.0
35-
- tabulate<0.10.0,>=0.8.0
34+
- sqlalchemy<3,>=2.0.20
35+
- tabulate<0.10.0,>=0.9.0
3636
- tqdm~=4.45
3737
- typing-extensions~=4.0
3838
- upf_to_json~=0.9.2

pyproject.toml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ classifiers = [
1919
'Topic :: Scientific/Engineering'
2020
]
2121
dependencies = [
22-
'alembic~=1.2',
22+
'alembic~=1.8',
2323
'archive-path~=0.4.2',
2424
"asyncssh~=2.19.0",
2525
'circus~=0.19.0',
@@ -30,7 +30,7 @@ dependencies = [
3030
'get-annotations~=0.1;python_version<"3.10"',
3131
'graphviz~=0.19',
3232
'plumpy~=0.25.0',
33-
'ipython>=7',
33+
'ipython>=7.6',
3434
'jedi<0.19',
3535
'jinja2~=3.0',
3636
'kiwipy[rmq]~=0.8.4',
@@ -39,13 +39,13 @@ dependencies = [
3939
'paramiko~=3.0',
4040
'pgsu~=0.3.0',
4141
'psutil~=5.6',
42-
'psycopg[binary]~=3.0',
43-
'pydantic~=2.4',
42+
'psycopg[binary]>=3.0.2,<4',
43+
'pydantic~=2.6',
4444
'pytz~=2021.1',
4545
'pyyaml~=6.0',
4646
'requests~=2.0',
47-
'sqlalchemy~=2.0',
48-
'tabulate>=0.8.0,<0.10.0',
47+
'sqlalchemy>=2.0.20,<3',
48+
'tabulate>=0.9.0,<0.10.0',
4949
'tqdm~=4.45',
5050
'typing-extensions~=4.0;python_version<"3.10"',
5151
'upf_to_json~=0.9.2',
@@ -202,9 +202,9 @@ requires-python = '>=3.9'
202202
[project.optional-dependencies]
203203
atomic_tools = [
204204
'PyCifRW~=4.4',
205-
'ase~=3.18',
205+
'ase~=3.21',
206206
'matplotlib~=3.3,>=3.3.4',
207-
'pymatgen>=2022.1.20',
207+
'pymatgen>=2024.3.1',
208208
'pymysql~=0.9.3',
209209
'seekpath~=1.9,>=1.9.3',
210210
'spglib>=1.14,<3.0'
@@ -239,9 +239,9 @@ pre-commit = [
239239
]
240240
rest = [
241241
'flask-cors~=3.0',
242-
'flask-restful~=0.3.7',
243-
'flask~=2.2',
244-
'pyparsing~=3.0',
242+
'flask-restful~=0.3.10',
243+
'flask~=2.3.3',
244+
'pyparsing~=3.1',
245245
'python-memcached~=1.59',
246246
'seekpath~=1.9,>=1.9.3'
247247
]

0 commit comments

Comments
 (0)