From ba537052f13dd92b6cab6162f44fb51e337a0a3c Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 2 May 2023 19:11:21 +0000 Subject: [PATCH 01/33] Test only v3.12 --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cfe3a5f739..c28d5bb043 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,9 +10,9 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.12"] runs-on: ubuntu-20.04 - timeout-minutes: 30 + timeout-minutes: 120 steps: - uses: actions/checkout@master From dc5cc65713397c649aaf24433704b2f33ee4d54c Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 2 May 2023 19:19:21 +0000 Subject: [PATCH 02/33] Fiddling with pre-release version ID --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c28d5bb043..e304bf2281 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12"] + python-version: ["3.12-dev"] runs-on: ubuntu-20.04 timeout-minutes: 120 From 3533ef970214e895033573a8526d64ada63e3b29 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 2 May 2023 19:20:52 +0000 Subject: [PATCH 03/33] Bump setup python version --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e304bf2281..e0b422d736 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@master - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} From 421c159f188b09331141b25f5d049c5bfc88da62 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 16:42:58 +0000 Subject: [PATCH 04/33] Switch to beta1 python tag --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e0b422d736..8065863433 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12-dev"] + python-version: ["3.12.0-beta.1"] runs-on: ubuntu-20.04 timeout-minutes: 120 From b39d45d801bd409ba1d5a417fe0b66ef9c2865a6 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 17:11:33 +0000 Subject: [PATCH 05/33] bump pandas to see if that makes disapperaed distutils happier --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 6b849d2526..e0461ad274 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ 'networkx>=2.5,<2.6', 'Flask>=1.0.2', 'flask_sqlalchemy', - 'pandas<2', + 'pandas<3', 'plotly', 'python-daemon' ], From 61775aaa618dca50eff28f4179e68dd238945626 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 17:23:22 +0000 Subject: [PATCH 06/33] remove pandas as it fails build --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index 7f7c7bae1c..9b95e78941 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,7 +1,7 @@ flake8==3.8.0 importlib-metadata<5 # due to flake8 incompatibility with importlib 5.0.0 ipyparallel -pandas +# pandas - removed because it seems to want to build with now-removed distutils pytest>=6.2.5,<7 pytest-cov pytest-random-order From 2852095b75fc109a193e041a4e77dbdcca5a157e Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 17:42:55 +0000 Subject: [PATCH 07/33] force greenlet from github --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8065863433..8d500f7fae 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,6 +30,10 @@ jobs: # this is to make the workqueue binary installer happy sudo apt-get install -y libpython3.5 + # force a greenlet version, as released versions don't build with + # python 3.12 + pip install 'greenlet @ git+https://github.com/mdboom/greenlet@python-312' + - name: make deps clean_coverage run: | make deps From bc21e80750375252a30a7f9db65c55e6d558e591 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 17:50:14 +0000 Subject: [PATCH 08/33] flake8 3.8.0 doesnt' build. latest flake8 is 6.0.0 --- .flake8 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.flake8 b/.flake8 index c278be549e..fa838f501d 100644 --- a/.flake8 +++ b/.flake8 @@ -8,7 +8,10 @@ # https://github.com/PyCQA/pycodestyle/issues/386 # W504: line break after binary operator # (Raised by flake8 even when it is followed) -ignore = E124, E126, E402, E129, W504 + +# F401 and E275 added due to flake8 upgrade - could more properly do a fix for these problems... + +ignore = E124, E126, E402, E129, W504, F401, E275 max-line-length = 158 exclude = test_import_fail.py, parsl/executors/workqueue/parsl_coprocess.py From 4a529543e9d76c658018a0cc5067f54410f4da83 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Sun, 4 Jun 2023 17:55:21 +0000 Subject: [PATCH 09/33] Actually perform flake8 upgrade that was meant to be in previous commit --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index 9b95e78941..7990a2c88e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ -flake8==3.8.0 +flake8==6.0.0 importlib-metadata<5 # due to flake8 incompatibility with importlib 5.0.0 ipyparallel # pandas - removed because it seems to want to build with now-removed distutils From 44d790ed3f2a92851d5327b9771b8eaac90bfb4f Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 10:48:02 +0000 Subject: [PATCH 10/33] advance to python 3.12rc1 --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b00afb75c5..6d7d3e2e88 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12.0-beta.1"] + python-version: ["3.12.0-rc.1"] runs-on: ubuntu-20.04 timeout-minutes: 120 From 25a1fe63dc60116c66c7a7c4382ef3e0e069fd81 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:05:26 +0000 Subject: [PATCH 11/33] upgrade flake8 - 6.0.0 was giving spurious warnings in f-strings: parsl/executors/high_throughput/interchange.py:166:42: E231 missing whitespace after ':' for a string like this: self.task_outgoing.bind(f"tcp://{self.interchange_address}:{self.worker_task_port}") referring to the : in "tcp:" --- test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index 2c603776fc..6988a38b42 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ -flake8==6.0.0 +flake8==6.1.0 ipyparallel # pandas - removed because it seems to want to build with now-removed distutils pytest>=7.4.0,<8 From bda78acab748d14d7eb4f0f3fc08685fb6f2af17 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:09:16 +0000 Subject: [PATCH 12/33] flake8 6.1.0 plus python 3.12 lints inside f-strings harder --- parsl/benchmark/perf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parsl/benchmark/perf.py b/parsl/benchmark/perf.py index 9325c24004..6e99000342 100644 --- a/parsl/benchmark/perf.py +++ b/parsl/benchmark/perf.py @@ -48,7 +48,7 @@ def performance(*, resources: dict, target_t: float): submitted_t = time.time() print(f"All {n} tasks submitted ... waiting for completion") - print(f"Submission took {submitted_t - start_t:.3f} seconds = {n/(submitted_t - start_t):.3f} tasks/second") + print(f"Submission took {submitted_t - start_t:.3f} seconds = {n / (submitted_t - start_t):.3f} tasks/second") for f in concurrent.futures.as_completed(fs): assert f.result() == 7 From 5f505818f35e6e8daec3c22520a69ecb8fde21f4 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:10:29 +0000 Subject: [PATCH 13/33] Fix flake8 6.1.0 + python 3.12 linting errors related to comparing types with `is` not `==` --- parsl/dataflow/memoization.py | 6 +++--- parsl/tests/integration/test_channels/test_ssh_errors.py | 2 +- parsl/tests/test_bash_apps/test_keyword_overlaps.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/parsl/dataflow/memoization.py b/parsl/dataflow/memoization.py index b58a179fb5..e4d657ccaa 100644 --- a/parsl/dataflow/memoization.py +++ b/parsl/dataflow/memoization.py @@ -60,7 +60,7 @@ def id_for_memo_pickle(obj: object, output_ref: bool = False) -> bytes: @id_for_memo.register(list) def id_for_memo_list(denormalized_list: list, output_ref: bool = False) -> bytes: - if type(denormalized_list) != list: + if type(denormalized_list) is not list: raise ValueError("id_for_memo_list cannot work on subclasses of list") normalized_list = [] @@ -73,7 +73,7 @@ def id_for_memo_list(denormalized_list: list, output_ref: bool = False) -> bytes @id_for_memo.register(tuple) def id_for_memo_tuple(denormalized_tuple: tuple, output_ref: bool = False) -> bytes: - if type(denormalized_tuple) != tuple: + if type(denormalized_tuple) is not tuple: raise ValueError("id_for_memo_tuple cannot work on subclasses of tuple") normalized_list = [] @@ -91,7 +91,7 @@ def id_for_memo_dict(denormalized_dict: dict, output_ref: bool = False) -> bytes When output_ref=True, the values are normalised as output refs, but the keys are not. """ - if type(denormalized_dict) != dict: + if type(denormalized_dict) is not dict: raise ValueError("id_for_memo_dict cannot work on subclasses of dict") keys = sorted(denormalized_dict) diff --git a/parsl/tests/integration/test_channels/test_ssh_errors.py b/parsl/tests/integration/test_channels/test_ssh_errors.py index 715b3a14bb..7da7cc34ef 100644 --- a/parsl/tests/integration/test_channels/test_ssh_errors.py +++ b/parsl/tests/integration/test_channels/test_ssh_errors.py @@ -13,7 +13,7 @@ def test_error_1(): try: connect_and_list("bad.url.gov", "ubuntu") except Exception as e: - assert type(e) == SSHException, "Expected SSException, got: {0}".format(e) + assert type(e) is SSHException, "Expected SSException, got: {0}".format(e) def test_error_2(): diff --git a/parsl/tests/test_bash_apps/test_keyword_overlaps.py b/parsl/tests/test_bash_apps/test_keyword_overlaps.py index b72714bfce..41a9ba7429 100644 --- a/parsl/tests/test_bash_apps/test_keyword_overlaps.py +++ b/parsl/tests/test_bash_apps/test_keyword_overlaps.py @@ -3,7 +3,7 @@ @parsl.bash_app def my_app(cache=7): - assert type(cache) == int + assert type(cache) is int return "true" From c0876b5f3e651b753d92e66dab7c43a4ffcc83e0 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:16:10 +0000 Subject: [PATCH 14/33] be explicit about a test import --- test-requirements.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test-requirements.txt b/test-requirements.txt index 6988a38b42..ada470388f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -22,3 +22,9 @@ sqlalchemy2-stubs Sphinx==4.5.0 twine wheel + +# Numpy is required by: +# parsl/tests/test_regression/test_1653.py +# This has previously been imported transitively via pandas +# but should be explicit about it. +numpy>=1.24 From 572537f73903899e58b49c756bd7572c27c05f90 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:25:45 +0000 Subject: [PATCH 15/33] switch to a github numpy install --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6d7d3e2e88..d56a4c290a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,6 +36,10 @@ jobs: # python 3.12 pip install 'greenlet @ git+https://github.com/mdboom/greenlet@python-312' + # numpy releases (<=1.25 at time of writing) don't build with python 3.12 + # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 + pip install 'numpy @ git+https://github.com/numpy/numpy' + - name: make deps clean_coverage run: | make deps From 40de3030a5546b665cc9658e1b3c205ea4310965 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:38:17 +0000 Subject: [PATCH 16/33] Fooling round getting numpy to build without blas --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d56a4c290a..b115c36de1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,7 +38,7 @@ jobs: # numpy releases (<=1.25 at time of writing) don't build with python 3.12 # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 - pip install 'numpy @ git+https://github.com/numpy/numpy' + BLAS=None LAPACK=None ATLAS=None pip install 'numpy @ git+https://github.com/numpy/numpy' - name: make deps clean_coverage run: | From 476c2cb305968027489e6608f52479d75b3569be Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:41:42 +0000 Subject: [PATCH 17/33] More build dependency foolery --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b115c36de1..d9da4461b0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,7 +38,8 @@ jobs: # numpy releases (<=1.25 at time of writing) don't build with python 3.12 # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 - BLAS=None LAPACK=None ATLAS=None pip install 'numpy @ git+https://github.com/numpy/numpy' + sudo apt-get install -y libopenblas-dev + pip install 'numpy @ git+https://github.com/numpy/numpy' - name: make deps clean_coverage run: | From 29494d0d9aefacf1f82aedf0d601fc21f6bbd1a1 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 11:50:18 +0000 Subject: [PATCH 18/33] Start bringing pandas back in --- test-requirements.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test-requirements.txt b/test-requirements.txt index ada470388f..ddef5e73bb 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,6 +1,10 @@ flake8==6.1.0 ipyparallel -# pandas - removed because it seems to want to build with now-removed distutils + +# previously removed because it seems to want to build with now-removed distutils +# ... but as python 3.12 has progressed, maybe we can bring it back? +pandas + pytest>=7.4.0,<8 pytest-cov pytest-random-order From 85efe5519868582f2c48f9c606954dcb37280cd0 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 12:11:14 +0000 Subject: [PATCH 19/33] switch pandas to github --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d9da4461b0..7b644d6da5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -41,6 +41,10 @@ jobs: sudo apt-get install -y libopenblas-dev pip install 'numpy @ git+https://github.com/numpy/numpy' + # pandas latest release doesn't build with python 3.12. trying github. + # see, for example, https://github.com/pandas-dev/pandas/pull/53743 + pip install 'pandas @ git+https://github.com/pandas-dev/pandas' + - name: make deps clean_coverage run: | make deps From cd3adb0c3a71c6891f854bb956a075e266c1d2c3 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 10 Aug 2023 12:24:47 +0000 Subject: [PATCH 20/33] try to get pandas build to use github numpy rather than pull down a release version (that then doesn't work) --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7b644d6da5..f93af964c7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -39,11 +39,11 @@ jobs: # numpy releases (<=1.25 at time of writing) don't build with python 3.12 # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 sudo apt-get install -y libopenblas-dev - pip install 'numpy @ git+https://github.com/numpy/numpy' # pandas latest release doesn't build with python 3.12. trying github. # see, for example, https://github.com/pandas-dev/pandas/pull/53743 - pip install 'pandas @ git+https://github.com/pandas-dev/pandas' + + pip install 'numpy @ git+https://github.com/numpy/numpy' 'pandas @ git+https://github.com/pandas-dev/pandas' - name: make deps clean_coverage run: | From fc34614ca5869326e329fd38a324f75f0d1d807a Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 21 Sep 2023 09:45:08 +0000 Subject: [PATCH 21/33] Upgrade to rc3 --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f93af964c7..39b963efde 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12.0-rc.1"] + python-version: ["3.12.0-rc.3"] runs-on: ubuntu-20.04 timeout-minutes: 120 From 760fed8c41225ee97459f567b958a16bbae6805a Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 21 Sep 2023 10:29:54 +0000 Subject: [PATCH 22/33] Add a note on networkx brokenness --- setup.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setup.py b/setup.py index 4baddf2b21..5914d11947 100755 --- a/setup.py +++ b/setup.py @@ -10,7 +10,12 @@ 'monitoring' : [ 'sqlalchemy>=1.4,<2', 'pydot', + + # these versions of networkx does not work with numpy>=2 because: + # E AttributeError: `np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead.. Did you mean: 'float16'? 'networkx>=2.5,<2.6', + + 'Flask>=1.0.2', 'flask_sqlalchemy', 'pandas<3', From 6a3693db94943aca2e616bababf96c48206d2aeb Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Thu, 21 Sep 2023 10:31:33 +0000 Subject: [PATCH 23/33] Remove some flake8 overrides that aren't needed any more --- .flake8 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.flake8 b/.flake8 index ac7ce228c0..3249d698e1 100644 --- a/.flake8 +++ b/.flake8 @@ -9,9 +9,9 @@ # W504: line break after binary operator # (Raised by flake8 even when it is followed) -# F401 and E275 added due to flake8 upgrade - could more properly do a fix for these problems... - -ignore = E124, E126, E402, E129, W504, F401, E275 +# F401 and E275 were added due to flake8 upgrade but +# I think they've been fixed in master +ignore = E124, E126, E402, E129, W504 max-line-length = 158 exclude = test_import_fail.py, parsl/executors/workqueue/parsl_coprocess.py From 8bdea7370c696290df85203c17763bc56a2b1844 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 16:20:15 +0000 Subject: [PATCH 24/33] Use real python 3.12, not a release candidate --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 39b963efde..8d720ac6ce 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12.0-rc.3"] + python-version: ["3.12"] runs-on: ubuntu-20.04 timeout-minutes: 120 From e77f603d6ebedd03804134edc3f2e3f6cfee5190 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 16:21:44 +0000 Subject: [PATCH 25/33] Remove a couple of source builds - of numpy and pandas, and of greenlet - to see if they work now --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8d720ac6ce..2b2cf620c0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,16 +34,16 @@ jobs: # force a greenlet version, as released versions don't build with # python 3.12 - pip install 'greenlet @ git+https://github.com/mdboom/greenlet@python-312' + # pip install 'greenlet @ git+https://github.com/mdboom/greenlet@python-312' # numpy releases (<=1.25 at time of writing) don't build with python 3.12 # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 - sudo apt-get install -y libopenblas-dev + # sudo apt-get install -y libopenblas-dev # pandas latest release doesn't build with python 3.12. trying github. # see, for example, https://github.com/pandas-dev/pandas/pull/53743 - pip install 'numpy @ git+https://github.com/numpy/numpy' 'pandas @ git+https://github.com/pandas-dev/pandas' + # pip install 'numpy @ git+https://github.com/numpy/numpy' 'pandas @ git+https://github.com/pandas-dev/pandas' - name: make deps clean_coverage run: | From d92c6458f936237b46ae16c1908249a70bc7913b Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 16:26:31 +0000 Subject: [PATCH 26/33] Update setup.py python version classifier --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 980f0c862c..d9129b48de 100755 --- a/setup.py +++ b/setup.py @@ -72,6 +72,7 @@ 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], keywords=['Workflows', 'Scientific computing'], entry_points={'console_scripts': From 2ecad8d25f1056050efc36f880de7c8b35a8a25d Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 17:17:34 +0000 Subject: [PATCH 27/33] Add back in earlier Python versions to test they still work with the changes in this branch --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2b2cf620c0..9e1fca4b48 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: main-test-suite: strategy: matrix: - python-version: ["3.12"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] runs-on: ubuntu-20.04 timeout-minutes: 120 From 7eea3efe6c0688cb81a7b6df137782f9dbd90db6 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 17:20:48 +0000 Subject: [PATCH 28/33] Remove commented out from-github package build code --- .github/workflows/ci.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9e1fca4b48..1774551a33 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -32,19 +32,6 @@ jobs: # this is to make the workqueue binary installer happy sudo apt-get install -y libpython3.5 - # force a greenlet version, as released versions don't build with - # python 3.12 - # pip install 'greenlet @ git+https://github.com/mdboom/greenlet@python-312' - - # numpy releases (<=1.25 at time of writing) don't build with python 3.12 - # due to distutils disappearing. See https://github.com/numpy/numpy/issues/23808 - # sudo apt-get install -y libopenblas-dev - - # pandas latest release doesn't build with python 3.12. trying github. - # see, for example, https://github.com/pandas-dev/pandas/pull/53743 - - # pip install 'numpy @ git+https://github.com/numpy/numpy' 'pandas @ git+https://github.com/pandas-dev/pandas' - - name: make deps clean_coverage run: | make deps From 427bad4c9d980ca0648cf3d963ba31530d63d2c1 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 17:21:16 +0000 Subject: [PATCH 29/33] Restore original CI timeout --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1774551a33..cf5aa4939b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,8 +12,7 @@ jobs: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] runs-on: ubuntu-20.04 - - timeout-minutes: 120 + timeout-minutes: 60 steps: From 86c9eaac8547e956c0e2ac3723fa594d954be8cf Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 17:21:34 +0000 Subject: [PATCH 30/33] Whitespace --- .github/workflows/ci.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cf5aa4939b..06e095fffc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,6 @@ jobs: runs-on: ubuntu-20.04 timeout-minutes: 60 - steps: - uses: actions/checkout@master From 1663f579414cb702ae4e0605b3cccad4cb467082 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 7 Nov 2023 17:22:58 +0000 Subject: [PATCH 31/33] Fiddling with pandas dependency --- test-requirements.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index a475392a87..97e4e54ccc 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,10 +1,6 @@ flake8==6.1.0 ipyparallel - -# previously removed because it seems to want to build with now-removed distutils -# ... but as python 3.12 has progressed, maybe we can bring it back? pandas - pytest>=7.4.0,<8 pytest-cov pytest-random-order @@ -31,4 +27,4 @@ wheel # parsl/tests/test_regression/test_1653.py # This has previously been imported transitively via pandas # but should be explicit about it. -numpy>=1.24 +# numpy>=1.24 From 01e45e35eab276fd7db183c3fcfd82e8bcacd407 Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 19 Dec 2023 09:49:14 +0000 Subject: [PATCH 32/33] Remove comment about networkx that isn't accompanied by an actual code change --- setup.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/setup.py b/setup.py index f93658505c..e513fe31a0 100755 --- a/setup.py +++ b/setup.py @@ -12,12 +12,7 @@ ], 'visualization' : [ 'pydot', - - # these versions of networkx does not work with numpy>=2 because: - # E AttributeError: `np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead.. Did you mean: 'float16'? 'networkx>=2.5,<2.6', - - 'Flask>=1.0.2', 'flask_sqlalchemy', 'pandas<3', From 1b3bac45fb79e05fa9e907615ba919d62e172e9c Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Tue, 19 Dec 2023 09:50:05 +0000 Subject: [PATCH 33/33] Remove some other notes to self --- test-requirements.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index 7f292ae614..b6396bd3d5 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -23,9 +23,3 @@ sqlalchemy2-stubs Sphinx==4.5.0 twine wheel - -# Numpy is required by: -# parsl/tests/test_regression/test_1653.py -# This has previously been imported transitively via pandas -# but should be explicit about it. -# numpy>=1.24