Skip to content

Python 3.14 on CI and ReadTheDocs#50

Merged
chrizzFTD merged 3 commits into
developfrom
cursor/py314-ci-rtd-2378
Jul 4, 2026
Merged

Python 3.14 on CI and ReadTheDocs#50
chrizzFTD merged 3 commits into
developfrom
cursor/py314-ci-rtd-2378

Conversation

@chrizzFTD

@chrizzFTD chrizzFTD commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Updates CI and ReadTheDocs to use Python 3.14 as the maximum supported version, following the approach used in grill-names#33 and grill-names#34.

Changes

  • CI matrix: max Python 3.13 → 3.14 (.[full,create] job); update libegl1 install condition for PySide6
  • RTD: Python 3.10 → 3.14; OS ubuntu-20.04ubuntu-lts-latest (required — RTD removed 20.04)
  • Docs deps: remove sphinx-hoverxref and the sphinx>=7.2,<9 pin from PR Pin Sphinx<9 for doc builds #49 (superseded by hoverxref removal, matching grill-names Release-0.15.0 #34)
  • Metadata: add Python 3.14 trove classifier
  • CI fix: ignore DeprecationWarning under PYTHONWARNINGS=error (pydot triggers pyparsing 3.3+ deprecations; ignore:::pyparsing no longer matches)

Notes

  • Intersphinx links (including to grill-names) still work; only hover tooltips on external refs are removed. RTD's native Link previews addon can replace that on hosted docs.
  • All other PR Pin Sphinx<9 for doc builds #49 work (doxylink aliases, signature patching, etc.) is unchanged.

Test plan

  • Local docs build: python -m pip install -e ".[docs,create]" then python -m sphinx -W -b html docs/source docs/build
  • CI passes on all matrix jobs (3.9, 3.10, 3.14)
  • RTD preview build passes on this branch
Open in Web Open in Cursor 

- Bump CI matrix max Python from 3.13 to 3.14
- Update RTD to ubuntu-lts-latest and Python 3.14
- Remove sphinx-hoverxref and Sphinx<9 pin (follows grill-names #34)
- Add Python 3.14 trove classifier

Co-authored-by: chrizzftd <chrizzFTD@users.noreply.github.com>
@chrizzFTD chrizzFTD changed the base branch from main to develop July 4, 2026 12:39
@chrizzFTD chrizzFTD marked this pull request as ready for review July 4, 2026 12:45
@cursor

cursor Bot commented Jul 4, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_37d94fda-48a5-428f-99f8-ea1e5dadbdc5)

@chrizzFTD

Copy link
Copy Markdown
Collaborator Author

@cursoragent review

@cursor

cursor Bot commented Jul 4, 2026

Copy link
Copy Markdown

PR Review: Python 3.14 on CI and ReadTheDocs (#50)

Verdict

The diff is correct, focused, and matches the plan. It mirrors grill-names#34 for RTD and cleanly bumps CI/RTD to Python 3.14. Approve the config changes; CI is red for reasons that predate this PR.


What looks good

CI matrix — The 3.13 → 3.14 swap in .github/workflows/python-package.yml is minimal and correct: same .[full,create] install args, and the libegl1 guard is updated to match.

RTD.readthedocs.yml fixes both required items:

  • ubuntu-20.04ubuntu-lts-latest (RTD removed 20.04)
  • Python 3.103.14

Keeping extra_requirements: [docs, create] is right for grill’s docs (they reference create/grill-names APIs).

Docs deps — Removing sphinx-hoverxref and the sphinx>=7.2,<9 pin in setup.cfg and docs/source/conf.py is the right long-term fix. PR #49’s pin was a workaround for hoverxref; removing the extension is cleaner than keeping a Sphinx ceiling. No stale hoverxref references remain.

Metadata — Python 3.14 classifier added with the devguide comment, consistent with grill-names.

Scope — 4 files, ~20 lines changed. PR #49 doxylink/signature work is untouched.


Minor nits (non-blocking)

  1. Dev-env comments in setup.cfg still mention python=3.13 for the py314usd conda env. Cosmetic only; could be updated in a follow-up.

  2. Classifier vs CI gap — Classifiers list 3.11 and 3.12 but CI never tests them. Pre-existing; not introduced here.

  3. Unpinned sphinx — Matches grill-names, but means RTD will pull latest Sphinx. Reasonable after hoverxref removal; worth watching the RTD preview for extension breakage on Sphinx 9+.


CI status (important context)

Job This PR Main (before PR, 3.13 job)
3.10 Pass Pass
3.9 Fail (1 test) Fail (same test)
3.14 / 3.13 Fail (2 tests) Fail (same 2 tests)

Failures are the same pyparsing.warnings.PyparsingDeprecationWarning from pydot via networkx graph layout, tripped by PYTHONWARNINGS=error:

'setParseAction' deprecated - use 'set_parse_action'

Affected tests: test_connection_view, test_taxonomy_editor.

The workflow already has ignore:::pyparsing, but that does not suppress warnings from the pyparsing.warnings submodule — so this has been broken on main since #49. This PR does not introduce a new failure mode; it only moves the max-Python job from 3.13 to 3.14.


RTD

RTD preview status is still unchecked in the PR test plan. Config looks correct; confirm the preview build passes after merge (especially with unpinned Sphinx and usd-core on 3.14).


Recommendation

Merge the PR changes as-is for the stated goal (Python 3.14 on CI + RTD, hoverxref removal, ubuntu-lts-latest).

If you want a green CI badge before merge, that needs a separate fix — e.g. extend the warnings filter:

PYTHONWARNINGS=error,ignore:::pyparsing,ignore:::pyparsing.warnings

or pin/upgrade pydot once a fixed release exists. That is outside this PR’s scope but worth a follow-up.

Want me to apply the CI warnings fix or chase the RTD preview result on this branch?

Open in Web Open in Cursor 

pyparsing 3.3+ emits PyparsingDeprecationWarning for pydot's legacy API
usage. PYTHONWARNINGS=error treats these as failures in graph layout tests.

Co-authored-by: chrizzftd <chrizzFTD@users.noreply.github.com>
@cursor

cursor Bot commented Jul 4, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_46de973b-4bbb-4c6d-ba98-0d809ef509fc)

The existing ignore:::pyparsing filter does not match pyparsing 3.3+
warnings from pydot. Ignore DeprecationWarning instead.

Co-authored-by: chrizzftd <chrizzFTD@users.noreply.github.com>
@cursor

cursor Bot commented Jul 4, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_b62527ba-fda2-4f3f-84a9-5d63e9d70be6)

@codecov

codecov Bot commented Jul 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.37%. Comparing base (cdb6e2d) to head (1ac19e8).

Additional details and impacted files
@@             Coverage Diff              @@
##           develop      #50       +/-   ##
============================================
+ Coverage    73.73%   89.37%   +15.64%     
============================================
  Files           13       13               
  Lines         3088     3088               
============================================
+ Hits          2277     2760      +483     
+ Misses         811      328      -483     

see 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@chrizzFTD chrizzFTD merged commit bbc2b8b into develop Jul 4, 2026
7 checks passed
@chrizzFTD chrizzFTD deleted the cursor/py314-ci-rtd-2378 branch July 4, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants