Skip to content

Commit d18f126

Browse files
Drop Python3.7 support (#287)
* bump from 3.7 to 3.8 * remove 3.13 * new timeouts for param server * fix macos14 run --------- Co-authored-by: Ritvik Rao <[email protected]>
1 parent 5b002c2 commit d18f126

File tree

7 files changed

+18
-14
lines changed

7 files changed

+18
-14
lines changed

.github/workflows/charm4py.yml

+6-8
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
runs-on: ${{ matrix.os }}
1414
strategy:
1515
matrix:
16-
python-version: ["3.7", "3.12"]
16+
python-version: ["3.8", "3.12"]
1717
# macos-13 is x86_64, macos-14 is arm64
1818
os: [ubuntu-latest, macos-13, macos-14]
1919
exclude:
20-
- os: macos-14 # Python 3.7 does not exist for macos-14
21-
python-version: "3.7"
20+
- os: ubuntu-latest # Python 3.8 not supported since ubuntu 24.04
21+
python-version: "3.8"
2222
fail-fast: false
2323

2424
steps:
@@ -40,15 +40,13 @@ jobs:
4040
run: |
4141
git clone https://github.com/charmplusplus/charm charm_src/charm
4242
export CHARM_EXTRA_BUILD_OPTS="--enable-error-checking"
43-
export CHARM_BUILD_PROCESSES=2
43+
export CHARM_BUILD_PROCESSES=8
4444
export CHARM4PY_BUILD_CFFI=1
4545
python setup.py build_ext --inplace
4646
- name: Run auto_test.py
4747
run: |
4848
export PYTHONPATH="$PWD"
4949
export CHARM4PY_TEST_NUM_PROCESSES=2
50-
if [ ${{ matrix.os }} == 'macos-13' ]; then
51-
# Crashes in ray test otherwise
52-
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
53-
fi
50+
# needed for param server
51+
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
5452
python auto_test.py

auto_test.py

+4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ def searchForPython(python_implementations):
5959
continue
6060
if test['condition'] == 'not numbaInstalled' and numbaInstalled:
6161
continue
62+
if 'timeout_override' in test:
63+
TIMEOUT = test['timeout_override']
64+
else:
65+
TIMEOUT = 120
6266
num_processes = max(test.get('force_min_processes', default_num_processes), default_num_processes)
6367
for interface in interfaces:
6468
durations[interface][test['path']] = []

charm4py/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sys
2-
if sys.version_info < (3, 7, 0):
3-
raise RuntimeError('Charm4py requires Python 3.7 or higher')
2+
if sys.version_info < (3, 8, 0):
3+
raise RuntimeError('Charm4py requires Python 3.8 or higher')
44
import atexit
55
import os
66
try:

charm4py/charm.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -547,8 +547,8 @@ def registerMainModule(self):
547547
self.lib.name + "' interface to access Charm++")
548548
if py_impl != 'CPython':
549549
raise Charm4PyError('PyPy is no longer supported. Use CPython instead')
550-
if sys.version_info < (3,7,0):
551-
raise Charm4PyError('Python 2 is no longer supported. Use Python 3.7 or above instead')
550+
if sys.version_info < (3,8,0):
551+
raise Charm4PyError('Python 2 is no longer supported. Use Python 3.8 or above instead')
552552
if self.options.profiling:
553553
print('Charm4py> Profiling is ON (this affects performance)')
554554

docs/install.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Install
77
Charm4py runs on Linux, macOS, Windows, Raspberry Pi, and a wide variety of clusters and
88
supercomputer environments (including many supercomputers in the TOP500).
99

10-
Charm4py runs on Python 3.7+. Charm4py supports the CPython Python implementation.
10+
Charm4py runs on Python 3.8+. Charm4py supports the CPython Python implementation.
1111

1212
Installing Charm4Py binaries (via pip)
1313
---------------------------------------

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ keywords = [
2121
"HPC",
2222
"runtime",
2323
]
24-
requires-python = ">=3.7"
24+
requires-python = ">=3.8"
2525
dependencies = ["numpy>=1.10.0", "greenlet>=3.0.0"]
2626
classifiers = [
2727
'Intended Audience :: Developers',

test_config.json

+2
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,12 @@
292292
"path": "examples/ray/simple.py"
293293
},
294294
{
295+
"timeout_override": 480,
295296
"path": "examples/ray/parameter_server.py",
296297
"args": "sync"
297298
},
298299
{
300+
"timeout_override": 480,
299301
"path": "examples/ray/parameter_server.py",
300302
"args": "async"
301303
},

0 commit comments

Comments
 (0)