Skip to content

Switch from Nox to Tox for multi-version Python testing#550

Open
tkoyama010 wants to merge 4 commits intomainfrom
switch-nox-to-tox
Open

Switch from Nox to Tox for multi-version Python testing#550
tkoyama010 wants to merge 4 commits intomainfrom
switch-nox-to-tox

Conversation

@tkoyama010
Copy link
Member

Summary

This PR replaces Nox with Tox for test automation, providing support for multiple Python versions.

Changes

  • Add tox.ini with support for Python 3.10, 3.11, and 3.12
  • Define test environments:
    • py310, py311, py312 - Run tests with pytest
    • docs - Build documentation with Sphinx
    • lint - Run pre-commit hooks
  • Remove noxfile.py
  • Update GitHub Actions workflow to use tox

Usage

Run all tests:

tox

Run specific Python version:

tox -e py311

Build docs:

tox -e docs

Run linting:

tox -e lint

Benefits

  • Better multi-version Python testing support
  • Standard tool widely used in the Python ecosystem
  • Isolated test environments per Python version
  • Easy to integrate with CI/CD pipelines

- Add tox.ini with support for Python 3.10, 3.11, and 3.12
- Define test environments:
  - py310, py311, py312 - Run tests with pytest
  - docs - Build documentation with Sphinx
  - lint - Run pre-commit hooks
- Remove noxfile.py
- Update GitHub Actions workflow to use tox
Copilot AI review requested due to automatic review settings January 17, 2026 07:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the project's test automation from Nox to Tox, maintaining support for Python 3.10, 3.11, and 3.12 (dropping 3.9 support, which is consistent with the project's existing requires-python = '>=3.10' requirement in pyproject.toml).

Changes:

  • Adds tox.ini configuration with test, docs, and lint environments
  • Removes noxfile.py
  • Updates GitHub Actions workflow to use tox with tox-gh-actions plugin

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
tox.ini New tox configuration file defining test environments for Python 3.10-3.12, plus docs and lint environments
noxfile.py Removed nox configuration that previously supported Python 3.9-3.12
.github/workflows/testing-and-deployment.yml Updated to install and run tox instead of directly installing test dependencies and running pytest

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Remove noxfile.py (switching to tox)
- Update tox.ini to support Python 3.11, 3.12, and 3.13 (matching updated noxfile)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants