diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8adee4e..f35ebcd 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,10 +16,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Set up Python 3.11 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: 3.12 - name: Lint run: | diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 4910b43..65a8655 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -24,10 +24,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: "3.9" + python-version: "3.12" - name: Install twine run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 40edc3a..de71976 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,10 +24,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.11 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" - name: Install twine run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8fc06ec..28eabfc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,7 +21,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ac73c53..912801b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/psf/black - rev: 23.3.0 + rev: 23.11.0 hooks: - id: black name: black @@ -23,7 +23,7 @@ repos: additional_dependencies: [".[jupyter]"] - repo: https://github.com/pycqa/flake8 - rev: 6.0.0 + rev: 6.1.0 hooks: - id: flake8 additional_dependencies: @@ -52,7 +52,7 @@ repos: args: [--drop-empty-cells] - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 + rev: v3.15.0 hooks: - id: pyupgrade args: [--py39-plus] @@ -64,7 +64,7 @@ repos: files: \.py$ - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: check-builtin-literals - id: check-added-large-files @@ -94,9 +94,10 @@ repos: additional_dependencies: - numpy - cython~=3.0.0b3 + - wheel - repo: https://github.com/PyCQA/pydocstyle - rev: 6.1.1 + rev: 6.3.0 hooks: - id: pydocstyle files: landlab/.*\.py$ @@ -106,7 +107,7 @@ repos: additional_dependencies: [".[toml]"] - repo: https://github.com/pre-commit/mirrors-mypy - rev: v0.982 + rev: v1.7.0 hooks: - id: mypy additional_dependencies: [types-all] diff --git a/news/19.misc b/news/19.misc new file mode 100644 index 0000000..3d0bd59 --- /dev/null +++ b/news/19.misc @@ -0,0 +1,2 @@ + +Added support for Python 3.12 and dropped support for Python 3.9. diff --git a/noxfile.py b/noxfile.py index 9763164..1bba906 100644 --- a/noxfile.py +++ b/noxfile.py @@ -5,11 +5,12 @@ import nox +PYTHON_VERSION = "3.12" PROJECT = "compaction" ROOT = pathlib.Path(__file__).parent -@nox.session() +@nox.session(python=PYTHON_VERSION, venv_backend="conda") def test(session: nox.Session) -> None: """Run the tests.""" os.environ["WITH_OPENMP"] = "1" @@ -34,7 +35,7 @@ def test(session: nox.Session) -> None: session.run("coverage", "report", "--ignore-errors", "--show-missing") -@nox.session(name="test-cli") +@nox.session(name="test-cli", python=PYTHON_VERSION, venv_backend="conda") def test_cli(session: nox.Session) -> None: """Test the command line interface.""" session.install(".") diff --git a/pyproject.toml b/pyproject.toml index 4ab75cd..c79fed9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,13 +27,13 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Cython", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Physics", ] -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [ "click", "landlab", @@ -108,7 +108,7 @@ line_length = 88 ignore = [".nox", "build"] [tool.cibuildwheel] -build = "cp39-* cp310-* cp311-*" +build = "cp310-* cp311-* cp312-*" skip = "*-musllinux_*" archs = "x86_64,i686,aarch64,arm64,AMD64,x86"