Skip to content

Commit 2e0d35c

Browse files
authored
Merge pull request #171 from CalebBell/caleb/miscupdates
Caleb/miscupdates
2 parents d07fa84 + 52b9f43 commit 2e0d35c

File tree

186 files changed

+17243
-385335
lines changed

Some content is hidden

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

186 files changed

+17243
-385335
lines changed

.flake8

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ on:
66
pull_request:
77
branches: [master, release]
88

9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/release' }}
12+
913
jobs:
1014
multi-arch-test:
1115
runs-on: ubuntu-latest
@@ -29,24 +33,12 @@ jobs:
2933
- arch: aarch64
3034
distro: ubuntu_latest
3135
- arch: riscv64
32-
distro: ubuntu_latest
36+
distro: ubuntu_devel
3337
- arch: s390x
3438
distro: ubuntu_latest
3539
- arch: ppc64le
3640
distro: ubuntu_latest
3741

38-
- arch: armv7
39-
distro: ubuntu22.04
40-
- arch: aarch64
41-
distro: ubuntu22.04
42-
- arch: riscv64
43-
distro: ubuntu22.04
44-
- arch: s390x
45-
distro: ubuntu22.04
46-
- arch: ppc64le
47-
distro: ubuntu22.04
48-
# ubuntu20.04 is too old, fluids dropped support with numpy 2.0 compat
49-
5042
- arch: armv6
5143
distro: alpine_latest
5244
- arch: armv7
@@ -64,22 +56,26 @@ jobs:
6456
steps:
6557
- uses: actions/checkout@v4
6658
- name: Set up QEMU
67-
uses: docker/setup-qemu-action@v2
59+
uses: docker/setup-qemu-action@v3
6860
with:
6961
platforms: all
7062
- name: Run on ${{ matrix.arch }}
71-
uses: uraimo/run-on-arch-action@v2
63+
uses: uraimo/run-on-arch-action@v3
7264
with:
7365
arch: ${{ matrix.arch }}
7466
distro: ${{ matrix.distro }}
7567
githubToken: ${{ github.token }}
7668
install: |
7769
if [[ "${{ matrix.distro }}" == "alpine_latest" ]]; then
7870
apk update
71+
# py3-sqlalchemy is required for dev/dump_UNIFAC_assignments_to_sqlite.py
7972
apk add python3 py3-pip py3-scipy py3-matplotlib py3-numpy py3-pandas py3-sqlalchemy
80-
elif [[ "${{ matrix.distro }}" == "ubuntu_latest" || "${{ matrix.distro }}" == "ubuntu20.04" || "${{ matrix.distro }}" == "ubuntu22.04" || "${{ matrix.distro }}" == "bookworm" ]]; then
73+
elif [[ "${{ matrix.distro }}" == "ubuntu_latest" || "${{ matrix.distro }}" == "ubuntu_rolling" || "${{ matrix.distro }}" == "ubuntu_devel" || "${{ matrix.distro }}" == "ubuntu20.04" || "${{ matrix.distro }}" == "ubuntu22.04" || "${{ matrix.distro }}" == "bookworm" ]]; then
8174
apt-get update
82-
apt-get install -y libatlas-base-dev liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev python3 python3-pip python3-scipy python3-matplotlib python3-numpy python3-pandas python3-sqlalchemy
75+
# Install libatlas-base-dev if available (not available on some architectures like riscv64)
76+
# python3-sqlalchemy is required for dev/dump_UNIFAC_assignments_to_sqlite.py
77+
apt-get install -y liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev python3 python3-pip python3-scipy python3-matplotlib python3-numpy python3-pandas python3-sqlalchemy
78+
apt-get install -y libatlas-base-dev || true
8379
fi
8480
run: |
8581
if python3 -c "import subprocess; exit('no such option' not in subprocess.getoutput('pip3 install --break-system-packages'))"; then
@@ -89,12 +85,14 @@ jobs:
8985
pip3 install .
9086
python3 dev/dump_UNIFAC_assignments_to_sqlite.py
9187
pip3 uninstall -y thermo
88+
rm -rf build/
9289
else
9390
# If the exit status is 1 (False), this means the option is supported
9491
python3 -m pip install wheel --break-system-packages
9592
pip3 install -r requirements_test_multiarch.txt --break-system-packages
9693
pip3 install . --break-system-packages
9794
python3 dev/dump_UNIFAC_assignments_to_sqlite.py
9895
pip3 uninstall -y thermo --break-system-packages
96+
rm -rf build/
9997
fi
100-
python3 -m pytest . -v -m "not online and not sympy and not numba and not CoolProp and not fuzz and not deprecated and not slow"
98+
python3 -m pytest . -v -m "not online and not sympy and not numba and not CoolProp and not fuzz and not deprecated and not slow"

.github/workflows/build.yml

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,33 @@ on:
55
branches: [master, release]
66
pull_request:
77
branches: [master, release]
8-
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/release' }}
12+
913
jobs:
1014
build:
1115

1216
runs-on: ${{ matrix.os }}
1317
strategy:
1418
fail-fast: false
1519
matrix:
16-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.9']
17-
os: [windows-latest, ubuntu-latest, macos-13, macos-latest]
20+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.13t', 'pypy3.9']
21+
os: [windows-latest, ubuntu-latest, macos-15-intel, macos-latest]
1822
architecture: ['x86', 'x64']
1923
exclude:
20-
- os: ubuntu-latest
21-
python-version: 3.7
2224
# Only test pypy on Linux
2325
- os: windows-latest
2426
python-version: pypy3.9
2527
- os: macos-latest
2628
python-version: pypy3.9
27-
- os: macos-13
29+
- os: macos-15-intel
2830
python-version: pypy3.9
2931
# no python builds available on macos 32 bit, arm or x64
3032
- os: macos-latest
3133
architecture: x86
32-
- os: macos-13
34+
- os: macos-15-intel
3335
architecture: x86
3436
# no python builds available on linux 32 bit
3537
- os: ubuntu-latest
@@ -53,6 +55,22 @@ jobs:
5355
- os: windows-latest
5456
architecture: x86
5557
python-version: 3.13
58+
- os: windows-latest
59+
architecture: x86
60+
python-version: 3.13t
61+
62+
# These are arm - old versions of Python are not supported
63+
- os: macos-latest
64+
python-version: 3.8
65+
- os: macos-latest
66+
python-version: 3.9
67+
- os: macos-latest
68+
python-version: 3.10
69+
70+
# pandas doesn't have wheels for 3.13t on Windows x64
71+
- os: windows-latest
72+
architecture: x64
73+
python-version: 3.13t
5674

5775
# These are arm - old versions of Python are not supported
5876
- os: macos-latest
@@ -61,7 +79,6 @@ jobs:
6179
python-version: 3.9
6280
- os: macos-latest
6381
python-version: 3.10
64-
6582
steps:
6683
- uses: actions/checkout@v4
6784
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }}
@@ -109,23 +126,44 @@ jobs:
109126
python -m pip install wheel
110127
pip install -r requirements_test.txt
111128
- name: Add numba
112-
if: ${{ matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12' }}
129+
if: ${{ !contains(fromJSON('["pypy3.9", "3.13t"]'), matrix.python-version) }}
113130
run: |
114131
pip install numba
115132
- name: Install thermo
116133
run: |
117134
pip install .
118135
- name: Generate Files
119-
if: ${{ matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12' || matrix.python-version == 'pypy3.9' }}
136+
if: ${{ matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12' || matrix.python-version == '3.13' || matrix.python-version == '3.13t' || matrix.python-version == 'pypy3.9' }}
120137
run: |
121138
python dev/dump_UNIFAC_assignments_to_sqlite.py
122139
- name: Uninstall thermo
140+
shell: bash
123141
run: |
124142
pip uninstall -y thermo
143+
rm -rf build/
125144
- name: Test with pytest
126145
run: |
127146
pytest . -v --cov-report html --cov=thermo --cov-report term-missing -m "not online and not sympy and not numba and not CoolProp and not fuzz and not deprecated and not slow"
147+
coveralls || true
128148
env:
129149
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
130150
COVERALLS_PARALLEL: true
131151
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
152+
PYTHON_GIL: ${{ matrix.python-version == '3.13t' && '0' || '' }}
153+
154+
- name: Upload coverage HTML report
155+
if: always()
156+
uses: actions/upload-artifact@v4
157+
with:
158+
name: coverage-html-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.architecture }}
159+
path: htmlcov/
160+
finish:
161+
needs: build
162+
runs-on: ubuntu-latest
163+
steps:
164+
- name: Coveralls Finished
165+
env:
166+
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
167+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
168+
run: |
169+
curl https://coveralls.io/webhook?repo_token=${{ secrets.coveralls }} -d "payload[build_num]=${{ github.sha }}&payload[status]=done"
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Check cx_Freeze Compatibility
2+
3+
on:
4+
push:
5+
branches: [release]
6+
pull_request:
7+
branches: [master, release]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/release' }}
12+
13+
jobs:
14+
build:
15+
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
python-version: ['3.13']
21+
os: [windows-latest, ubuntu-latest, macos-15-intel, macos-latest]
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }}
26+
uses: actions/setup-python@v5
27+
with:
28+
python-version: ${{ matrix.python-version }}
29+
architecture: ${{ matrix.architecture }}
30+
31+
- name: cache Linux
32+
uses: actions/cache@v4
33+
if: startsWith(runner.os, 'Linux')
34+
with:
35+
path: ~/.cache/pip
36+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
37+
restore-keys: |
38+
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
39+
- name: cache MacOS
40+
uses: actions/cache@v4
41+
if: startsWith(runner.os, 'macOS')
42+
with:
43+
path: ~/Library/Caches/pip
44+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
45+
restore-keys: |
46+
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
47+
- name: cache Windows
48+
uses: actions/cache@v4
49+
if: startsWith(runner.os, 'Windows')
50+
with:
51+
path: ~\AppData\Local\pip\Cache
52+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
53+
restore-keys: |
54+
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
55+
56+
- name: Install Ubuntu dependencies
57+
if: startsWith(runner.os, 'Linux')
58+
run: |
59+
# Taken from scipy
60+
sudo apt-get update
61+
sudo apt-get install -y libopenblas-dev libatlas-base-dev liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev
62+
63+
- name: Install dependencies
64+
run: |
65+
python -c "import platform; print(platform.platform()); print(platform.architecture())"
66+
python -m pip install --upgrade pip
67+
python -m pip install wheel
68+
pip install -r requirements_test.txt
69+
pip install cx_Freeze
70+
71+
- name: Install thermo
72+
run: |
73+
pip install -e .
74+
75+
- name: Build cx_Freeze executable
76+
shell: bash
77+
run: |
78+
cd dev
79+
python cx_freeze_basic_standalone_check_builder.py build
80+
cd ..
81+
82+
- name: Test build on Linux/macOS
83+
if: runner.os != 'Windows'
84+
run: |
85+
./dev/build/exe.*/basic_standalone_thermo_check
86+
87+
- name: Test build on Windows
88+
if: runner.os == 'Windows'
89+
shell: bash
90+
run: |
91+
./dev/build/exe.*/basic_standalone_thermo_check.exe

.github/workflows/build_multi_numpy_scipy.yml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ on:
44
branches: [release]
55
pull_request:
66
branches: [master, release]
7-
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/release' }}
11+
812
jobs:
913
build:
1014
runs-on: ubuntu-latest
@@ -98,7 +102,7 @@ jobs:
98102
pip install -r requirements_test.txt
99103
pip install numpy==${{ matrix.numpy }} scipy==${{ matrix.scipy }}
100104
- name: Add numba
101-
if: ${{ matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12' }}
105+
if: ${{ !contains(fromJSON('["pypy3.9", "3.13t"]'), matrix.python-version) }}
102106
run: |
103107
pip install numba
104108
- name: Install thermo
@@ -109,12 +113,31 @@ jobs:
109113
run: |
110114
python dev/dump_UNIFAC_assignments_to_sqlite.py
111115
- name: Uninstall thermo
116+
shell: bash
112117
run: |
113118
pip uninstall -y thermo
119+
rm -rf build/
114120
- name: Test with pytest
115121
run: |
116122
pytest . -v --cov-report html --cov=thermo --cov-report term-missing -m "not online and not sympy and not numba and not CoolProp and not fuzz and not deprecated and not slow"
117123
env:
118124
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
119125
COVERALLS_PARALLEL: true
120126
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
127+
128+
- name: Upload coverage HTML report
129+
if: always()
130+
uses: actions/upload-artifact@v4
131+
with:
132+
name: coverage-html-numpy-${{ matrix.numpy }}-scipy-${{ matrix.scipy }}-py${{ matrix.python-version }}
133+
path: htmlcov/
134+
finish:
135+
needs: build
136+
runs-on: ubuntu-latest
137+
steps:
138+
- name: Coveralls Finished
139+
env:
140+
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
141+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
142+
run: |
143+
curl https://coveralls.io/webhook?repo_token=${{ secrets.coveralls }} -d "payload[build_num]=${{ github.sha }}&payload[status]=done"

0 commit comments

Comments
 (0)