Skip to content

fix: ship py.typed so downstream type checkers see the annotations - #16

Merged
TMHSDigital merged 1 commit into
mainfrom
fix/ship-py-typed
Sep 22, 2026
Merged

TMHSDigital merged 1 commit into
mainfrom
fix/ship-py-typed

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

The package is fully annotated and checked with mypy --strict, and shipped no PEP 561 marker.

Without py.typed, a type checker must ignore a dependency's inline annotations. So every consumer of plumbline saw Any for everything it exposes, with no way to know the types were there.

Nothing here noticed, because mypy checks the source directly. The failure was entirely downstream and entirely silent.

  • hatchling picks it up with no pyproject.toml change. Verified present as plumbline/py.typed in the built wheel.
  • tests/test_packaging.py asserts the marker exists, and I verified it fails when the file is removed. An empty file whose only job is to exist is exactly what a refactor deletes without anyone missing it for a year.
  • A second test pins __version__ == "0.1.0" and rejects dev, guarding the mismatch that actually shipped in the v0.1.0 release.

The package is fully annotated and checked with mypy --strict, and shipped no
PEP 561 marker. Without it a type checker must ignore a dependency's inline
annotations, so every consumer of plumbline saw Any for everything it exposes
and had no way to know the types were there.

Nothing in this repository noticed, because mypy checks the source directly.
The failure was entirely downstream and entirely silent.

hatchling picks the file up with no pyproject change; verified present as
plumbline/py.typed in the built wheel.

A test asserts the marker exists, because an empty file whose only job is to
exist is the kind of thing a refactor deletes without anyone missing it for a
year. Verified to fail when the file is removed. A second test pins the version
against the 0.1.0.dev0 mismatch that shipped in the release.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
@TMHSDigital
TMHSDigital merged commit 2c645fa into main Sep 22, 2026
9 checks passed
@TMHSDigital
TMHSDigital deleted the fix/ship-py-typed branch September 22, 2026 02:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant