diff --git a/.github/workflows/docs_test_action.yml b/.github/workflows/docs_test_action.yml index 8f60ba5..761b41f 100644 --- a/.github/workflows/docs_test_action.yml +++ b/.github/workflows/docs_test_action.yml @@ -29,7 +29,7 @@ jobs: - '!tests/**' - name: Install and Build 🔧 - uses: sphinx-toolbox/sphinx-action@sphinx-3.3.1 + uses: sphinx-toolbox/sphinx-action@sphinx-3.3.1-py39 if: steps.changes.outputs.code == 'true' with: pre-build-command: python -m pip install tox diff --git a/.github/workflows/flake8.yml b/.github/workflows/flake8.yml index af1b394..5e67c5c 100644 --- a/.github/workflows/flake8.yml +++ b/.github/workflows/flake8.yml @@ -35,7 +35,7 @@ jobs: if: steps.changes.outputs.code == 'true' uses: "actions/setup-python@v5" with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies 🔧 if: steps.changes.outputs.code == 'true' diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index bd74787..4c22a52 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: - os: ['ubuntu-22.04', 'windows-2019'] + os: ['ubuntu-22.04', 'windows-2022'] fail-fast: false steps: @@ -40,7 +40,7 @@ jobs: if: steps.changes.outputs.code == 'true' uses: "actions/setup-python@v5" with: - python-version: "3.8" + python-version: "3.9" - name: Install dependencies 🔧 run: | diff --git a/.github/workflows/octocheese.yml b/.github/workflows/octocheese.yml index 82257f3..74f8cdd 100644 --- a/.github/workflows/octocheese.yml +++ b/.github/workflows/octocheese.yml @@ -6,6 +6,9 @@ on: schedule: - cron: 0 12 * * * +permissions: + contents: write + jobs: Run: runs-on: ubuntu-latest diff --git a/.github/workflows/python_ci.yml b/.github/workflows/python_ci.yml index 98c1594..7ef4422 100644 --- a/.github/workflows/python_ci.yml +++ b/.github/workflows/python_ci.yml @@ -18,8 +18,8 @@ permissions: jobs: tests: - name: "windows-2019 / Python ${{ matrix.config.python-version }}" - runs-on: "windows-2019" + name: "windows-2022 / Python ${{ matrix.config.python-version }}" + runs-on: "windows-2022" continue-on-error: ${{ matrix.config.experimental }} env: USING_COVERAGE: '3.7,3.8,3.9,3.10,3.11,3.12,3.13' @@ -34,7 +34,7 @@ jobs: - {python-version: "3.10", testenvs: "py310,build", experimental: False} - {python-version: "3.11", testenvs: "py311,build", experimental: False} - {python-version: "3.12", testenvs: "py312,build", experimental: False} - - {python-version: "3.13", testenvs: "py313-dev,build", experimental: True} + - {python-version: "3.13", testenvs: "py313,build", experimental: False} steps: - name: Checkout 🛎️ diff --git a/.github/workflows/python_ci_linux.yml b/.github/workflows/python_ci_linux.yml index 75b2303..80bee22 100644 --- a/.github/workflows/python_ci_linux.yml +++ b/.github/workflows/python_ci_linux.yml @@ -35,7 +35,7 @@ jobs: - {python-version: "3.10", testenvs: "py310,build", experimental: False} - {python-version: "3.11", testenvs: "py311,build", experimental: False} - {python-version: "3.12", testenvs: "py312,build", experimental: False} - - {python-version: "3.13", testenvs: "py313-dev,build", experimental: True} + - {python-version: "3.13", testenvs: "py313,build", experimental: False} steps: - name: Checkout 🛎️ @@ -158,7 +158,7 @@ jobs: - name: Upload distribution to PyPI 🚀 if: startsWith(github.ref, 'refs/tags/') - uses: pypa/gh-action-pypi-publish@v1.4.2 + uses: pypa/gh-action-pypi-publish@v1.13.0 with: user: __token__ password: ${{ secrets.PYPI_TOKEN }} diff --git a/.github/workflows/python_ci_macos.yml b/.github/workflows/python_ci_macos.yml index f31f3e1..90b96e3 100644 --- a/.github/workflows/python_ci_macos.yml +++ b/.github/workflows/python_ci_macos.yml @@ -28,13 +28,13 @@ jobs: fail-fast: False matrix: config: - - {python-version: "3.7", os-ver: "13", testenvs: "py37,build", experimental: False} + - {python-version: "3.7", os-ver: "15-intel", testenvs: "py37,build", experimental: False} - {python-version: "3.8", os-ver: "14", testenvs: "py38,build", experimental: False} - {python-version: "3.9", os-ver: "14", testenvs: "py39,build", experimental: False} - {python-version: "3.10", os-ver: "14", testenvs: "py310,build", experimental: False} - {python-version: "3.11", os-ver: "14", testenvs: "py311,build", experimental: False} - {python-version: "3.12", os-ver: "14", testenvs: "py312,build", experimental: False} - - {python-version: "3.13", os-ver: "14", testenvs: "py313-dev,build", experimental: True} + - {python-version: "3.13", os-ver: "14", testenvs: "py313,build", experimental: False} steps: - name: Checkout 🛎️ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d17a9b3..4f769a1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -43,7 +43,7 @@ repos: - id: bind-requirements - repo: https://github.com/python-formate/flake8-dunder-all - rev: v0.4.1 + rev: v0.5.0 hooks: - id: ensure-dunder-all files: ^tox_recreate_hook/.*\.py$ @@ -62,11 +62,11 @@ repos: - id: rst-inline-touching-normal - repo: https://github.com/asottile/pyupgrade - rev: v2.12.0 + rev: v3.3.0 hooks: - id: pyupgrade args: - - --py36-plus + - --py37-plus - --keep-runtime-typing - repo: https://github.com/Lucas-C/pre-commit-hooks diff --git a/doc-source/requirements.txt b/doc-source/requirements.txt index f0a827f..c91b606 100644 --- a/doc-source/requirements.txt +++ b/doc-source/requirements.txt @@ -1,7 +1,9 @@ default-values>=0.6.0 +docutils<0.22 extras-require>=0.5.0 furo==2021.06.18b36 html-section>=0.3.0 +roman>=4.0 seed-intersphinx-mapping>=1.2.2 sphinx>=3.0.3 sphinx-copybutton>=0.2.12 diff --git a/pyproject.toml b/pyproject.toml index 36c2122..12f2fdf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ base-classifiers = [ "Topic :: Software Development :: Testing :: Unit", "Typing :: Typed", ] -python-versions = [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12",] +python-versions = [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13",] python-implementations = [ "CPython",] platforms = [ "Windows", "macOS", "Linux",] license-key = "MIT" @@ -122,7 +122,7 @@ autodoc_exclude_members = [ ] [tool.mypy] -python_version = "3.8" +python_version = "3.9" namespace_packages = true check_untyped_defs = true warn_unused_ignores = true diff --git a/tox.ini b/tox.ini index 6668c0b..74918df 100644 --- a/tox.ini +++ b/tox.ini @@ -22,7 +22,7 @@ # * pytest [tox] -envlist = py37, py38, py39, py310, py311, py312, py313-dev, mypy, build +envlist = py37, py38, py39, py310, py311, py312, py313, mypy, build skip_missing_interpreters = True isolated_build = True requires = @@ -32,9 +32,9 @@ requires = virtualenv!=20.16.0 [envlists] -test = py37, py38, py39, py310, py311, py312, py313-dev +test = py37, py38, py39, py310, py311, py312, py313 qa = mypy, lint -cov = py38, coverage +cov = py39, coverage [testenv] setenv = @@ -51,12 +51,11 @@ setenv = PYTHONDEVMODE=1 PIP_DISABLE_PIP_VERSION_CHECK=1 -[testenv:py313-dev] +[testenv:py313] download = True setenv = PYTHONDEVMODE=1 PIP_DISABLE_PIP_VERSION_CHECK=1 - UNSAFE_PYO3_SKIP_VERSION_CHECK=1 [testenv:py312] download = True @@ -67,7 +66,7 @@ setenv = [testenv:docs] setenv = SHOW_TODOS = 1 passenv = SPHINX_BUILDER -basepython = python3.8 +basepython = python3.9 changedir = {toxinidir}/doc-source deps = -r{toxinidir}/doc-source/requirements.txt commands = sphinx-build -M {env:SPHINX_BUILDER:html} . ./build {posargs} @@ -91,7 +90,7 @@ commands = check-wheel-contents dist/ [testenv:lint] -basepython = python3.8 +basepython = python3.9 changedir = {toxinidir} ignore_errors = True skip_install = True @@ -111,6 +110,7 @@ deps = flake8-sphinx-links>=0.0.4 flake8-strftime>=0.1.1 flake8-typing-imports>=1.10.0 + git+https://github.com/domdfcoding/restructuredtext-lint.git@fix-deprecations git+https://github.com/domdfcoding/flake8-rst-docstrings-sphinx.git git+https://github.com/domdfcoding/flake8-rst-docstrings.git git+https://github.com/python-formate/flake8-unused-arguments.git@magic-methods @@ -121,7 +121,7 @@ deps = commands = python3 -m flake8_rst_docstrings_sphinx tox_recreate_hook tests --allow-toolbox {posargs} [testenv:perflint] -basepython = python3.8 +basepython = python3.9 changedir = {toxinidir} ignore_errors = True skip_install = True @@ -129,7 +129,7 @@ deps = perflint commands = python3 -m perflint tox_recreate_hook {posargs} [testenv:mypy] -basepython = python3.8 +basepython = python3.9 ignore_errors = True changedir = {toxinidir} deps = @@ -139,7 +139,7 @@ deps = commands = mypy tox_recreate_hook tests {posargs} [testenv:pyup] -basepython = python3.8 +basepython = python3.9 skip_install = True ignore_errors = True changedir = {toxinidir} @@ -147,7 +147,7 @@ deps = pyupgrade-directories commands = pyup_dirs tox_recreate_hook tests --py36-plus --recursive [testenv:coverage] -basepython = python3.8 +basepython = python3.9 skip_install = True ignore_errors = True whitelist_externals = /bin/bash