[ 
https://issues.apache.org/jira/browse/THRIFT-6070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Haonan Hou reassigned THRIFT-6070:
----------------------------------

    Assignee: Haonan Hou

> 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
>          Time Spent: 0.5h
>  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)

Reply via email to