Ah that's fair. Let me raise a thread separately to see if there are more
thoughts too but let me not pause this vote at the same time for now šŸ‘

On Sun, 30 Aug 2026 at 10:28, Ɓngel Ɓlvarez Pascua <
[email protected]> wrote:

> +1 (non-binding)
>
> Thanks, that makes sense. I don’t expect there to be much objection. I
> was mainly surprised that there hadn’t been a separate discussion before
> the release vote, given the addition of the Python wrapper and new package.
>
>
>
> El dom, 30 ago 2026 a las 3:23, Hyukjin Kwon (<[email protected]>)
> escribió:
>
>> It is the Rust Client, and the new one is a Python wrapper of the Rust
>> client, which conceptually thought did not require an SPIP but rather a
>> separate feature. If you feel like it has to be discussed separately, I can
>> bring it up and pause the release vote for now.
>>
>> On Sun, 30 Aug 2026 at 10:20, Ɓngel Ɓlvarez Pascua <
>> [email protected]> wrote:
>>
>>> Could you please point me to the previous dev@ discussion or SPIP for
>>> this proposal?
>>>
>>> I found the earlier discussion about creating the Spark Connect Rust
>>> client repository, but not one covering the ground-up Rust rewrite and the
>>> new pyspark-client-rust package. Given the scope and user-facing nature
>>> of these changes, I would have expected them to be discussed before
>>> reaching the release vote, possibly through the SPIP process.
>>>
>>> El dom, 30 ago 2026 a las 0:37, Hyukjin Kwon (<[email protected]>)
>>> escribió:
>>>
>>>> Please vote on releasing the following candidate as Apache Spark
>>>> Connect Rust
>>>> Client 4.2.0.
>>>>
>>>> This is the *first* release of the ground-up Rust rewrite of the Spark
>>>> Connect
>>>> Python client (published to PyPI as pyspark-client-rust): a drop-in
>>>> replacement
>>>> for pyspark-client <https://pypi.org/project/pyspark-client/>, backed
>>>> by a native Rust core instead of py4j/grpcio.
>>>>
>>>> The vote is open until Thursday, September 4, 2026, 5:00 PM PDT and
>>>> passes if a majority of +1 PMC votes are cast, with a minimum of
>>>> 3 +1 votes.
>>>>
>>>> [ ] +1 Release this package as Apache Spark Connect Rust Client 4.2.0
>>>> [ ] -1 Do not release this package because …
>>>>
>>>> TAG:
>>>> https://github.com/apache/spark-connect-rust/releases/tag/v4.2.0-rc1
>>>> (commit: f77df70)
>>>>
>>>> RELEASE FILES (wheels + sdist, built and attached by GitHub Actions):
>>>> https://github.com/apache/spark-connect-rust/releases/tag/v4.2.0-rc1
>>>>
>>>> DOCUMENTATION:
>>>> https://apache.github.io/spark-connect-rust/
>>>>
>>>> LIST OF ISSUES:
>>>> https://issues.apache.org/jira/projects/SPARK/versions/12357484
>>>> HOW TO TRY IT — PYTHON (pip)
>>>>
>>>> The release attaches abi3 wheels (Linux x86_64/aarch64, macOS
>>>> universal2,
>>>> Windows x86_64; CPython 3.9+) plus a source distribution. Grab the
>>>> wheel for
>>>> your platform from the release page and install it directly, e.g.:
>>>>
>>>>   pip install 
>>>> https://github.com/apache/spark-connect-rust/releases/download/v4.2.0-rc1/pyspark_client_rust-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
>>>>
>>>> Then use it exactly like PySpark. See if your existing workloads work
>>>> with this.
>>>> HOW TO TEST IT — RUST (cargo)
>>>>
>>>> The Rust crates are intentionally NOT on crates.io for a release
>>>> candidate
>>>> (crates.io is immutable; the crates are published there only when the
>>>> release is
>>>> finalized). Test against the tagged source instead:
>>>>
>>>>   # A) Pin a git dependency to the RC tag in your project's Cargo.toml:
>>>>   [dependencies]
>>>>   apache-spark-connect = { git = 
>>>> "https://github.com/apache/spark-connect-rust";, tag = "v4.2.0-rc1" }
>>>>
>>>>   # B) Or build and run the crates' own tests from the tag:
>>>>   git clone --branch v4.2.0-rc1 
>>>> https://github.com/apache/spark-connect-rust
>>>>   cd spark-connect-rust
>>>>   cargo build --release
>>>>   cargo test
>>>>
>>>> HIGHLIGHTS
>>>>
>>>>    - *Drop-in PySpark Connect Python API*, verified against real
>>>>    PySpark 4.2.0 two
>>>>    ways: the official PySpark test suite runs against this client, and
>>>>    a
>>>>    behavioral API-parity sweep compares the Python API surface
>>>>    (functions and
>>>>    DataFrame / Column / SparkSession / GroupedData / Window methods)
>>>>    call-by-call
>>>>    to PySpark.
>>>>    - Spark Connect Rust API *full* coverage, including *Rust UDF*s
>>>>    (docs: https://apache.github.io/spark-connect-rust/).
>>>>    - *Native Rust transport* via tonic; cloudpickle vendored to match
>>>>    upstream, so
>>>>    no grpcio/py4j at runtime. and *native type conversion.*
>>>>
>>>> WHY DOES THE VERSION START AT 4.2.0?
>>>>
>>>> Even though this is the first release of the rewrite, the version
>>>> starts at
>>>> 4.2.0 to track the Apache Spark / PySpark version it targets. This (1)
>>>> removes
>>>> any ambiguity about which Spark version a given client is compatible
>>>> with, and
>>>> (2) lets PySpark users pip install pyspark-client-rust== exactly
>>>> as they would pyspark-client, keeping the same versioning across both.
>>>>
>>>> Thanks,
>>>> Hyukjin Kwon
>>>>
>>>>

Reply via email to