The current setup.py-based installation is fully functional, but it could benefit from adopting pyproject.toml to follow modern packaging standards (PEP 517/518). This doesn't require removing setup.py, instead, we can gradually migrate static metadata and build requirements to a pyproject.toml while keeping the install scripts in setup.py, if needed.
# Motivation
- Standardization:
pyproject.toml is the officially recommended way to define build systems and package metadata.
- Tool compatibility: Improves compatibility with modern packaging tools like uv.
- Cleaner separation: Metadata becomes declarative and easier to manage, while setup.py can be reserved for the custom install logic.
- Better developer experience: IDEs, linters, formatters, and test runners already use
pyproject.toml for config, this aligns build configuration with that.