[
https://issues.apache.org/jira/browse/THRIFT-6070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Haonan Hou resolved THRIFT-6070.
--------------------------------
Fix Version/s: 0.24.0
Resolution: Fixed
> Publish Python wheel distributions to PyPI
> ------------------------------------------
>
> Key: THRIFT-6070
> URL: https://issues.apache.org/jira/browse/THRIFT-6070
> Project: Thrift
> Issue Type: Improvement
> Components: Python - Library
> Reporter: Haonan Hou
> Assignee: Haonan Hou
> Priority: Major
> Fix For: 0.24.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> Apache Thrift currently publishes the Python `thrift` package to PyPI as a
> source distribution only. The existing PyPI workflow builds `sdist` under
> `lib/py`, but does not produce wheel artifacts.
> The Python package includes the optional `thrift.protocol.fastbinary` C++
> extension, so simply adding `bdist_wheel` on a generic Linux runner may
> produce non-portable platform wheels. The release workflow should build
> portable wheel distributions for supported platforms and Python versions,
> while continuing to publish the source distribution.
> Related history:
> - THRIFT-4911 requested publishing wheels to PyPI, but was closed as Won't
> Fix.
> - THRIFT-5688 added PyPI publishing automation, but the workflow currently
> publishes only source distributions.
> - THRIFT-5955 requests manylinux aarch64 wheels specifically.
> Proposed approach:
> - Update `.github/workflows/pypi.yml` to build both `sdist` and wheel
> artifacts.
> - Use `cibuildwheel` for platform wheels so Linux artifacts are built with
> supported manylinux/musllinux tags.
> - Keep build and publish steps separated, with PyPI publishing remaining
> restricted to release publication.
> - Test built wheels by importing `thrift` and `thrift.protocol.fastbinary`.
> - Run package metadata validation before upload.
> - Update release documentation for the Python PyPI publishing step.
> Acceptance criteria:
> - PyPI release artifacts include the existing source distribution and wheel
> distributions.
> - Linux wheels use PyPI-compatible portable platform tags.
> - Wheel builds cover the Python versions currently supported by Thrift CI.
> - The release workflow still publishes only from the intended release event.
> - Release documentation describes the Python package publishing flow.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)