Skip to content

Commit 38be5b2

Browse files
committed
test and build Python 3.14 wheels
fail back to 3.13 for lint as pyright is not installable revert win to 3.11 for now (cannot recreate locally) resolve to highest in Ubuntu fix different err msg in 3.14 ➜ temp uv run -p 3.13 test_index.py Traceback (most recent call last): File "/Users/yang/developer/temp/test_index.py", line 1, in <module> print(["a"].index(1)) ~~~~~~~~~~~^^^ ValueError: 1 is not in list ➜ temp uv run -p 3.14 test_index.py Traceback (most recent call last): File "/Users/yang/developer/temp/test_index.py", line 1, in <module> print(["a"].index(1)) ~~~~~~~~~~~^^^ ValueError: list.index(x): x not in list skip netcdf4 in 3.13 skip more py 3.14 incompatible deps matcalc seems installable on python 3.13 and 3.14 skip more packages that doesn't support 3.14 now remove pin for pure python analysis-alloy remove comment drop openai pin unblock h5py unpin netcdf4
1 parent a36000f commit 38be5b2

File tree

6 files changed

+42
-39
lines changed

6 files changed

+42
-39
lines changed

.github/workflows/lint.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@v5
17+
1718
- name: Install uv with python version.
1819
uses: astral-sh/setup-uv@v6
1920
with:
20-
python-version: "3.11"
21+
python-version: "3.13"
2122
enable-cache: true
2223
cache-dependency-glob: "uv.lock"
24+
2325
- name: Install dependencies
2426
run: |
2527
uv sync

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Install Python
3131
uses: actions/setup-python@v6
3232
with:
33-
python-version: "3.13"
33+
python-version: "3.14"
3434

3535
- name: Build source distribution
3636
run: |
@@ -47,7 +47,7 @@ jobs:
4747
strategy:
4848
matrix:
4949
os: [ubuntu-latest, macos-latest, macos-13, windows-latest, ubuntu-24.04-arm]
50-
python-version: ["310", "311", "312", "313"]
50+
python-version: ["310", "311", "312", "313", "314"]
5151
runs-on: ${{ matrix.os }}
5252
steps:
5353
- name: Check out repo
@@ -77,7 +77,7 @@ jobs:
7777
- name: Set up Python
7878
uses: actions/setup-python@v6
7979
with:
80-
python-version: "3.13"
80+
python-version: "3.14"
8181

8282
- name: Get build artifacts
8383
uses: actions/download-artifact@v5

.github/workflows/test.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,26 +39,26 @@ jobs:
3939
strategy:
4040
fail-fast: false
4141
matrix:
42-
# Maximize CI coverage of different platforms and python versions while minimizing the
43-
# total number of jobs. We run all pytest splits with the oldest supported python
44-
# version (currently 3.10) on windows (seems most likely to surface errors) and with
45-
# newest version (currently 3.13) on ubuntu (to get complete coverage on unix).
42+
# Maximize CI coverage of different platforms and Python versions while minimizing the
43+
# total number of jobs. We run all pytest splits with the oldest supported Python
44+
# version on windows (most likely to surface errors) and with
45+
# newest version on Ubuntu (to get complete coverage).
4646
config:
4747
- os: windows-latest
48-
python: "3.10"
49-
resolution: highest
48+
python: "3.10" # Test lowest supported Python version
49+
resolution: lowest-direct
5050
extras: optional,prototypes
5151
- os: windows-latest
5252
python: "3.11"
5353
resolution: highest
5454
extras: prototypes,optional,numpy-v1 # Test NP1 on Windows (quite buggy ATM)
5555
- os: macos-latest
56-
python: "3.12"
56+
python: "3.13"
5757
resolution: lowest-direct
5858
extras: prototypes # test with only required dependencies installed
5959
- os: ubuntu-latest
60-
python: "3.13"
61-
resolution: lowest-direct
60+
python: "3.14" # Test highest supported Python version
61+
resolution: highest
6262
extras: prototypes,optional
6363

6464
# pytest-split automatically distributes work load so parallel jobs finish in similar time
@@ -67,7 +67,7 @@ jobs:
6767

6868
runs-on: ${{ matrix.config.os }}
6969
env:
70-
OPT_BIN_DIR: ${{ github.workspace }}/opt/bin # for optional Unix dependencies
70+
OPT_BIN_DIR: ${{ github.workspace }}/opt/bin # for optional Ubuntu dependencies
7171
steps:
7272
- name: Check out repo
7373
uses: actions/checkout@v5

pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ classifiers = [
4949
"Programming Language :: Python :: 3.11",
5050
"Programming Language :: Python :: 3.12",
5151
"Programming Language :: Python :: 3.13",
52+
"Programming Language :: Python :: 3.14",
5253
"Topic :: Scientific/Engineering :: Chemistry",
5354
"Topic :: Scientific/Engineering :: Information Analysis",
5455
"Topic :: Scientific/Engineering :: Physics",
@@ -100,7 +101,7 @@ matcalc = [
100101
"matgl>=1.2.7; python_version<'3.13'",
101102
]
102103
mlp = ["matgl>=1.2.7 ; python_version<'3.13'"]
103-
numba = ["numba>=0.55"]
104+
numba = ["numba>=0.55; python_version<'3.14'"]
104105
numpy-v1 = ["numpy>=1.25.0,<2"] # Test NP1 on Windows (quite buggy ATM)
105106
optional = [
106107
"pymatgen[abinit,ase,matcalc,mlp,tblite,zeopp]",
@@ -112,7 +113,7 @@ optional = [
112113
"f90nml>=1.1.2",
113114
"galore>=0.6.1",
114115
"h5py>=3.11.0",
115-
"hiphive>=1.3.1",
116+
"hiphive>=1.3.1; python_version<'3.14'",
116117
"jarvis-tools>=2020.7.14",
117118
"phonopy>=2.33.3",
118119
"seekpath>=2.0.1",
@@ -123,7 +124,7 @@ symmetry = ["moyopy[interface]>=0.3", "spglib>=2.5"]
123124
# tblite only support Python 3.12+ through conda-forge
124125
# https://github.com/tblite/tblite/issues/175
125126
tblite = ["tblite[ase]>=0.3.0; platform_system=='Linux' and python_version<'3.12'"]
126-
vis = ["vtk>=6.0.0"]
127+
vis = ["vtk>=6.0.0; python_version<'3.14'"]
127128
zeopp = ["pyzeo; platform_system != 'Windows'"] # Note: requires Voro++ and Zeo++ to be installed
128129

129130
[project.scripts]

tests/io/vasp/test_outputs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1764,7 +1764,7 @@ def test_init(self):
17641764
assert procar.get_occupation(0, "d")[Spin.up] == approx(0)
17651765
assert procar.get_occupation(0, "s")[Spin.up] == approx(0.35381249999999997)
17661766
assert procar.get_occupation(0, "p")[Spin.up] == approx(1.19540625)
1767-
with pytest.raises(ValueError, match="'m' is not in list"):
1767+
with pytest.raises(ValueError, match="not in list"):
17681768
procar.get_occupation(1, "m")
17691769
assert procar.nbands == 10
17701770
assert procar.nkpoints == 10

uv.lock

Lines changed: 21 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)