From 05bf94d6acf07db4f14f66c5f04dcea566b3f4c4 Mon Sep 17 00:00:00 2001 From: Casey Jao Date: Wed, 11 Sep 2024 14:24:31 -0400 Subject: [PATCH] Update recommended platform to Debian 12 / Python 3.10 (#1968) Update test matrix: - Add Python 3.11 - Add Debian 12 - Remove Python 3.8 - Remove CentOS 7 - Remove Ubuntu --- .github/workflows/test_matrix.json | 288 ++++++------------- .github/workflows/tests.yml | 6 +- CHANGELOG.md | 7 +- doc/source/getting_started/compatibility.rst | 2 +- 4 files changed, 95 insertions(+), 208 deletions(-) diff --git a/.github/workflows/test_matrix.json b/.github/workflows/test_matrix.json index e03a2482b..573a6803f 100644 --- a/.github/workflows/test_matrix.json +++ b/.github/workflows/test_matrix.json @@ -1,312 +1,194 @@ [ { - "name": "Debian 10 / Python 3.8 / Dask", + "name": "Debian 12 / Python 3.9 / Dask", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py38:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py39:latest", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 10 / Python 3.8 / Local", + "name": "Debian 12 / Python 3.9 / Local", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py38:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py39:latest", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 10 / Python 3.9 / Dask", + "name": "Debian 12 / Python 3.10 / Dask", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py39:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py310:latest", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch", "pull_request"] }, { - "name": "Debian 10 / Python 3.9 / Local", + "name": "Debian 12 / Python 3.10 / Local", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py39:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py310:latest", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 10 / Python 3.10 / Dask", + "name": "Debian 12 / Python 3.11 / Dask", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py310:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py311:latest", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["push", "schedule", "workflow_dispatch"] }, { - "name": "Debian 10 / Python 3.10 / Local", + "name": "Debian 12 / Python 3.11 / Local", "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian10-py310:latest", + "container": "ghcr.io/agnostiqhq/covalent-dev/debian12-py311:latest", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.8 / Dask", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py38:latest", + "name": "MacOS 12 / Python 3.9 / Dask", + "os": "macos-12", + "python-version": "3.9", "backend": "dask", "experimental": false, - "trigger": [ - "push", - "schedule", - "workflow_dispatch", - "pull_request" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.8 / Local", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py38:latest", + "name": "MacOS 12 / Python 3.9 / Local", + "os": "macos-12", + "python-version": "3.9", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.9 / Dask", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py39:latest", + "name": "MacOS 12 / Python 3.10 / Dask", + "os": "macos-12", + "python-version": "3.10", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.9 / Local", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py39:latest", + "name": "MacOS 12 / Python 3.10 / Local", + "os": "macos-12", + "python-version": "3.10", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.10 / Dask", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py310:latest", + "name": "MacOS 12 / Python 3.11 / Dask", + "os": "macos-12", + "python-version": "3.11", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Debian 11 / Python 3.10 / Local", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/debian11-py310:latest", + "name": "MacOS 12 / Python 3.11 / Local", + "os": "macos-12", + "python-version": "3.11", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Ubuntu 22.04 / Python 3.8 / Dask", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/ubuntu22-py38:latest", + "name": "MacOS 13 / Python 3.9 / Dask", + "os": "macos-13", + "python-version": "3.9", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Ubuntu 22.04 / Python 3.8 / Local", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/ubuntu22-py38:latest", + "name": "MacOS 13 / Python 3.9 / Local", + "os": "macos-13", + "python-version": "3.9", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Ubuntu 22.04 / Python 3.9 / Dask", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/ubuntu22-py39:latest", + "name": "MacOS 13 / Python 3.10 / Dask", + "os": "macos-13", + "python-version": "3.10", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "Ubuntu 22.04 / Python 3.9 / Local", - "os": "ubuntu-latest", - "container": "ghcr.io/agnostiqhq/covalent-dev/ubuntu22-py39:latest", + "name": "MacOS 13 / Python 3.10 / Local", + "os": "macos-12", + "python-version": "3.10", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.8 / Dask", - "os": "macos-latest", - "python-version": "3.8", + "name": "MacOS 13 / Python 3.11 / Dask", + "os": "macos-12", + "python-version": "3.11", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.8 / Local", - "os": "macos-latest", - "python-version": "3.8", + "name": "MacOS 13 / Python 3.11 / Local", + "os": "macos-13", + "python-version": "3.11", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.9 / Dask", - "os": "macos-latest", + "name": "MacOS 14 / Python 3.9 / Dask", + "os": "macos-14", "python-version": "3.9", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.9 / Local", - "os": "macos-latest", + "name": "MacOS 14 / Python 3.9 / Local", + "os": "macos-14", "python-version": "3.9", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.10 / Dask", - "os": "macos-latest", + "name": "MacOS 14 / Python 3.10 / Dask", + "os": "macos-14", "python-version": "3.10", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 11 / Python 3.10 / Local", - "os": "macos-latest", + "name": "MacOS 14 / Python 3.10 / Local", + "os": "macos-14", "python-version": "3.10", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 12 / Python 3.8 / Dask", + "name": "MacOS 14 / Python 3.11 / Dask", "os": "macos-12", - "python-version": "3.8", + "python-version": "3.11", "backend": "dask", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] }, { - "name": "MacOS 12 / Python 3.8 / Local", - "os": "macos-12", - "python-version": "3.8", - "backend": "local", - "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] - }, - { - "name": "MacOS 12 / Python 3.9 / Dask", - "os": "macos-12", - "python-version": "3.9", - "backend": "dask", - "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] - }, - { - "name": "MacOS 12 / Python 3.9 / Local", - "os": "macos-12", - "python-version": "3.9", - "backend": "local", - "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] - }, - { - "name": "MacOS 12 / Python 3.10 / Dask", - "os": "macos-12", - "python-version": "3.10", - "backend": "dask", - "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] - }, - { - "name": "MacOS 12 / Python 3.10 / Local", - "os": "macos-12", - "python-version": "3.10", + "name": "MacOS 14 / Python 3.11 / Local", + "os": "macos-14", + "python-version": "3.11", "backend": "local", "experimental": false, - "trigger": [ - "schedule", - "workflow_dispatch" - ] + "trigger": ["schedule", "workflow_dispatch"] } ] diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1349a02ca..1b6a4e55a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,7 +30,7 @@ on: commit_sha: description: "Commit SHA used for testing. If left blank, the default branch will be used." type: string - default: '' + default: "" required: false jobs: @@ -118,7 +118,7 @@ jobs: - name: Generate environment variables run: | if ${{ matrix.os == 'ubuntu-latest' - && contains(matrix.container, 'debian11-py38') + && contains(matrix.container, 'debian12-py310') && matrix.backend == 'dask' }} ; then RECOMMENDED_PLATFORM=true fi @@ -172,7 +172,7 @@ jobs: if: env.NEED_FRONTEND || env.BUILD_AND_RUN_ALL uses: actions/setup-node@v3 with: - node-version-file: 'covalent_ui/webapp/.nvmrc' + node-version-file: "covalent_ui/webapp/.nvmrc" - name: Build webapp if: env.NEED_FRONTEND || env.BUILD_AND_RUN_ALL diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f670f14b..381550189 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [UNRELEASED] +### Changed + +- Added support for Python 3.11 +- Removed official support for Python 3.8 + ## [0.235.1-rc.0] - 2024-06-10 ### Authors @@ -39,7 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved handling of Covalent version mismatches between client and executor environments - + ### Removed - Removed obsolete `migrate-pickled-result-object` command diff --git a/doc/source/getting_started/compatibility.rst b/doc/source/getting_started/compatibility.rst index 8b091b2f3..76b8212bb 100644 --- a/doc/source/getting_started/compatibility.rst +++ b/doc/source/getting_started/compatibility.rst @@ -2,7 +2,7 @@ Compatibility ============= -Covalent is primarily developed using Python 3.8 on MacOS and Linux. It has been tested in a variety of environments. The following tables list combinations of Python versions and operating systems that have been tested with release versions of Covalent. +Covalent is primarily developed using Python 3.10 on MacOS and Linux. It has been tested in a variety of environments. The following tables list combinations of Python versions and operating systems that have been tested with release versions of Covalent. v0.202.0 ********