diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 414f2d0292..0cdb30a039 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/devcontainers/python:1-3.10-bookworm +FROM mcr.microsoft.com/devcontainers/python:1-3.11-bookworm RUN apt-get update \ && export DEBIAN_FRONTEND=noninteractive && apt-get install -y libboost-dev \ && apt-get clean && rm -rf /var/cache/apt/* && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* diff --git a/.python-versions b/.python-versions index dadc51464f..13dfeee3bb 100644 --- a/.python-versions +++ b/.python-versions @@ -1,5 +1,4 @@ # Supported versions. The first one is considered the default -3.10 3.11 3.12 3.13 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dfd0a8d8bb..221b845ea3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,9 +47,9 @@ Ready to start contributing? We use a [fork and pull request](https://www.atlass 2. Clone your fork locally and check out the relevant branch: ```bash - $ git clone git@github.com:your_name_here/gt4py.git - $ cd gt4py - $ git checkout main + git clone git@github.com:your_name_here/gt4py.git + cd gt4py + git checkout main ``` 3. Follow instructions in the [README.md](README.md) file to set up an environment for local development. @@ -57,7 +57,7 @@ Ready to start contributing? We use a [fork and pull request](https://www.atlass 4. Create a branch for local development: ```bash - $ git checkout -b name-of-your-bugfix-or-feature + git checkout -b name-of-your-bugfix-or-feature ``` Now you can make your changes locally. Make sure you follow the project code style documented in [CODING_GUIDELINES.md](CODING_GUIDELINES.md). @@ -65,8 +65,8 @@ Ready to start contributing? We use a [fork and pull request](https://www.atlass 5. When you're done making changes, check that your code complies with the project code style and other quality assurance (QA) practices using `pre-commit`. Additionally, make sure that unit and regression tests pass for all supported Python versions by running `nox`: ```bash - $ pre-commit run - $ nox + pre-commit run + nox ``` Read [Testing](#testing) section below for further details. @@ -74,9 +74,9 @@ Ready to start contributing? We use a [fork and pull request](https://www.atlass 6. Commit your changes and push your branch to GitHub: ```bash - $ git add . - $ git commit -m "Your detailed description of your changes." - $ git push origin name-of-your-bugfix-or-feature + git add . + git commit -m "Your detailed description of your changes." + git push origin name-of-your-bugfix-or-feature ``` 7. Submit a pull request (PR) on [GT4Py's GitHub page](https://github.com/gridtools/gt4py). @@ -145,7 +145,7 @@ We recommended you to use `nox` for running the test suite in different environm nox --list # Run a specific session -nox -s "test_cartesian-3.10(internal, cpu)" +nox -s "test_cartesian-3.11(internal, cpu)" ``` Check `nox` documentation (`nox --help`) for the complete reference. diff --git a/ci/Dockerfile b/ci/Dockerfile index d7925d5398..7bef60cc1f 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -45,7 +45,7 @@ ENV UV_PROJECT_ENVIRONMENT=${WORKDIR_PATH}/venv ENV UV_PYTHON_INSTALL_DIR="/opt/uv-python" # Create and activate the python venv -ARG PY_VERSION=3.10 +ARG PY_VERSION=3.11 ENV VIRTUAL_ENV=${UV_PROJECT_ENVIRONMENT} RUN uv venv -p ${PY_VERSION} --link-mode copy ${VIRTUAL_ENV} ENV PATH="${VIRTUAL_ENV}/bin:$PATH" diff --git a/ci/cscs-ci.yml b/ci/cscs-ci.yml index b1320f66ea..a8404b0856 100644 --- a/ci/cscs-ci.yml +++ b/ci/cscs-ci.yml @@ -22,7 +22,7 @@ variables: # Default values for base variables (can be overriden in jobs defini UBUNTU_VERSION: '24.04' UV_VERSION: '0.6.12' -.test_python_versions: &test_python_versions ['3.10', '3.13'] +.test_python_versions: &test_python_versions ['3.11', '3.13'] stages: - build diff --git a/noxfile.py b/noxfile.py index ba131f3e7a..d854425c76 100755 --- a/noxfile.py +++ b/noxfile.py @@ -9,7 +9,7 @@ # SPDX-License-Identifier: BSD-3-Clause # # /// script -# requires-python = ">=3.10" +# requires-python = ">=3.11" # dependencies = ["nox>=2025.02.09", "uv>=0.6.10"] # /// @@ -29,31 +29,24 @@ # -- nox configuration -- nox.options.default_venv_backend = "uv" nox.options.sessions = [ - "test_cartesian-3.10(internal, cpu)", - "test_cartesian-3.10(dace, cpu)", "test_cartesian-3.11(internal, cpu)", "test_cartesian-3.11(dace, cpu)", "test_cartesian-3.12(internal, cpu)", "test_cartesian-3.12(dace, cpu)", "test_cartesian-3.13(internal, cpu)", "test_cartesian-3.13(dace, cpu)", - "test_eve-3.10", "test_eve-3.11", "test_eve-3.12", "test_eve-3.13", - "test_next-3.10(internal, cpu, nomesh)", - "test_next-3.10(dace, cpu, nomesh)", "test_next-3.11(internal, cpu, nomesh)", "test_next-3.11(dace, cpu, nomesh)", "test_next-3.12(internal, cpu, nomesh)", "test_next-3.12(dace, cpu, nomesh)", "test_next-3.13(internal, cpu, nomesh)", "test_next-3.13(dace, cpu, nomesh)", - "test_package-3.10", "test_package-3.11", "test_package-3.12", "test_package-3.13", - "test_storage-3.10(cpu)", "test_storage-3.11(cpu)", "test_storage-3.12(cpu)", "test_storage-3.13(cpu)", diff --git a/pyproject.toml b/pyproject.toml index 30bce9b275..7387d330c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,6 @@ classifiers = [ 'Intended Audience :: Science/Research', 'Operating System :: POSIX', 'Programming Language :: Python', - 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', @@ -128,7 +127,7 @@ license = 'BSD-3-Clause' license-files = ['LICENSE'] name = 'gt4py' readme = 'README.md' -requires-python = '>=3.10, <3.14' +requires-python = '>=3.11, <3.14' [project.optional-dependencies] cartesian = ['gt4py[jax,standard,testing]'] @@ -314,7 +313,7 @@ line-length = 100 # It should be the same as in `tool.black.line-length` above respect-gitignore = true show-fixes = true # show-source = true -target-version = 'py310' +target-version = 'py311' [tool.ruff.format] docstring-code-format = true diff --git a/scripts/update.py b/scripts/update.py index 08d28c9928..5a3883f1d4 100755 --- a/scripts/update.py +++ b/scripts/update.py @@ -14,9 +14,9 @@ import enum import re import subprocess +import tomllib import rich -import tomllib import typer from . import _common as common diff --git a/src/gt4py/cartesian/frontend/gtscript_frontend.py b/src/gt4py/cartesian/frontend/gtscript_frontend.py index f4dd4dcb3b..7be3ce883d 100644 --- a/src/gt4py/cartesian/frontend/gtscript_frontend.py +++ b/src/gt4py/cartesian/frontend/gtscript_frontend.py @@ -47,7 +47,7 @@ from gt4py.cartesian.utils import meta as gt_meta -PYTHON_AST_VERSION: Final = (3, 10) +PYTHON_AST_VERSION: Final = (3, 11) class AssertionChecker(ast.NodeTransformer): diff --git a/src/gt4py/next/constructors.py b/src/gt4py/next/constructors.py index 14adb85d0a..377c2ad2ea 100644 --- a/src/gt4py/next/constructors.py +++ b/src/gt4py/next/constructors.py @@ -288,7 +288,7 @@ def as_connectivity( domain: common.DomainLike | Sequence[common.Dimension], codomain: common.Dimension, data: core_defs.NDArrayObject, - dtype: Optional[core_defs.DType] = None, + dtype: Optional[core_defs.DTypeLike] = None, *, allocator: Optional[next_allocators.FieldBufferAllocationUtil] = None, device: Optional[core_defs.Device] = None, diff --git a/uv.lock b/uv.lock index 8272858f02..692318d1f3 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.10, <3.14" +requires-python = ">=3.11, <3.14" resolution-markers = [ "python_full_version >= '3.13'", "python_full_version == '3.12.*'",