From 5e8ccf4bd1420ae06ac09896dd05b7031585eef4 Mon Sep 17 00:00:00 2001 From: Doug Latornell Date: Mon, 20 Nov 2023 14:31:21 -0800 Subject: [PATCH] Change dev, rtd & hpc envs to Python 3.12 Drop support for Python 3.10. --- .github/workflows/pytest-with-coverage.yaml | 2 +- .github/workflows/sphinx-linkcheck.yaml | 2 +- README.rst | 4 +- docs/CHANGES.rst | 5 +- docs/development.rst | 16 +-- envs/environment-dev.yaml | 2 +- envs/environment-hpc.yaml | 2 +- envs/environment-rtd.yaml | 2 +- envs/requirements.txt | 152 ++++++++++---------- pyproject.toml | 2 +- 10 files changed, 96 insertions(+), 93 deletions(-) diff --git a/.github/workflows/pytest-with-coverage.yaml b/.github/workflows/pytest-with-coverage.yaml index dfefd1b..0f97d63 100644 --- a/.github/workflows/pytest-with-coverage.yaml +++ b/.github/workflows/pytest-with-coverage.yaml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.10', '3.11', '3.12' ] + python-version: [ '3.11', '3.12' ] uses: UBC-MOAD/gha-workflows/.github/workflows/pytest-with-coverage.yaml@main with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/sphinx-linkcheck.yaml b/.github/workflows/sphinx-linkcheck.yaml index 563af7b..c6e3421 100644 --- a/.github/workflows/sphinx-linkcheck.yaml +++ b/.github/workflows/sphinx-linkcheck.yaml @@ -15,7 +15,7 @@ jobs: matrix: # Need to specify Python version here because we use test env which gets its # Python version via matrix - python-version: ['3.11'] + python-version: ['3.12'] uses: UBC-MOAD/gha-workflows/.github/workflows/sphinx-linkcheck.yaml@main with: python-version: ${{ matrix.python-version }} diff --git a/README.rst b/README.rst index 13900ae..6b06030 100644 --- a/README.rst +++ b/README.rst @@ -5,8 +5,8 @@ NEMO Command Processor .. image:: https://img.shields.io/badge/license-Apache%202-cb2533.svg :target: https://www.apache.org/licenses/LICENSE-2.0 :alt: Licensed under the Apache License, Version 2.0 -.. image:: https://img.shields.io/badge/Python-3.10%20%7C%203.11-blue?logo=python&label=Python&logoColor=gold - :target: https://docs.python.org/3.11/ +.. image:: https://img.shields.io/badge/Python-3.11%20%7C%203.12-blue?logo=python&label=Python&logoColor=gold + :target: https://docs.python.org/3.12/ :alt: Python Version .. image:: https://img.shields.io/badge/version%20control-git-blue.svg?logo=github :target: https://github.com/SalishSeaCast/NEMO-Cmd diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst index f8e26d9..cb7c09b 100644 --- a/docs/CHANGES.rst +++ b/docs/CHANGES.rst @@ -5,7 +5,10 @@ Change Log v23.1.dev0 (unreleased) ======================= -* +* Change to Python 3.12 for package development. + +* Drop support for Python 3.10.. + Minimum supported Python version is now 3.11. v22.2 (2022-12-14) diff --git a/docs/development.rst b/docs/development.rst index 0ca110b..38b7c21 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -25,7 +25,7 @@ .. image:: https://img.shields.io/badge/license-Apache%202-cb2533.svg :target: https://www.apache.org/licenses/LICENSE-2.0 :alt: Licensed under the Apache License, Version 2.0 -.. image:: https://img.shields.io/badge/Python-3.10%20%7C%203.11-blue?logo=python&label=Python&logoColor=gold +.. image:: https://img.shields.io/badge/Python-3.11%20%7C%203.12-blue?logo=python&label=Python&logoColor=gold :target: https://docs.python.org/3.11/ :alt: Python Version .. image:: https://img.shields.io/badge/version%20control-git-blue.svg?logo=github @@ -65,15 +65,15 @@ Python Versions =============== -.. image:: https://img.shields.io/badge/Python-3.10%20%7C%203.11-blue?logo=python&label=Python&logoColor=gold - :target: https://docs.python.org/3.11/ +.. image:: https://img.shields.io/badge/Python-3.11%20%7C%203.12-blue?logo=python&label=Python&logoColor=gold + :target: https://docs.python.org/3.12/ :alt: Python Version -The :kbd:`NEMO-Cmd` package is developed using `Python`_ 3.11. -The minimum supported Python version is 3.10. +The :kbd:`NEMO-Cmd` package is developed using `Python`_ 3.12. +The minimum supported Python version is 3.11. The :ref:`NEMO-CmdContinuousIntegration` workflow on GitHub ensures that the package -is tested for all versions of Python>=3.10. -An old version of the package running under Python 3.5 is depoloyed on the +is tested for all versions of Python>=3.11. +An old version of the package running under Python 3.5 is deployed on the Westgrid :kbd:`orcinus` HPC platform. That version is tagged in the repository as ``orcinus-python-3.5``. @@ -341,7 +341,7 @@ The output looks something like:: (line 96) ok https://docs.python.org/3/library/exceptions.html#KeyError (line 6) ok https://github.com/SalishSeaCast/NEMO-Cmd/issues/18 writing output... [ 33%] development - (line 21) ok https://docs.python.org/3.11/ + (line 21) ok https://docs.python.org/3.12/ (line 21) ok https://nemo-cmd.readthedocs.io/en/latest/ (line 61) ok https://www.python.org/ (line 95) ok https://conda.io/en/latest/ diff --git a/envs/environment-dev.yaml b/envs/environment-dev.yaml index f46a75c..b1d621f 100644 --- a/envs/environment-dev.yaml +++ b/envs/environment-dev.yaml @@ -27,7 +27,7 @@ dependencies: - f90nml - gitpython - pip - - python=3.11 + - python=3.12 - pyyaml # For coding style, repo QA, and pkg management diff --git a/envs/environment-hpc.yaml b/envs/environment-hpc.yaml index 747ee77..3ad8084 100644 --- a/envs/environment-hpc.yaml +++ b/envs/environment-hpc.yaml @@ -19,7 +19,7 @@ dependencies: - f90nml - gitpython - pip - - python=3.11 + - python=3.12 - pyyaml - pip: diff --git a/envs/environment-rtd.yaml b/envs/environment-rtd.yaml index 66682a6..d42e64f 100644 --- a/envs/environment-rtd.yaml +++ b/envs/environment-rtd.yaml @@ -8,7 +8,7 @@ channels: dependencies: - pip - - python=3.11 + - python=3.12 # RTD packages - mock diff --git a/envs/requirements.txt b/envs/requirements.txt index 4706ad7..95f3e95 100644 --- a/envs/requirements.txt +++ b/envs/requirements.txt @@ -5,111 +5,111 @@ # to create an isolated development environment. # # Create/update this file with: -# (nemo-cmd)$ python3 -m pip list --format=freeze >> envs/requirements.txt -alabaster==0.7.12 -anyio==3.6.2 -arrow==1.2.3 -attrs==22.1.0 -autopage==0.5.1 -Babel==2.11.0 -backports.functools-lru-cache==1.6.4 -black==23.3.0 -brotlipy==0.7.0 -certifi==2023.7.22 -cffi==1.15.1 +# (nemo-cmd)$ python -m pip list --format=freeze >> envs/requirements.txt + +alabaster==0.7.13 +anyio==4.0.0 +arrow==1.3.0 +attrs==23.1.0 +autopage==0.5.2 +Babel==2.13.1 +backports.functools-lru-cache==1.6.5 +black==23.10.1 +Brotli==1.1.0 +certifi==2023.11.17 +cffi==1.16.0 cfgv==3.3.1 -charset-normalizer==2.1.1 -click==8.1.3 -cliff==4.1.0 -cmd2==2.4.2 +charset-normalizer==3.3.2 +click==8.1.7 +cliff==4.4.0 +cmd2==2.4.3 colorama==0.4.6 -commonmark==0.9.1 -coverage==6.5.0 -cryptography==41.0.4 -dataclasses==0.8 -distlib==0.3.6 +coverage==7.3.2 +cryptography==41.0.5 +distlib==0.3.7 docutils==0.17.1 editables==0.3 -exceptiongroup==1.0.4 -f90nml==1.4.3 -filelock==3.8.1 -future==0.18.3 -gitdb==4.0.10 -GitPython==3.1.37 +exceptiongroup==1.1.3 +f90nml==1.4.4 +filelock==3.13.1 +gitdb==4.0.11 +GitPython==3.1.40 h11==0.14.0 h2==4.1.0 -hatch==1.6.3 -hatchling==1.11.1 +hatch==1.7.0 +hatchling==1.18.0 hpack==4.0.0 -httpcore==0.16.2 -httpx==0.23.1 +httpcore==1.0.2 +httpx==0.25.1 hyperframe==6.0.1 hyperlink==21.0.0 -identify==2.5.9 +identify==2.5.32 idna==3.4 imagesize==1.4.1 -importlib-metadata==5.1.0 -iniconfig==1.1.1 -jaraco.classes==3.2.3 +importlib-metadata==6.8.0 +iniconfig==2.0.0 +jaraco.classes==3.3.0 jeepney==0.8.0 Jinja2==3.1.2 -keyring==23.11.0 -MarkupSafe==2.1.1 -more-itertools==9.0.0 -mypy-extensions==0.4.3 -nodeenv==1.7.0 -packaging==23.1 -pathspec==0.10.2 -pbr==5.11.0 +keyring==24.3.0 +markdown-it-py==3.0.0 +MarkupSafe==2.1.3 +mdurl==0.1.0 +more-itertools==10.1.0 +mypy-extensions==1.0.0 +nodeenv==1.8.0 +packaging==23.2 +pathspec==0.11.2 +pbr==6.0.0 pexpect==4.8.0 -pip==22.3.1 -platformdirs==2.5.2 -pluggy==1.0.0 -pre-commit==3.3.3 -prettytable==3.5.0 +pip==23.3.1 +platformdirs==3.11.0 +pluggy==1.3.0 +pre-commit==3.5.0 +prettytable==3.9.0 ptyprocess==0.7.0 pycparser==2.21 -Pygments==2.15.0 -pyOpenSSL==22.1.0 -pyparsing==3.0.9 +Pygments==2.17.1 pyperclip==1.8.2 PySocks==1.7.1 -pytest==7.2.0 -pytest-cov==4.0.0 -pytest-randomly==3.12.0 +pytest==7.4.3 +pytest-cov==4.1.0 +pytest-randomly==3.15.0 python-dateutil==2.8.2 python-hglib==2.6.2 -pytz==2022.6 -PyYAML==6.0 +pytz==2023.3.post1 +PyYAML==6.0.1 requests==2.31.0 -rfc3986==1.5.0 -rich==12.6.0 +rich==13.7.0 SecretStorage==3.3.3 -setuptools==65.5.1 -shellingham==1.5.0 +setuptools==68.2.2 +shellingham==1.5.4 six==1.16.0 -smmap==3.0.5 +smmap==5.0.0 sniffio==1.3.0 snowballstemmer==2.2.0 Sphinx==5.3.0 -sphinx-notfound-page==0.8.3 -sphinx-rtd-theme==1.1.1 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 +sphinx-notfound-page==1.0.0 +sphinx-rtd-theme==1.3.0 +sphinxcontrib-applehelp==1.0.7 +sphinxcontrib-devhelp==1.0.5 +sphinxcontrib-htmlhelp==2.0.4 +sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -stevedore==4.1.1 +sphinxcontrib-qthelp==1.0.6 +sphinxcontrib-serializinghtml==1.1.9 +stevedore==5.1.0 toml==0.10.2 tomli==2.0.1 tomli_w==1.0.0 -tomlkit==0.11.6 -typing_extensions==4.4.0 +tomlkit==0.12.3 +trove-classifiers==2023.11.14 +types-python-dateutil==2.8.19.14 +typing_extensions==4.8.0 ukkonen==1.0.1 -urllib3==1.26.18 +urllib3==2.1.0 userpath==1.7.0 -virtualenv==20.17.0 -wcwidth==0.2.5 -wheel==0.38.4 -zipp==3.11.0 +virtualenv==20.24.6 +wcwidth==0.2.10 +wheel==0.41.3 +zipp==3.17.0 diff --git a/pyproject.toml b/pyproject.toml index f24a531..f014389 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ name = "NEMO-Cmd" dynamic = [ "version" ] description = "NEMO Command Processor" readme = "README.rst" -requires-python = ">=3.10" +requires-python = ">=3.11" license = { file = "LICENSE" } authors = [ { name = "Doug Latornell", email = "dlatornell@eoas.ubc.ca" },