Skip to content

🔧 Replace rye with tox and add sphinx-needs version matrix#65

Merged
chrisjsewell merged 6 commits intomainfrom
improve-ci
Apr 27, 2026
Merged

🔧 Replace rye with tox and add sphinx-needs version matrix#65
chrisjsewell merged 6 commits intomainfrom
improve-ci

Conversation

@chrisjsewell
Copy link
Copy Markdown
Member

Rye was only used for script shortcuts and dev dependency management,
duplicating what tox already provides. Consolidating on tox as the
single task runner simplifies onboarding (one tool to install),
removes the custom setup_rye GitHub Action, and makes CI consistent
with local development workflows.

The test matrix now includes sphinx-needs as a third axis
(py{312,313,314}-sphinx{7,8,9}-needs{5,6,7,8}), enabling detection
of compatibility issues across the full support range. CI runs the
boundary combinations — minimal (py312-sphinx7-needs5) and maximal
(py314-sphinx8-needs8) — to catch regressions without excessive
job count.

  • Remove [tool.rye] and [tool.rye.scripts] from pyproject.toml
  • Delete .github/actions/setup_rye/ composite action
  • Update CI workflows (ci, coverage, gh_pages) to use tox + tox-uv
  • Add sphinx-needs version factors to tox.ini test environments
  • Add tox demo environment replacing rye demo:clean chain
  • Update AGENTS.md, contributing.rst, and demo README

Rye was only used for script shortcuts and dev dependency management,
duplicating what tox already provides. Consolidating on tox as the
single task runner simplifies onboarding (one tool to install),
removes the custom setup_rye GitHub Action, and makes CI consistent
with local development workflows.

The test matrix now includes sphinx-needs as a third axis
(py{312,313,314}-sphinx{7,8,9}-needs{5,6,7,8}), enabling detection
of compatibility issues across the full support range. CI runs the
boundary combinations — minimal (py312-sphinx7-needs5) and maximal
(py314-sphinx8-needs8) — to catch regressions without excessive
job count.

- Remove [tool.rye] and [tool.rye.scripts] from pyproject.toml
- Delete .github/actions/setup_rye/ composite action
- Update CI workflows (ci, coverage, gh_pages) to use tox + tox-uv
- Add sphinx-needs version factors to tox.ini test environments
- Add tox demo environment replacing rye demo:clean chain
- Update AGENTS.md, contributing.rst, and demo README
…aps error messages in Rich panels whose line breaks depend on terminal width. In CI environments with narrow terminals, long assertion substrings get split across lines by box-drawing characters, causing test_analyse_config_negative (and similar) to fail. Add _normalize_output() helper that strips Rich panel formatting and collapses whitespace before substring matching. Applied to test_analyse_config_negative, test_analyse_project_negative, and test_write_rst_negative.

Typer wraps error messages in Rich panels whose line breaks depend
on terminal width. In CI environments with narrow terminals, long
assertion substrings get split across lines by box-drawing characters,
causing test_analyse_config_negative (and similar) to fail.

Add _normalize_output() helper that strips Rich panel formatting
and collapses whitespace before substring matching. Applied to
test_analyse_config_negative, test_analyse_project_negative, and
test_write_rst_negative.
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.06%. Comparing base (32baf80) to head (efdb3fe).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #65      +/-   ##
==========================================
+ Coverage   90.04%   90.06%   +0.02%     
==========================================
  Files          29       29              
  Lines        2621     2628       +7     
  Branches      306      306              
==========================================
+ Hits         2360     2367       +7     
  Misses        165      165              
  Partials       96       96              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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

@patdhlk patdhlk self-requested a review April 27, 2026 06:28
Copy link
Copy Markdown
Contributor

@patdhlk patdhlk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR - only two minor findings

Comment thread pyproject.toml
Comment thread docs/source/development/contributing.rst
@chrisjsewell chrisjsewell requested a review from patdhlk April 27, 2026 07:09
Copy link
Copy Markdown
Contributor

@patdhlk patdhlk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@chrisjsewell chrisjsewell merged commit cdf9e58 into main Apr 27, 2026
11 checks passed
@chrisjsewell chrisjsewell deleted the improve-ci branch April 27, 2026 08:49
@patdhlk patdhlk mentioned this pull request Apr 29, 2026
4 tasks
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.

3 participants