Skip to content

fix: correct wheel packaging and add release safety checks#1797

Closed
jacalata wants to merge 1 commit into
tableau:developmentfrom
jacalata:jac/fix-packaging-wheel
Closed

fix: correct wheel packaging and add release safety checks#1797
jacalata wants to merge 1 commit into
tableau:developmentfrom
jacalata:jac/fix-packaging-wheel

Conversation

@jacalata

Copy link
Copy Markdown
Contributor

Summary

  • Fixes broken wheel structure caused by include=[\"tableauserverclient*\"] in [tool.setuptools.packages.find], which on setuptools 80.10.2 doubles all subpackages as bare top-level entries in the wheel zip (e.g. models/, server/, helpers/ alongside tableauserverclient/). Switched to an exclude-based approach which is robust across setuptools versions.
  • Adds test/test_packaging.py with a wheel structure test that checks the zip root contains only tableauserverclient/ — catches both this bug and the v0.39 regression where the package itself was missing entirely.
  • Updates publish-pypi.yml to split into four sequential jobs: build + check wheel → publish to TestPyPI → smoke test from TestPyPI (Linux/macOS/Windows) → publish to real PyPI. Real PyPI is now unreachable unless the TestPyPI smoke test passes.
  • Updates pypi-smoke-tests.yml to also trigger on release: published, not just the daily schedule.

Closes #1751.

Test plan

  • Trigger publish-pypi.yml manually via workflow_dispatch on this branch to verify build, wheel check, TestPyPI publish, and smoke test jobs run correctly (real PyPI publish will be skipped on non-master)
  • Confirm pytest test/test_packaging.py -m packaging passes after python -m build
  • Confirm pytest test/test_packaging.py -m packaging fails against the broken wheel built from development without this fix

🤖 Generated with Claude Code

The include=["tableauserverclient*"] glob caused setuptools to strip the
tableauserverclient/ prefix from all subpackages, producing a wheel where
top_level.txt listed bin/helpers/models/server instead of tableauserverclient.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jacalata

Copy link
Copy Markdown
Contributor Author

Closing in favour of PR from upstream branch.

@jacalata jacalata closed this Jun 25, 2026
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.

Pypi smoke tests should run at release

1 participant