Summary
Migrate packaging from legacy setup.py to a modern pyproject.toml-based configuration (PEP 621 / setuptools).
Motivation
- Standardize build metadata for tools like
pip, build, and CI
- Remove legacy manual publish patterns and simplify maintenance
- Align with current Python packaging best practices
Scope
- Add
pyproject.toml with [build-system], [project], and setuptools config
- Move package metadata, dependencies (including platform-specific
bleak pins), and dev extras from setup.py
- Keep version in
tapsdk/__version__.py (dynamic version attr) unless we decide to consolidate
- Decide how to handle long description (
Readme.md + History.md concatenation today)
- Remove or reduce
setup.py to a thin shim if still needed
- Verify
python -m build produces equivalent sdist/wheel
- Confirm automated PyPI publish workflow still works after migration
Out of scope
- Changing runtime SDK code
- Changing release/tag process
Acceptance criteria
Related
Summary
Migrate packaging from legacy
setup.pyto a modernpyproject.toml-based configuration (PEP 621 / setuptools).Motivation
pip,build, and CIScope
pyproject.tomlwith[build-system],[project], and setuptools configbleakpins), and dev extras fromsetup.pytapsdk/__version__.py(dynamic version attr) unless we decide to consolidateReadme.md+History.mdconcatenation today)setup.pyto a thin shim if still neededpython -m buildproduces equivalent sdist/wheelOut of scope
Acceptance criteria
pyproject.tomlis the source of truth for package metadatapip install -e .[dev]works on Linux, macOS, and WindowsRelated