We are happy to announce the availability of Spark {version}!

Spark {version} is a maintenance release containing stability fixes. This
release is based on the {branch} maintenance branch of Spark. We strongly
recommend all {short_version} users to upgrade to this stable release.

To download Spark {version}, head over to the download page:
https://spark.apache.org/downloads.html

To view the release notes:
https://spark.apache.org/releases/spark-release-{hyphened_version}.html

We would like to acknowledge all community members for contributing to this
release. This release would not have been possible without you.

{release_manager_name}
