Scheduled weekly dependency update for week 08#657
Conversation
📝 WalkthroughWalkthroughTwo requirements files were updated with package version bumps. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
docs/requirements-docs.txtrequirements-dev.txt
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: build (3.13)
- GitHub Check: build (3.11)
- GitHub Check: build (3.10)
- GitHub Check: build (3.12)
🔇 Additional comments (5)
requirements-dev.txt (3)
8-8: [rewritten review comment]
[classification tag]
5-5:pytest-env==1.5.0does not exist on PyPIVersion 1.5.0 is not available on PyPI (latest release is 1.3.2 as of Feb 23, 2026). Pinning to 1.5.0 will cause pip install to fail. Update to an available version, such as 1.3.2, or verify the intended version.
Likely an incorrect or invalid review comment.
7-7: No API compatibility issues found. FiftyOne 1.5.2 → 1.13.2 contains no breaking changes affecting the stable APIs used in this codebase (fo.dataset_exists(),fo.launch_app(),fo.Dataset(),fo.Sample(), and utility imports). This is a normal minor version progression within the same major version.docs/requirements-docs.txt (2)
6-6: Verify docs render correctly with sphinx-click 6.2.0sphinx-click 6.0.0 introduced breaking changes: click >= 8.0.0 is now required (7.x dropped), Sphinx >= 4.0.0 is required (< 4 dropped), and string default values now render with quotes (e.g.,
default: "foo"instead ofdefault: foo).The project's dependencies satisfy the version floors (click>=8.0.4 and Sphinx==9.1.0), so the upgrade is technically compatible. However, confirm that the CLI documentation builds and renders correctly, and update any snapshot tests or expected output assertions if string defaults are affected.
3-3: No action needed. The docs CI workflow (docs-publish.yml) usespython-version: "3.x"(line 23), which resolves to the latest stable Python 3.x version (≥3.13). This is fully compatible withsphinx-autobuild==2025.8.25, which requires Python ≥3.11. The dependency upgrade will not break the docs build workflow.
| sphinx==7.3.7 | ||
| furo==2024.5.6 | ||
| sphinx-autobuild==2024.4.16 | ||
| sphinx==9.1.0 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for Python version pins in CI/config files
echo "=== Checking for Python 3.11 in CI/config files ==="
rg -n "python.*3\.11|3\.11.*python" --type=yaml --type=toml -i || echo "No matches found"
echo -e "\n=== Checking for Python version in any CI config ==="
rg -n "python" --type=yaml | head -20 || echo "No matches found"Repository: DagsHub/client
Length of output: 180
🏁 Script executed:
#!/bin/bash
# Find conf.py and check for autodoc usage
echo "=== Finding conf.py files ==="
fd "conf.py" --type=f
echo -e "\n=== Checking conf.py for autodoc and extensions ==="
fd "conf.py" --type=f --exec grep -n "autodoc\|extensions\|python_requires" {} +Repository: DagsHub/client
Length of output: 540
🏁 Script executed:
#!/bin/bash
# Check for setup.py, setup.cfg, or pyproject.toml that might specify Python requirements
echo "=== Checking Python version requirements in project files ==="
fd "setup.py|setup.cfg|pyproject.toml" --type=f --exec grep -n "python_requires\|Programming Language" {} +Repository: DagsHub/client
Length of output: 310
🏁 Script executed:
cat -n docs/source/conf.pyRepository: DagsHub/client
Length of output: 3149
🌐 Web query:
Sphinx 9.1.0 release notes Python 3.11 support breaking changes
💡 Result:
Sphinx 9.1.0 was released Dec 31, 2025 [1].
Python 3.11 support
- Python 3.11 is not supported in Sphinx 9.1.0—it was explicitly dropped [1].
- PyPI metadata for Sphinx 9.1.0 shows Requires: Python >= 3.12 (so you need Python 3.12+) [2].
Breaking changes / compatibility-impacting changes (9.1.0)
- Dropped Python 3.11 support [1].
- Dropped Docutils 0.20 support (you must use a newer Docutils) [1].
Sources: Sphinx changelog (9.1.0) [1], PyPI project metadata [2].
🌐 Web query:
Sphinx 9.0 autodoc breaking changes autodoc_default_flags deprecated
💡 Result:
Sphinx 9.0 autodoc breaking / incompatible changes
sphinx.ext.autodocwas “substantially rewritten” in Sphinx 9.0.0 (released Nov 30, 2025), and Sphinx explicitly warns there may be incompatible changes in edge cases, especially for extensions that interact with autodoc internals. To mitigate this, Sphinx 9 addsautodoc_use_legacy_class_basedto switch back to the pre-9.0 implementation. [1]- In Sphinx 9.0.1 (released Dec 1, 2025), autodoc “options objects” had compatibility churn: Sphinx restored a mapping interface, but also deprecated that mapping interface. If you have extensions that treat autodoc options like a dict, expect deprecation warnings / needed updates. [1]
autodoc_default_flags deprecation (what to do now)
autodoc_default_flagshas been deprecated since Sphinx 1.8.0b1 (i.e., this is not new to 9.0). [2]- The replacement is
autodoc_default_options, a dict applied to all autodoc directives;NoneorTruemeans “flag enabled”. [3]
Typical migration:
# old (deprecated for years)
autodoc_default_flags = ['members', 'undoc-members', 'show-inheritance']
# new
autodoc_default_options = {
'members': None,
'undoc-members': True,
'show-inheritance': True,
}[2][3]
Sources: Sphinx 9.0 changelog [1], Sphinx 1.8 changelog (deprecates autodoc_default_flags) [2], current autodoc config docs (autodoc_default_options) [3].
Update autodoc_default_flags to autodoc_default_options and test autodoc compatibility
Sphinx 9.1.0 (released Dec 31, 2025) involves significant changes to sphinx.ext.autodoc:
- The autodoc extension was substantially rewritten in Sphinx 9.0, with possible edge-case incompatibilities, especially for extensions that interact with autodoc internals.
- Your
conf.pyuses the deprecatedautodoc_default_flags = ["inherited-members"](line 68), which has been deprecated since Sphinx 1.8.0b1. This must be migrated toautodoc_default_options:
Migration example
# Replace this (docs/source/conf.py:68)
autodoc_default_flags = ["inherited-members"]
# With this
autodoc_default_options = {
"inherited-members": None,
}After the upgrade, test autodoc output carefully, especially with sphinx_autodoc_typehints (line 29), which may require compatibility adjustments for the rewritten autodoc internals. Use autodoc_use_legacy_class_based = True if you encounter autodoc behavior changes that break documentation generation.
| @@ -1,9 +1,9 @@ | |||
| setuptools==80.9.0 | |||
| pytest==8.3.5 | |||
| setuptools==82.0.0 | |||
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for direct pkg_resources usage in Python source files
rg "import pkg_resources|from pkg_resources" --type=py -n
# Also check for pkg_resources in setup.py or setup.cfg
fd -e "setup.py" -o -e "setup.cfg" -o -e "pyproject.toml" | while read f; do
if [ -f "$f" ]; then
echo "=== $f ==="
grep -n "pkg_resources" "$f" 2>/dev/null || echo "No pkg_resources found"
fi
done
# Check for any egg_info or dist-info references that might implicitly use pkg_resources
rg "egg.info|dist.info" --type=py -n | head -20Repository: DagsHub/client
Length of output: 174
🏁 Script executed:
#!/bin/bash
# Check for direct pkg_resources usage in Python source files
echo "=== Searching for pkg_resources imports ==="
rg "import pkg_resources|from pkg_resources" --type=py -n
echo -e "\n=== Checking setup.py files ==="
find . -name "setup.py" -type f | head -20 | xargs grep -n "pkg_resources" 2>/dev/null || echo "No pkg_resources in setup.py files"
echo -e "\n=== Checking setup.cfg files ==="
find . -name "setup.cfg" -type f | head -20 | xargs grep -n "pkg_resources" 2>/dev/null || echo "No pkg_resources in setup.cfg files"
echo -e "\n=== Checking pyproject.toml files ==="
find . -name "pyproject.toml" -type f | head -20 | xargs grep -n "pkg_resources" 2>/dev/null || echo "No pkg_resources in pyproject.toml files"
echo -e "\n=== Checking requirements files ==="
find . -name "requirements*.txt" -type f | xargs grep -n "pkg_resources" 2>/dev/null || echo "No pkg_resources in requirements files"
echo -e "\n=== Repository structure (to understand project) ==="
ls -laRepository: DagsHub/client
Length of output: 1752
🏁 Script executed:
#!/bin/bash
# Read setup.py to check dependencies
echo "=== setup.py content ==="
cat setup.py
echo -e "\n=== pyproject.toml content ==="
cat pyproject.toml
echo -e "\n=== requirements-dev.txt content ==="
cat requirements-dev.txtRepository: DagsHub/client
Length of output: 2539
setuptools==82.0.0 removes pkg_resources — verify dev environment compatibility
While setuptools==82.0.0 removed pkg_resources, this project does not directly depend on it. The codebase has no pkg_resources imports, and production dependencies (install_requires in setup.py) do not use it. However, the dev dependencies — fiftyone==1.13.2, datasets==4.5.0, and ultralytics==8.4.14 — may require pkg_resources internally. Verify these dev packages are compatible with setuptools 82.0.0, or consider pinning to an earlier setuptools version for development.
| setuptools==80.9.0 | ||
| pytest==8.3.5 | ||
| setuptools==82.0.0 | ||
| pytest==9.0.2 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for deprecated pytest patterns that would break in pytest 9.0.2
echo "=== Searching for py.path.local usage ==="
rg -n "py\.path|py_path|\.local\(" --type=py -C2 2>/dev/null | head -50
echo -e "\n=== Searching for yield_fixture ==="
rg -n "yield_fixture" --type=py -C2 2>/dev/null
echo -e "\n=== Searching for deprecated hook parameters ==="
rg -n "pytest_ignore_collect|pytest_collect_file|pytest_pycollect_makemodule|pytest_report_header|pytest_report_collectionfinish" --type=py -C3 2>/dev/null | head -50
echo -e "\n=== Checking for conftest.py files ==="
find . -name "conftest.py" -type f 2>/dev/null
echo -e "\n=== Checking Python version requirements ==="
if [ -f "setup.py" ]; then
echo "=== setup.py ===" && cat setup.py | head -30
fi
if [ -f "pyproject.toml" ]; then
echo "=== pyproject.toml ===" && cat pyproject.toml | head -50
fi
if [ -f "setup.cfg" ]; then
echo "=== setup.cfg ===" && cat setup.cfg | head -30
fiRepository: DagsHub/client
Length of output: 1363
🏁 Script executed:
#!/bin/bash
# Get complete Python version requirements
echo "=== Full setup.py python_requires ==="
grep -A 50 "python_requires\|setup(" setup.py | head -60
echo -e "\n=== Full pyproject.toml ==="
cat pyproject.toml 2>/dev/null | head -100
echo -e "\n=== Content of conftest.py files ==="
for f in ./tests/data_engine/conftest.py ./tests/dda/conftest.py ./tests/dda/filesystem/conftest.py ./tests/dda/upload/conftest.py ./tests/model_loading/conftest.py; do
if [ -f "$f" ]; then
echo "--- $f ---"
wc -l "$f"
cat -n "$f" | head -50
fi
done
echo -e "\n=== Check for any pytest imports/configs ==="
rg -n "import pytest|from pytest|@pytest" --type=py --max-count=20Repository: DagsHub/client
Length of output: 14395
🏁 Script executed:
#!/bin/bash
# Verify Python 3.9 compatibility issue with pytest 9.0.2
echo "=== Checking pytest 9.0.2 Python requirements ==="
rg -n "python" requirements-dev.txt -i
echo -e "\n=== Checking if Python 3.9 is explicitly tested in CI ==="
find . -name "*.yml" -o -name "*.yaml" | xargs grep -l "python\|pytest" 2>/dev/null | head -5
if [ -f ".github/workflows/test.yml" ] || [ -f ".github/workflows/tests.yml" ]; then
echo "=== GitHub Actions test workflow ==="
cat .github/workflows/test.yml 2>/dev/null || cat .github/workflows/tests.yml 2>/dev/null | head -50
fi
echo -e "\n=== Check tox.ini or similar test configuration ==="
find . -name "tox.ini" -o -name "pytest.ini" -o -name "setup.cfg" | xargs cat 2>/dev/null | head -50Repository: DagsHub/client
Length of output: 507
🏁 Script executed:
#!/bin/bash
# Check CI/CD workflow to see Python versions being tested
echo "=== GitHub Actions python-package.yml ==="
cat .github/workflows/python-package.yml
echo -e "\n=== Checking all pytest version references ==="
rg "pytest" requirements*.txtRepository: DagsHub/client
Length of output: 1569
pytest==9.0.2 requires Python 3.10+ but the project supports Python 3.9 — CI tests will fail
The upgrade to pytest 9.0.2 breaks the project's Python 3.9 support: pytest 9.0 dropped Python 3.9 support, requiring Python 3.10 or later. Your CI workflow currently tests against Python 3.9, 3.10, 3.11, 3.12, and 3.13, and the package's setup.py specifies python_requires=">=3.9". This version constraint conflict will cause test failures on Python 3.9.
Options:
- Update
python_requiresin setup.py to">=3.10"if dropping Python 3.9 support is acceptable - Pin pytest to 8.3.x if Python 3.9 support must be maintained
Additional breaking changes in pytest 9.0 (for reference): PytestRemovedIn9Warning deprecations are now errors, CI environment detection now requires non-empty $CI or $BUILD_NUMBER variables, and overlapping test path arguments are now deduplicated.
|
Closing this in favor of #658 |
Update sphinx from 7.3.7 to 9.1.0.
Changelog
9.1.0
Links
Update furo from 2024.5.6 to 2025.12.19.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
Update sphinx-autobuild from 2024.4.16 to 2025.8.25.
Changelog
2025.08.25
2024.10.03
2024.10.02
2024.09.19
2024.09.18
2024.09.17
2024.09.03
Links
Update sphinx-sitemap from 2.6.0 to 2.9.0.
Changelog
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
Links
Update sphinx-click from 5.0.1 to 6.2.0.
Changelog
Links
Update sphinx-autodoc-typehints from 2.3.0 to 3.6.3.
Changelog
3.6.3
3.6.2
3.6.1
3.6.0
3.5.2
3.5.1
3.5.0
3.4.0
3.3.0
3.2.0
3.1.0
3.0.1
3.0.0
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
Links
Update setuptools from 80.9.0 to 82.0.0.
Changelog
82.0.0
81.0.0
80.10.2
80.10.1
80.10.0
Links
Update pytest from 8.3.5 to 9.0.2.
Changelog
9.0.2
9.0.1
9.0.0
8.4.2
8.4.1
8.4.0
Links
Update pytest-env from 1.1.5 to 1.5.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
Update pytest-mock from 3.14.0 to 3.15.1.
Changelog
3.15.1
3.15.0
3.14.1
Links
Update fiftyone from 1.5.2 to 1.13.2.
Changelog
1.13.2
1.13.1
1.13.0
1.12.0