Skip to content

Port project packaging to pyproject.toml #35

Description

@ilouzl

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

  • pyproject.toml is the source of truth for package metadata
  • pip install -e .[dev] works on Linux, macOS, and Windows
  • CI passes
  • Tag-triggered PyPI publish workflow succeeds

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions