← All tasks
pythonpyathena-dev/PyAthena #737Not a task: already works

Remove dead [tool.sqla_testing] from pyproject.toml (setup.cfg cannot migrate)

envgap__pyathena-dev__PyAthena-737

01 / FAILURE SIGNATURE

As reported upstream

No identifying execution failure has been captured.
Not a benchmark task.
  • The project already builds and runs before the fix, so there is nothing to repair.

02 / ENVIRONMENT RECIPE

Base commit
19a50f89b97e0718ed6208ffddf715c970512c2f
Manifest
pyproject.toml
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

pyathena-dev/PyAthena #737 · read the original issue
## Summary

`pyproject.toml` contains a `[tool.sqla_testing]` block (lines 129-131) that duplicates `setup.cfg`, but **SQLAlchemy's test plugin never reads it** — it is dead configuration and should be removed. Conversely, `setup.cfg` **cannot** be migrated to `pyproject.toml` today, so it must stay.

## Investigation

SQLAlchemy's testing plugin hardcodes reading `setup.cfg` / `test.cfg` via `configparser` and has no TOML/pyproject support:

```python
# sqlalchemy/testing/plugin/plugin_base.py (2.0.46; identical on upstream main)
def read_config(root_path):
    global file_config
    file_config = configparser.ConfigParser()
    file_config.read(
        [str(root_path / "setup.cfg"), str(root_path / "test.cfg")]
    )
```

- `requirement_cls` is read from `file_config.get("sqla_testing", "requirement_cls")` (CLI override `--requirements` exists).
- `profile_file` is read from `file_config.get("sqla_testing", "profile_file")` and has **no CLI override and no default** — it can only come from `setup.cfg`/`test.cfg`. Deleting `setup.cfg` breaks `just test sqla` / `sqla-async` with `configparser.NoSectionError`.
- Verified on the installed SQLAlchemy 2.0.46 and on upstream `main` — no released or unreleased version reads this config from `pyproject.toml`.
- Nothing else in the repo (justfile, CI workflows, docs) references `setup.cfg`; it exists solely for SQLAlchemy's test plugin.

## Action items

- [ ] Remove the never-read `[tool.sqla_testing]` block from `pyproject.toml` (lines 129-131) — no behavioral change.
- [ ] Add a comment at the top of `setup.cfg` explaining it exists solely for SQLAlchemy's compliance test plugin (`sqlalchemy.testing.plugin.plugin_base.read_config`) and cannot move to `pyproject.toml` until upstream SQLAlchemy supports it.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]