isidentical commented on code in PR #83: URL: https://github.com/apache/arrow-datafusion-python/pull/83#discussion_r1032822354
########## dev/release/README.md: ########## @@ -19,18 +19,121 @@ # DataFusion Python Release Process -This is a work-in-progress that will be updated as we work through the next release. - ## Preparing a Release Candidate -- Update the version number in Cargo.toml -- Generate changelog -- Tag the repo with an rc tag e.g. `0.7.0-rc1` -- Create tarball and upload to ASF -- Start the vote +### Tag the Repository + +```bash +git tag 0.7.0-rc1 +git push apache 0.7.0-rc1 +``` + +### Publish Python Wheels to testpypi + +Pushing an rc tag to master will cause a GitHub Workflow to run that will build the Python wheels. + +Go to https://github.com/apache/arrow-datafusion-python/actions and look for an action named "Python Release Build" +that has run against the pushed tag. + +Click on the action and scroll down to the bottom of the page titled "Artifacts". Download `dist.zip`. + +Upload the wheels to testpypi. + +```bash +unzip dist.zip +python3 -m pip install --upgrade setuptools twine build +python3 -m twine upload --repository testpypi datafusion-0.7.0-cp37-abi3-*.whl +``` + +### Create a source release + +```bash +./dev/create_tarball 0.7.0 1 +``` + +This will also create the email template to send to the mailing list. Here is an example: + +``` +To: d...@arrow.apache.org +Subject: [VOTE][RUST][DataFusion] Release DataFusion Python Bindings 0.7.0 RC2 +Hi, + +I would like to propose a release of Apache Arrow DataFusion Python Bindings, +version 0.7.0. + +This release candidate is based on commit: bd1b78b6d444b7ab172c6aec23fa58c842a592d7 [1] +The proposed release tarball and signatures are hosted at [2]. +The changelog is located at [3]. +The Python wheels are located at [4]. + +Please download, verify checksums and signatures, run the unit tests, and vote +on the release. The vote will be open for at least 72 hours. + +Only votes from PMC members are binding, but all members of the community are +encouraged to test the release and vote with "(non-binding)". + +The standard verification procedure is documented at https://github.com/apache/arrow-datafusion-python/blob/master/dev/release/README.md#verifying-release-candidates. + +[ ] +1 Release this as Apache Arrow DataFusion Python 0.7.0 +[ ] +0 +[ ] -1 Do not release this as Apache Arrow DataFusion Python 0.7.0 because... + +Here is my vote: + ++1 + +[1]: https://github.com/apache/arrow-datafusion-python/tree/bd1b78b6d444b7ab172c6aec23fa58c842a592d7 +[2]: https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-datafusion-python-0.7.0-rc2 +[3]: https://github.com/apache/arrow-datafusion-python/blob/bd1b78b6d444b7ab172c6aec23fa58c842a592d7/CHANGELOG.md +[4]: https://test.pypi.org/project/datafusion/0.7.0/ +``` + +Create a draft email using this content, but do not send until after completing the next step. + +### Create Python Source Distribution + +Download the source tarball created in the previous step, untar it, and run: + +```bash +python3 -m build +``` + +This will create a file named `dist/datafusion-0.7.0.tar.gz`. Upload this to testpypi: + +```bash +python3 -m twine upload --repository testpypi dist/datafusion-0.7.0.tar.gz +``` + +### Send the Email + +Send the email to start the vote. + +## Verifying a Release + +```bash +pip install --extra-index-url https://test.pypi.org/simple/ datafusion==0.7.0 +``` + +## Publishing a Release + +### Publishing Apache Source Release + +Once the vote passes, we can publish the release. + +Create the source release tarball: + +```bash +./dev/release-tarball.sh 0.7.0 1 +``` + +### Publishing Python Artifacts + +Download the artifacts from testpypi and re-publish on PyPi using twine. Review Comment: Should we also add the command for this? ````suggestion Go to the Test PyPI page of Datafusion, and download [all published artifacts](https://test.pypi.org/project/datafusion/#files) under `dist-release/` directory. Then proceed uploading them using `twine`: ```py twine upload --repository pypi dist-release/* ``` ```` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org