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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions