Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update exhale requirements (py3.8, breathe>=4.33.1) #205

Merged
merged 1 commit into from
Jan 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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}
svenevs marked this conversation as resolved.
Show resolved Hide resolved
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