Skip to content

Commit

Permalink
Update exhale requirements (py3.8, breathe>=4.33.1)
Browse files Browse the repository at this point in the history
Exhale now requires:

- Python 3.8+
- Sphinx>=4.3.2
- Breathe>=4.33.1

See #191 for more information.
  • Loading branch information
svenevs committed Jan 21, 2024
1 parent e9e92d2 commit 9046591
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 63 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/test_extras.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ jobs:
steps:
- uses: actions/checkout@v4
# Use minimum version of python needed for this project in setup.cfg.
- name: Use Python 3.7
- name: Use Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.7'
python-version: '3.8'
- name: Install Tools
run: |
pip install -U tox
Expand Down
65 changes: 23 additions & 42 deletions .github/workflows/test_python.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
fail-fast: true
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
##################################################################################
Expand All @@ -37,21 +37,9 @@ jobs:
sudo apt-get install -y doxygen
- name: Install Doxygen (Windows)
if: contains(matrix.os, 'windows')
run: |
# This command has been failing with source forge mirror issues
# choco install doxygen.install --version 1.9.6
#
# https://github.com/actions/runner-images/issues/92#issuecomment-1172456433
$url = "https://www.doxygen.nl/files/doxygen-1.9.6.windows.x64.bin.zip"
Start-DownloadWithRetry -Url $url -Name "doxygen.zip" -DownloadPath "C:\"
Extract-7Zip -Path "C:\doxygen.zip" -DestinationPath "C:\Program Files\doxygen"
# Extracts to C:\Program Files\doxygen
# - doxygen.exe
# - doxyindexer.exe
# - doxysearch.cgi.exe
# - doxywizard.exe
# - libclang.dll
echo "C:\Program Files\doxygen" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
uses: ssciwr/doxygen-install@v1
with:
version: "1.9.6"
##################################################################################
- name: Doxygen Version Dump
run: doxygen --version
Expand All @@ -62,34 +50,17 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install Python Tools
run: |
pip install -U pip tox codecov coverage
# Sphinx 3.0.0 ###################################################################
- name: Test Python ${{ matrix.python-version }} / sphinx==3.0.0
pip install tox codecov coverage
# Sphinx 4.3.2 ###################################################################
- name: Test Python ${{ matrix.python-version }} / sphinx==4.3.2
env:
# NOTE: this is the current minimum supported.
SPHINX_VERSION: '==3.0.0'
SPHINX_VERSION: '==4.3.2'
run: |
tox -e py -- --cov-report xml:coverage.xml --cov
- name: Upload Code Coverage for Python ${{ matrix.python-version }} / sphinx==3.0.0
- name: Upload Code Coverage for Python ${{ matrix.python-version }} / sphinx==4.3.2
run: |
codecov --required -X gcov -f coverage.xml --name "[GHA] ${{ matrix.os }}-py${{ matrix.python-version }}-sphinx3.0.0"
# Don't let code coverage utilities share anything, force clean it all.
- name: Cleanup Python ${{ matrix.python-version }} Testing / Coverage Artifacts
run: |
mv .gitignore nolongerignored
git clean -n
git clean -f
git reset --hard
# Sphinx 4.x #####################################################################
- name: Test Python ${{ matrix.python-version }} / sphinx 4.x
env:
# Test sphinx 4.x.
SPHINX_VERSION: '>=4,<5'
run: |
tox -e py -- --cov-report xml:coverage.xml --cov
- name: Upload Code Coverage for Python ${{ matrix.python-version }} / sphinx 4.x
run: |
codecov --required -X gcov -f coverage.xml --name "[GHA] ${{ matrix.os }}-py${{ matrix.python-version }}-sphinx4.x"
codecov --required -X gcov -f coverage.xml --name "[GHA] ${{ matrix.os }}-py${{ matrix.python-version }}-sphinx4.3.2"
# Don't let code coverage utilities share anything, force clean it all.
- name: Cleanup Python ${{ matrix.python-version }} Testing / Coverage Artifacts
run: |
Expand All @@ -116,14 +87,24 @@ jobs:
git reset --hard
# Sphinx 6.x #####################################################################
- name: Test Python ${{ matrix.python-version }} / sphinx 6.x
# sphinx 6.x requires python 3.8+
if: ${{ matrix.python-version != '3.7' }}
env:
# Test sphinx 6.x.
SPHINX_VERSION: '>=6,<7'
run: |
tox -e py -- --cov-report xml:coverage.xml --cov
- name: Upload Code Coverage for Python ${{ matrix.python-version }} / sphinx 6.x
if: ${{ matrix.python-version != '3.7' }}
run: |
codecov --required -X gcov -f coverage.xml --name "[GHA] ${{ matrix.os }}-py${{ matrix.python-version }}-sphinx6.x"
# Sphinx 7.x #####################################################################
- name: Test Python ${{ matrix.python-version }} / sphinx 7.x
env:
# Test sphinx 7.x.
# TODO: breathe does not currently support later sphinx.
# https://github.com/svenevs/exhale/issues/203#issuecomment-1773060684
SPHINX_VERSION: '>=7,<7.2'
run: |
tox -e py -- --cov-report xml:coverage.xml --cov
- name: Upload Code Coverage for Python ${{ matrix.python-version }} / sphinx 7.x
run: |
codecov --required -X gcov -f coverage.xml --name "[GHA] ${{ matrix.os }}-py${{ matrix.python-version }}-sphinx7.x"
2 changes: 2 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ Exhale Version Compatibility with Python, Sphinx, and Breathe
+----------------+----------------+----------------+-----------------+
| Exhale Version | Python Version | Sphinx Version | Breathe Version |
+================+================+================+=================+
| 0.3.7 | >=3.8 | >=4.3.2 | >=4.33.1 |
+----------------+----------------+----------------+-----------------+
| 0.3.2 -- 0.3.6 | >=3.7 | >=3.0,<5 | >=4.32.0 |
+----------------+----------------+----------------+-----------------+
| 0.3.0 | >=3.6 | >=3.0,<5 | >=4.32.0 |
Expand Down
13 changes: 13 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@ Changelog
:local:
:backlinks: none

v0.3.7
----------------------------------------------------------------------------------------

- Update packaging requirements (:pr:`204`). Exhale will be less restrictive in its
dependency requirements:

- Python 3.8+ (3.7 is EOSL).
- Breathe>=4.33.1.
- Sphinx>=4.3.2.
- See :issue:`191` for more information.
- Miscellaneous packaging and CI fixes courtesy of
`@Rotzbua <https://github.com/Rotzbua>`_ -- thanks for poking me on this project!

v0.3.6
----------------------------------------------------------------------------------------

Expand Down
4 changes: 2 additions & 2 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
sphinx==4.3.1
sphinx_rtd_theme==1.0.0
sphinx
sphinx_rtd_theme
sphinx-issues
# exhale requirements
beautifulsoup4
Expand Down
4 changes: 0 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ filterwarnings = [
"default::PendingDeprecationWarning",
# Bypass docutils warning: DeprecationWarning: 'U' mode is deprecated
"ignore::DeprecationWarning:docutils.io",
# Bypass breathe bug:
# RemovedInSphinx30Warning: function based directive support is now deprecated.
# Use class based directive instead.
"ignore::PendingDeprecationWarning:sphinx.util.docutils",
]

########################################################################################
Expand Down
14 changes: 7 additions & 7 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,24 @@ classifiers =
Natural Language :: English
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
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
Topic :: Documentation :: Sphinx
Topic :: Software Development :: Documentation

[options]
python_requires = >=3.7
python_requires = >=3.8
zip_safe = False
packages = find:
# NOTE: making changes here? Please also update tox.ini [testenv{deps}]!
install_requires =
# From breathe==4.32.0
docutils>=0.12
Sphinx>=3.0,<7
# For exhale
breathe>=4.32.0
breathe>=4.33.1
# We're forcing a more modern sphinx to remove cruft from this repository,
# see the discussion: https://github.com/svenevs/exhale/issues/191
Sphinx>=4.3.2
beautifulsoup4
lxml
# TODO: remove this dependency
Expand Down
9 changes: 3 additions & 6 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,12 @@ passenv =
# usedevelop = true
skip_install = true
# NOTE: environment variables *MUST* include the `==`, e.g.,
# SPHINX_VERSION="==3.0.0" tox -e py
# SPHINX_VERSION="==X.Y.Z" tox -e py
# This way, if the variable is not set, it uses the latest version.
deps =
# TODO: drop this when sphinx 3.x is dropped.
# https://github.com/sphinx-doc/sphinx/issues/10291
Jinja2<3.1
# requirements for exhale
sphinx{env:SPHINX_VERSION:}
breathe{env:BREATHE_VERSION:>=4.32.0}
sphinx{env:SPHINX_VERSION:>=4.3.2}
breathe{env:BREATHE_VERSION:>=4.33.1}
beautifulsoup4
# NOTE: for dev convenience, see https://github.com/svenevs/exhale/issues/131
lxml>=4.6.4
Expand Down

0 comments on commit 9046591

Please sign in to comment.