Convert the INI-format tox configuration to the recommended TOML
format (tox.toml). The environment list and all behaviours are
preserved; tox list output is identical before and after.
Key translation notes:
- [tox] top-level keys → bare top-level keys
- [testenv] → [env_run_base]
- [testenv:name] → [env.name]
- set_env → TOML subtable / inline table; empty INI value → `{}`
- commands → list of lists; `{posargs:-n auto}` → replace/default inline table
- basepython → base_python, changedir → change_dir
- Generative section `[testenv:{py314,...}-min]` (INI-only feature) expanded
into nine explicit `[env.XXX-min]` sections
Assisted-by: Copilot:claude-sonnet-4.6
Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
Replace nine identical `[env.XXX-min]` sections with a single `[env_base.min]` template. The env_base factors mechanism generates min-py314, min-py313, ... (prefix ordering is required by TOML's env_base, which always prepends the template name). env_list uses a product dict to keep the min variants concise. coverage.depends is updated to the new names. Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
pip 23.2 fails on Python 3.15 with: TypeError: Can't instantiate abstract class WheelDistribution without an implementation for abstract method 'locate_file' WheelDistribution.locate_file() was added in pip 25.0 (January 2025). Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
pip 25.0/25.1 fail on Python 3.15 with: AttributeError: module 'typing' has no attribute 'no_type_check_decorator' typing.no_type_check_decorator was removed in Python 3.15. pip's vendored typing_extensions still referenced it until pip 25.3. Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
henryiii marked this pull request as ready for review
April 25, 2026 03:19