Skip to content

build: raise the setuptools floor to 69.0.0 so wheels ship py.typed (#2062) - #2064

Merged
JarryShaw merged 1 commit into
mainfrom
fix/2062-py-typed-floor
Oct 23, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/2062-py-typed-floor

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner
  • Searched for similar pull requests
  • Followed the coding style (make pylint, make mypy, make isort)
  • make test passes, and a test case covers the change
  • Added a changelog entry

What is the purpose of your pull request?

  • fix — corrects a defect

Description of your pull request and other information

Closes #2062. Following the owner's ruling, this raises the setuptools floor rather than declaring py.typed.

  • Cause: nothing declares pcapkit/py.typed. MANIFEST.in includes only *.py, and [tool.setuptools.package-data] covers only pcapkit._extern. So it ships only when setuptools adds type files itself, which 69.0.0 started doing: "Include type information (py.typed, *.pyi) by default (#3136)".
  • Bisect: wheels built with --no-build-isolation lack py.typed on 62.3.0, 65.0.0 and 68.2.2, and include it on 69.0.0 and 75.3.4. 68.2.2 and 69.0.0 are consecutive releases.
  • Fix: [build-system] requires becomes setuptools>=69.0.0, and the conda build and host pins in conda/pypcapkit/meta.yaml match. 69.0.0 declares requires_python >=3.8. The fix(conda): vendored dependencies ship without their data files #1814 reason for the old floor, ** globs, still holds.
  • Evidence:
    • Python 3.8: the 69.0.0 build has 528 files against 68.2.2's 527, and the one difference is py.typed.
    • Python 3.14: the 69.0.0 and 84.2.1 builds both ship py.typed.
    • File list: apart from py.typed, it matches main's.
  • Tests: the new tests/project/test_setuptools_floor_2062.py pins the >=69.0.0 floor, the matching conda pins, and the presence of pcapkit/py.typed. It fails on main with (62, 3, 0) not >= (69, 0, 0). The changelog tests pass, and CHANGELOG.md is regenerated.

@JarryShaw JarryShaw added bug Issues reporting a defect (set by the bug report template; a default, not an assessment) dependencies Pull requests that update a dependency file python Pull requests that update Python code review: running A cross-review is in flight against the current head - no verdict yet labels Oct 22, 2026
…2062)

A wheel built at the old floor, 62.3.0, without build isolation left out
pcapkit/py.typed: nothing declares it, and setuptools packages it unasked
only from 69.0.0 (pypa/setuptools#3136). Per the owner's ruling, bump
the floor rather than add a package-data entry.

- pyproject.toml: [build-system] requires "setuptools>=69.0.0"; the
  comment gives the reason and keeps #1814's "**" glob rationale.
- conda/pypcapkit/meta.yaml: build and host pins match.
- tests/project/test_setuptools_floor_2062.py pins the floor at or
  above 69.0.0 and the conda pins to it; fails on main.
- 1.5.0 changelog entry; CHANGELOG.md regenerated.

Wheels measured on 3.8 and 3.14 at 69.0.0 ship py.typed, file list
identical to 84.2.1's. Related project tests pass, run one by one.
@JarryShaw
JarryShaw force-pushed the fix/2062-py-typed-floor branch from 49e39e9 to 24f9dd7 Compare October 22, 2026 23:21
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 49e39e9e0 (Sonnet cross-review). The reviewer confirmed setuptools v69.0.0's NEWS entry, that 68.2.2 and 69.0.0 are consecutive releases, and that both declare requires_python >=3.8. A wheel built from this tree at 69.0.0 with --no-build-isolation contains pcapkit/py.typed. No 62.3.0 pin is left, and the conda build and host pins match. The floor test fails on main's files and passes here. Pushed since: 24f9dd7a5, which only adds :pr:2064`` to the changelog entry and regenerates CHANGELOG.md. I checked that delta myself (2 lines; `test_changelog_md` passes).

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 22, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 22, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO still holds at 24f9dd7a5. The review ran on 49e39e9e0, and git range-diff shows the only change since is :pr:2064`` / [#2064] in the changelog entry. I checked it: `util/changelog_md.py --check` is in step, and the changelog readers (`test_changelog_md`, `test_conventions_doc_claims` and four more) give 214 passed. CI is still running; the ordering leg is queued.

@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 91.52% (unit tier, Python 3.15, 24f9dd7a5, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19599 881 2618 867 92.11%
pcapkit/corekit 2565 71 812 37 96.56%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 2930 23 1022 25 98.79%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17414 219 4574 185 98.14%
pcapkit/toolkit 869 36 298 10 95.20%
pcapkit/utilities 473 7 136 5 98.03%
pcapkit/vendor 4431 1995 1018 167 51.73%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw

Copy link
Copy Markdown
Owner Author

Ready to merge at 24f9dd7a5: the review is GOOD TO GO and CI is complete (56 passed, 0 failed). The ordering leg ran 1948 tests with 0 failures. The 3.8–3.10 KTLO legs show 0 failing tests, and the PR is based on current main (c98541f84). #2066 edits the same pyproject.toml and changelog, so whichever merges second will get a conflict, and I'll rebase it.

@JarryShaw
JarryShaw merged commit d7581eb into main Oct 23, 2026
61 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Oct 23, 2026
@JarryShaw
JarryShaw deleted the fix/2062-py-typed-floor branch October 23, 2026 01:51
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 23, 2026
@JarryShaw JarryShaw added this to the PyPCAPKit v1.5 milestone Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Issues reporting a defect (set by the bug report template; a default, not an assessment) dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Wheels built at the setuptools floor (62.3.0) omit pcapkit/py.typed

1 participant