diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14a7c8b..04c4ac6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,14 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.x" + python-version: | + 3.8 + 3.9 + 3.10 + 3.11 + 3.12 + pypy3.10 + allow-prereleases: true - name: Set up nox uses: wntrblm/nox@2023.04.22 - name: Run nox diff --git a/docs/requirements.txt b/docs/requirements.txt index 8a1d301..5db1537 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --resolver=backtracking docs/requirements.in +# pip-compile --config=pyproject.toml docs/requirements.in # alabaster==0.7.13 # via sphinx @@ -10,19 +10,19 @@ babel==2.12.1 # via sphinx beautifulsoup4==4.12.2 # via furo -certifi==2023.5.7 +certifi==2023.7.22 # via requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via requests -contourpy==1.0.7 +contourpy==1.1.0 # via matplotlib cycler==0.11.0 # via matplotlib docutils==0.20.1 # via sphinx -fonttools==4.39.4 +fonttools==4.41.1 # via matplotlib -furo==2023.5.20 +furo==2023.7.26 # via -r docs/requirements.in idna==3.4 # via requests @@ -32,13 +32,13 @@ jinja2==3.1.2 # via sphinx kiwisolver==1.4.4 # via matplotlib -lxml==4.9.2 +lxml==4.9.3 # via sphinx-json-schema-spec -markupsafe==2.1.2 +markupsafe==2.1.3 # via jinja2 -matplotlib==3.7.1 +matplotlib==3.7.2 # via sphinxext-opengraph -numpy==1.24.3 +numpy==1.25.2 # via # contourpy # matplotlib @@ -46,7 +46,7 @@ packaging==23.1 # via # matplotlib # sphinx -pillow==9.5.0 +pillow==10.0.0 # via matplotlib pyenchant==3.2.2 # via sphinxcontrib-spelling @@ -66,7 +66,7 @@ snowballstemmer==2.2.0 # via sphinx soupsieve==2.4.1 # via beautifulsoup4 -sphinx==7.0.1 +sphinx==7.1.2 # via # -r docs/requirements.in # furo @@ -74,7 +74,7 @@ sphinx==7.0.1 # sphinx-json-schema-spec # sphinxcontrib-spelling # sphinxext-opengraph -sphinx-basic-ng==1.0.0b1 +sphinx-basic-ng==1.0.0b2 # via furo file:.#egg=sphinx_json_schema_spec # via -r docs/requirements.in @@ -94,5 +94,5 @@ sphinxcontrib-spelling==8.0.0 # via -r docs/requirements.in sphinxext-opengraph==0.8.2 # via -r docs/requirements.in -urllib3==2.0.2 +urllib3==2.0.4 # via requests diff --git a/noxfile.py b/noxfile.py index 212d48e..b8faca4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -21,7 +21,7 @@ def _session(fn): return _session -@session(python=["3.8", "3.9", "3.10", "3.11", "pypy3"]) +@session(python=["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3"]) def tests(session): session.install("pytest", ROOT) session.run("pytest", *session.posargs, PACKAGE) @@ -74,6 +74,7 @@ def docs(session, builder): argv = ["-n", "-T", "-W"] if builder != "spelling": argv += ["-q"] + posargs = session.posargs or [tmpdir / builder] session.run( "python", "-m", @@ -81,8 +82,8 @@ def docs(session, builder): "-b", builder, DOCS, - tmpdir / builder, *argv, + *posargs, ) @@ -94,3 +95,16 @@ def docs_style(session): "pygments-github-lexers", ) session.run("python", "-m", "doc8", "--config", PYPROJECT, DOCS) + + +@session(default=False) +def requirements(session): + session.install("pip-tools") + for each in [DOCS / "requirements.in"]: + session.run( + "pip-compile", + "--resolver", + "backtracking", + "-U", + each.relative_to(ROOT), + ) diff --git a/pyproject.toml b/pyproject.toml index 18f89a1..08dffbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,11 +22,11 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", - "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "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", "Programming Language :: Python :: Implementation :: PyPy", "Framework :: Sphinx :: Extension",