Skip to content

Commit

Permalink
Merge pull request #98 from theOehrly/sphinx-v8
Browse files Browse the repository at this point in the history
Allow Sphinx >=8.0 and fix deprecations; allow Python 3.12; rework test workflow
  • Loading branch information
Chilipp authored Aug 5, 2024
2 parents 6834615 + e5b8062 commit 0cd8c23
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 55 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Tests

on:
workflow_call:
inputs:
python-version:
required: true
type: string
extra-requirements:
required: false
type: string

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ inputs.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov codecov beautifulsoup4 ${{ inputs.extra-requirements }} -e .
- name: Test with pytest
run: |
pytest --cov=autodocsumm --cov-report=xml tests
- name: Upload codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
codecov
138 changes: 87 additions & 51 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,62 +8,98 @@ on:
pull_request:

jobs:
build:

runs-on: ubuntu-latest
build-sphinx-80plus:
name: Build
strategy:
fail-fast: false
matrix:
python-version: [ "3.10", "3.11", "3.12" ]
sphinx-version: [
"8.0.*", "8.*" # 8.0.x and latest
]
uses: ./.github/workflows/build.yml
with:
python-version: ${{ matrix.python-version }}
extra-requirements: '\
"sphinx==${{ matrix.sphinx-version }}"'


build-legacy-sphinx-45plus:
name: Build

strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9"]
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ]
sphinx-version: [
"7.0.*", "7.1.*", "7.2.*",
"6.0.*",
"5.0.*",
"4.5", "4.4", "4.3", "4.2", "4.1", "4.0.*",
"3.5.*", "3.4.*", "3.2.*", "3.1.*", "3.0.*",
"7.0.*", # possible range: 7.0.0 - 7.4.7
"6.0.*", # possible range: 6.0.0 - 6.2.1
"5.0.*", # possible range: 5.0.0 - 5.3.0
"4.5.*" # possible range: 4.5.0, also latest that supports py3.8
]
include:
- python-version: "3.7"
sphinx-version: ""
- python-version: "3.7"
sphinx-version: "3.5"
- python-version: "3.10"
sphinx-version: ""
- python-version: "3.10"
sphinx-version: "4.5"
- python-version: "3.11"
sphinx-version: ""
- python-version: "3.11"
sphinx-version: "4.5"
exclude:
- python-version: "3.8"
sphinx-version: "7.2.*"
- python-version: "3.9"
sphinx-version: "7.2.*" # latest version that supports py3.9
uses: ./.github/workflows/build.yml
with:
python-version: ${{ matrix.python-version }}
extra-requirements: '\
"sphinx==${{ matrix.sphinx-version }}"
"sphinxcontrib-applehelp<1.0.8"
"sphinxcontrib-devhelp<1.0.6"
"sphinxcontrib-htmlhelp<2.0.5"
"sphinxcontrib-jsmath<1.0.1"
"sphinxcontrib-qthelp<1.0.7"
"sphinxcontrib-serializinghtml<1.1.10"'


steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
env:
SPHINX_VERSION: ${{ matrix.sphinx-version }}
run: |
python -m pip install --upgrade pip
SPHINX=Sphinx
JINJA2=jinja2
if [[ $SPHINX_VERSION != "" ]]; then
SPHINX="${SPHINX}==${SPHINX_VERSION}";
JINJA2="${JINJA2}<3.1";
fi
pip install pytest pytest-cov codecov "${SPHINX}" "${JINJA2}" beautifulsoup4 -e .
- name: Test with pytest
run: |
pytest --cov=autodocsumm --cov-report=xml tests
- name: Upload codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
codecov
build-legacy-sphinx-40plus:
name: Build

strategy:
fail-fast: false
matrix:
python-version: [ "3.8", "3.9" ]
sphinx-version: [
"4.0.*" # possible range: 4.0.0 - 4.4.0
]
uses: ./.github/workflows/build.yml
with:
python-version: ${{ matrix.python-version }}
extra-requirements: '\
"sphinx==${{ matrix.sphinx-version }}"
"sphinxcontrib-applehelp<1.0.8"
"sphinxcontrib-devhelp<1.0.6"
"sphinxcontrib-htmlhelp<2.0.5"
"sphinxcontrib-jsmath<1.0.1"
"sphinxcontrib-qthelp<1.0.7"
"sphinxcontrib-serializinghtml<1.1.10"'


build-legacy-sphinx-30plus:
name: Build

strategy:
fail-fast: false
matrix:
python-version: [ "3.7", "3.8", "3.9" ]
sphinx-version: [
"3.0.*", # possible range: 3.0.0 - 3.5.4
]
include:
- python-version: "3.7"
sphinx-version: "3.5.*" # latest version that supports py3.7
uses: ./.github/workflows/build.yml
with:
python-version: ${{ matrix.python-version }}
extra-requirements: '\
"sphinx==${{ matrix.sphinx-version }}"
"jinja2<3.1"
"alabaster<0.7.14"
"sphinxcontrib-applehelp<1.0.8"
"sphinxcontrib-devhelp<1.0.6"
"sphinxcontrib-htmlhelp<2.0.5"
"sphinxcontrib-jsmath<1.0.1"
"sphinxcontrib-qthelp<1.0.7"
"sphinxcontrib-serializinghtml<1.1.10"'
10 changes: 7 additions & 3 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import os.path as osp
import sys
import pytest
import sphinx
import sys
from packaging.version import Version

from sphinx.testing.path import path
if Version(sphinx.__version__) < Version("8.0.0"):
from sphinx.testing.path import path
else:
from pathlib import Path as path

pytest_plugins = 'sphinx.testing.fixtures'



sphinx_supp = osp.abspath(osp.join(osp.dirname(__file__), "tests"))


Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@ classifiers = [
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Operating System :: OS Independent',
]

requires-python = '>= 3.7'
dependencies = [
'Sphinx >= 2.2, < 8.0',
'Sphinx >= 2.2, < 9.0',
]

[project.urls]
Expand Down

0 comments on commit 0cd8c23

Please sign in to comment.