Skip to content

Commit 1be3dc8

Browse files
authored
Caleb/517 (#82)
* Update documentation * reduce size of multiarch matrix for pytest compatibility * . * Update notebooks * 1.2.0 * First pass conversion to PEP 517 * some files * groups * . * 517 * . * . * Drop 3.8 since pyproject.toml change means can't support both * for coverage library reasons, don't test numba on 3.13 * . * . * See about build check * See about build check * build * another * . * . * . * Again * 1.2.5 * Explore job consolidation * . * quality * More uv * Again * More uv and bump pypy * uv limitation * Asserts * Explore new theme * latest failures * mess around with local * One option * It's possible to run multi arch tests locally * UV makes some things possible * multiarch simplification * Work on multiarch * m * multi scipy * Multi numpy scipy job use uv and just * . * . * . * Progess * . * Simplify packager test script * fix * . * . * Another try * Another * . * . * Segmentation faults * . * . * Drop risc ubuntu devel and force use of localhost docker image * Do not change theme at this point, too many changes in one PR * Undo some updates - can redo later * . * . * v1.2.6 testpypi test tag protection
1 parent b6b0a04 commit 1be3dc8

Some content is hidden

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

56 files changed

+1591
-1130
lines changed

.coveragerc

Lines changed: 0 additions & 15 deletions
This file was deleted.

.github/workflows/build-multiarch.yml

Lines changed: 15 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -17,41 +17,29 @@ jobs:
1717
fail-fast: false
1818
matrix:
1919
include:
20-
- arch: armv6
21-
distro: bookworm
20+
# Disabled: Docker localhost registry connection refused error on armv6/trixie
21+
# - arch: armv6
22+
# distro: trixie
2223
- arch: armv7
23-
distro: bookworm
24+
distro: trixie
2425
- arch: aarch64
25-
distro: bookworm
26+
distro: trixie
27+
- arch: riscv64
28+
distro: trixie
2629
- arch: s390x
27-
distro: bookworm
30+
distro: trixie
2831
- arch: ppc64le
29-
distro: bookworm
32+
distro: trixie
3033

3134
- arch: armv7
3235
distro: ubuntu_latest
3336
- arch: aarch64
3437
distro: ubuntu_latest
35-
- arch: riscv64
36-
distro: ubuntu_devel
3738
- arch: s390x
3839
distro: ubuntu_latest
3940
- arch: ppc64le
4041
distro: ubuntu_latest
4142

42-
- arch: armv7
43-
distro: ubuntu22.04
44-
- arch: aarch64
45-
distro: ubuntu22.04
46-
# - arch: riscv64
47-
# distro: ubuntu22.04
48-
- arch: s390x
49-
distro: ubuntu22.04
50-
- arch: ppc64le
51-
distro: ubuntu22.04
52-
# ubuntu with riscv64 has three failures and a crash on test_SolverInterface_basics in scipy's root function; also test_is_poly_positive and test_bend_rounded_Miller_Re_correction
53-
# ubuntu20.04 is too old, fluids dropped support with numpy 2.0 compat
54-
5543
- arch: armv6
5644
distro: alpine_latest
5745
- arch: armv7
@@ -64,38 +52,15 @@ jobs:
6452
distro: alpine_latest
6553
- arch: ppc64le
6654
distro: alpine_latest
67-
# fedora-latest doesn't work not sure why
6855

6956
steps:
7057
- uses: actions/checkout@v4
58+
- name: Install Just
59+
uses: extractions/setup-just@v2
7160
- name: Set up QEMU
7261
uses: docker/setup-qemu-action@v3
7362
with:
74-
platforms: all
75-
- name: Run on ${{ matrix.arch }}
76-
uses: uraimo/run-on-arch-action@v3
77-
with:
78-
arch: ${{ matrix.arch }}
79-
distro: ${{ matrix.distro }}
80-
githubToken: ${{ github.token }}
81-
install: |
82-
if [[ "${{ matrix.distro }}" == "alpine_latest" ]]; then
83-
apk update
84-
apk add python3 py3-pip py3-scipy py3-matplotlib py3-numpy py3-pandas
85-
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
86-
apt-get update
87-
# Install libatlas-base-dev if available (not available on some architectures like riscv64)
88-
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
89-
apt-get install -y libatlas-base-dev || true
90-
fi
91-
run: |
92-
if python3 -c "import subprocess; exit('no such option' not in subprocess.getoutput('pip3 install --break-system-packages'))"; then
93-
# If the exit status is 0 (True), this means the option is not supported
94-
python3 -m pip install wheel
95-
pip3 install -r requirements_test_multiarch.txt
96-
else
97-
# If the exit status is 1 (False), this means the option is supported
98-
python3 -m pip install wheel --break-system-packages
99-
pip3 install -r requirements_test_multiarch.txt --break-system-packages
100-
fi
101-
python3 -m pytest . -v -m "not online and not thermo and not numba"
63+
image: tonistiigi/binfmt:qemu-v8.1.5
64+
- name: Run tests on ${{ matrix.arch }}/${{ matrix.distro }}
65+
run: just test-arch ${{ matrix.arch }} ${{ matrix.distro }}
66+

.github/workflows/build.yml

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.13t', 'pypy3.9']
20+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.13t', 'pypy3.11']
2121
os: [windows-latest, ubuntu-latest, macos-15-intel, macos-latest]
2222
architecture: ['x86', 'x64']
2323
exclude:
2424
# Only test pypy on Linux
2525
- os: windows-latest
26-
python-version: pypy3.9
26+
python-version: pypy3.11
2727
- os: macos-latest
28-
python-version: pypy3.9
28+
python-version: pypy3.11
2929
- os: macos-15-intel
30-
python-version: pypy3.9
30+
python-version: pypy3.11
3131
# no python builds available on macos 32 bit, arm or x64
3232
- os: macos-latest
3333
architecture: x86
@@ -36,10 +36,7 @@ jobs:
3636
# no python builds available on linux 32 bit
3737
- os: ubuntu-latest
3838
architecture: x86
39-
# scipy dropped 32 bit windows builds
40-
- os: windows-latest
41-
architecture: x86
42-
python-version: 3.8
39+
# scipy dropped 32 bit windows builds
4340
- os: windows-latest
4441
architecture: x86
4542
python-version: 3.9
@@ -67,44 +64,24 @@ jobs:
6764
python-version: 3.13t
6865

6966
# These are arm - old versions of Python are not supported
70-
- os: macos-latest
71-
python-version: 3.8
7267
- os: macos-latest
7368
python-version: 3.9
7469
- os: macos-latest
7570
python-version: 3.10
7671
steps:
7772
- uses: actions/checkout@v4
7873
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }}
79-
uses: actions/setup-python@v5
74+
uses: actions/setup-python@v5
8075
with:
8176
python-version: ${{ matrix.python-version }}
8277
architecture: ${{ matrix.architecture }}
8378

84-
- name: cache Linux
85-
uses: actions/cache@v4
86-
if: startsWith(runner.os, 'Linux')
87-
with:
88-
path: ~/.cache/pip
89-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
90-
restore-keys: |
91-
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
92-
- name: cache MacOS
93-
uses: actions/cache@v4
94-
if: startsWith(runner.os, 'macOS')
95-
with:
96-
path: ~/Library/Caches/pip
97-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
98-
restore-keys: |
99-
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
100-
- name: cache Windows
101-
uses: actions/cache@v4
102-
if: startsWith(runner.os, 'Windows')
79+
- name: Install uv
80+
if: matrix.python-version != '3.13t'
81+
uses: astral-sh/setup-uv@v4
10382
with:
104-
path: ~\AppData\Local\pip\Cache
105-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
106-
restore-keys: |
107-
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
83+
enable-cache: true
84+
cache-dependency-glob: "pyproject.toml"
10885

10986
- name: Install Ubuntu dependencies
11087
if: startsWith(runner.os, 'Linux')
@@ -116,13 +93,18 @@ jobs:
11693
- name: Install dependencies
11794
run: |
11895
python -c "import platform; print(platform.platform()); print(platform.architecture())"
119-
python -m pip install --upgrade pip
120-
python -m pip install wheel
121-
pip install -r requirements_test.txt
96+
if [[ "${{ matrix.python-version }}" == "3.13t" ]]; then
97+
# Use pip for 3.13t (free-threading) as uv may not fully support it yet
98+
python -m pip install --upgrade pip
99+
pip install -e .[test]
100+
else
101+
uv pip install --system -e .[test]
102+
fi
103+
shell: bash
122104
- name: Add numba
123-
if: ${{ !contains(fromJSON('["pypy3.9", "3.13t"]'), matrix.python-version) }}
105+
if: ${{ !contains(fromJSON('["pypy3.11", "3.13t"]'), matrix.python-version) }}
124106
run: |
125-
pip install numba
107+
uv pip install --system -e .[numba]
126108
- name: Test with pytest
127109
run: |
128110
pytest . -v --cov-report html --cov=fluids --cov-report term-missing -m "not online and not thermo"

.github/workflows/build_cxfreeze_library.yml

Lines changed: 0 additions & 91 deletions
This file was deleted.

0 commit comments

Comments
 (0)