Repository: csdms/bmi-geotiff (language: python)

Issue:
Test with Python 3.12; set minimum Python >= 3.10
The CI workflow should include testing on Python 3.12. Further, in keeping with our informal policy of supporting the latest three Python versions, the minimum Python version should be bumped to 3.10.


Discussion / hints:

Fix patch:
diff --git a/environment.yml b/environment.yml
index b245f00..f2ca7fd 100644
--- a/environment.yml
+++ b/environment.yml
@@ -3,7 +3,7 @@ name: geotiff
 channels:
   - conda-forge
 dependencies:
-  - python >=3.9
+  - python >=3.10
   - pip
   - pyyaml
   - rioxarray
diff --git a/noxfile.py b/noxfile.py
index f8c16ab..737f7d9 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -10,7 +10,7 @@
 HERE = pathlib.Path(__file__)
 ROOT = HERE.parent
 PATHS = [PACKAGE, "docs", "examples", "tests", HERE.name]
-PYTHON_VERSIONS = ["3.9", "3.10", "3.11"]
+PYTHON_VERSIONS = ["3.10", "3.11", "3.12"]
 
 
 @nox.session(python=PYTHON_VERSIONS)
@@ -36,15 +36,15 @@ def test(session: nox.Session) -> None:
 @nox.session(name="test-bmi", python=PYTHON_VERSIONS, venv_backend="conda")
 def test_bmi(session: nox.Session) -> None:
     """Test the Basic Model Interface."""
-    session.conda_install("bmi-tester", "pymt>=1.3")
+    session.install("bmi-tester>=0.5.9")
     session.install(".")
     session.run(
         "bmi-test",
         f"{PACKAGE}:BmiGeoTiff",
         "--config-file",
-        "./examples/config.yaml",
+        f"{ROOT}/examples/config.yaml",
         "--root-dir",
-        "./examples",
+        "examples",
         "-vvv",
     )
 
diff --git a/pyproject.toml b/pyproject.toml
index 5187942..0bef313 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -17,6 +17,9 @@ keywords = [
 license = {text = "MIT License"}
 classifiers = [
   "Programming Language :: Python :: 3",
+  "Programming Language :: Python :: 3.10",
+  "Programming Language :: Python :: 3.11",
+  "Programming Language :: Python :: 3.12",
   "License :: OSI Approved :: MIT License",
   "Operating System :: OS Independent",
   "Intended Audience :: Developers",
@@ -24,7 +27,7 @@ classifiers = [
   "Intended Audience :: Education",
   "Topic :: Scientific/Engineering",
 ]
-requires-python = ">=3.7"
+requires-python = ">=3.10"
 dependencies = [
   "numpy",
   "pyyaml",
@@ -36,7 +39,7 @@ dependencies = [
 dynamic = ["readme", "version"]
 
 [project.urls]
-Homepage = "https://github.com/csdms/bmi-geotiff"
+Homepage = "https://csdms.colorado.edu"
 Documentation = "https://bmi-geotiff.readthedocs.io/"
 Repository = "https://github.com/csdms/bmi-geotiff"
 Changelog = "https://github.com/csdms/bmi-geotiff/blob/main/CHANGES.md"
@@ -88,7 +91,7 @@ norecursedirs = [".*", "*.egg*", "build", "dist"]
 addopts = """
   --ignore setup.py
   --tb native
-  --strict
+  --strict-markers
   --durations 16
   --doctest-modules
   -vvv
@@ -105,3 +108,10 @@ include_trailing_comma = true
 force_grid_wrap = 0
 combine_as_imports = true
 line_length = 88
+
+[tool.coverage.run]
+relative_files = true
+
+[tool.zest-releaser]
+tag-format = "v{version}"
+python-file-with-version = "bmi_geotiff/_version.py"
diff --git a/setup.cfg b/setup.cfg
index 35c9fc2..f3d7d5c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,3 @@
-[coverage:run]
-relative_files = True
-
 [flake8]
 exclude = docs
 ignore =
@@ -8,7 +5,3 @@ ignore =
 	E501
 	W503
 max-line-length = 88
-
-[zest.releaser]
-tag-format = v{version}
-python-file-with-version = bmi_geotiff/_version.py


Test patch:
diff --git a/.github/workflows/build-test-ci.yml b/.github/workflows/build-test-ci.yml
index b13a478..352d8d1 100644
--- a/.github/workflows/build-test-ci.yml
+++ b/.github/workflows/build-test-ci.yml
@@ -19,12 +19,12 @@ 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
+      - uses: actions/checkout@v4
 
-      - uses: conda-incubator/setup-miniconda@v2
+      - uses: conda-incubator/setup-miniconda@v3
         with:
           miniforge-variant: Mambaforge
           miniforge-version: latest
@@ -46,10 +46,10 @@ jobs:
           nox -s test --python ${{ matrix.python-version }}
 
       - name: Test BMI
-        if: ${{ matrix.python-version == '3.9' }}
+        if: ${{ matrix.python-version == '3.12' }}
         run: |
           nox -s test-bmi --python ${{ matrix.python-version }}
 
       - name: Coveralls
-        if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
+        if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
         uses: AndreMiras/coveralls-python-action@develop