This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 2ef8dc3a chore(dev/release): Update release instructions for 0.4.0 
(#373)
2ef8dc3a is described below

commit 2ef8dc3a810824e8cda44ffe56ca1b4cd503110e
Author: Dewey Dunnington <[email protected]>
AuthorDate: Fri Jan 26 10:55:05 2024 -0400

    chore(dev/release): Update release instructions for 0.4.0 (#373)
---
 .env                                    |  2 +-
 dev/release/README.md                   | 83 +++++++++++++++++++--------------
 dev/release/verify-release-candidate.sh |  7 +++
 docker-compose.yml                      |  6 +--
 4 files changed, 60 insertions(+), 38 deletions(-)

diff --git a/.env b/.env
index 168b033f..b364fee0 100644
--- a/.env
+++ b/.env
@@ -26,7 +26,7 @@ NANOARROW_PLATFORM=alpine
 NANOARROW_ARCH=amd64
 
 # Source directory (so that the docker compose app can be used on another 
checkout)
-NANOARROW_SOURCE_DIR="."
+NANOARROW_DOCKER_SOURCE_DIR="."
 
 # By default, verify HEAD
 NANOARROW_VERIFY_ARGS=""
diff --git a/dev/release/README.md b/dev/release/README.md
index 628e1d00..7acc308c 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -25,12 +25,12 @@ Release candidates for nanoarrow are uploaded to 
https://dist.apache.org/repos/d
 prior to a release vote being called on the
 [Apache Arrow developer mailing 
list](https://lists.apache.org/[email protected]).
 A script (`verify-release-candidate.sh`) is provided to verify such a release 
candidate.
-For example, to verify nanoarrow 0.3.0-rc0, one could run:
+For example, to verify nanoarrow 0.4.0-rc0, one could run:
 
 ```bash
 git clone https://github.com/apache/arrow-nanoarrow.git arrow-nanoarrow
 cd arrow-nanoarrow/dev/release
-./verify-release-candidate.sh 0.3.0 0
+./verify-release-candidate.sh 0.4.0 0
 ```
 
 Full verification requires [CMake](https://cmake.org/download/) to build and 
run the test
@@ -53,16 +53,22 @@ The verification script itself is written in `bash` and 
requires the `curl`, `gp
 `shasum`/`sha512sum` commands. These are typically available from a package
 manager except on Windows (see below).
 
-To run only C library verification (requires CMake and Arrow C++ but not R):
+To run only C library verification (requires CMake and Arrow C++ but not R or 
Python):
 
 ```bash
-TEST_DEFAULT=0 TEST_C=1 TEST_C_BUNDLED=1 ./verify-release-candidate.sh 0.3.0 0
+TEST_DEFAULT=0 TEST_C=1 TEST_C_BUNDLED=1 ./verify-release-candidate.sh 0.4.0 0
 ```
 
 To run only R package verification (requires R but not CMake or Arrow C++):
 
 ```bash
-TEST_DEFAULT=0 TEST_R=1 ./verify-release-candidate.sh 0.3.0 0
+TEST_DEFAULT=0 TEST_R=1 ./verify-release-candidate.sh 0.4.0 0
+```
+
+To run only Python verification (requires Python but not CMake or Arrow C++):
+
+```bash
+TEST_DEFAULT=0 TEST_PYTHON=1 ./verify-release-candidate.sh 0.4.0 0
 ```
 
 ### MacOS
@@ -99,6 +105,9 @@ export 
NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd)/arrow/lib/cmake/Arrow -DCMAKE
 You can install R using the instructions provided on the
 [R Project Download page](https://cloud.r-project.org/bin/macosx/).
 
+The system `python3` provided by MacOS is sufficient to verify the release
+candidate.
+
 ### Conda (Linux and MacOS)
 
 Using `conda`, one can install all requirements needed for verification on 
Linux
@@ -157,7 +166,7 @@ export R_HOME="/c/Program Files/R/R-4.2.2"
 On Debian/Ubuntu (e.g., `docker run --rm -it ubuntu:latest`) you can install 
prerequisites using `apt`.
 
 ```bash
-apt-get update && apt-get install -y git g++ cmake r-base gnupg curl
+apt-get update && apt-get install -y git g++ cmake r-base gnupg curl 
python3-dev python3-venv
 
 # For Arrow C++
 apt-get install -y -V ca-certificates lsb-release wget
@@ -178,7 +187,7 @@ On recent Fedora (e.g., `docker run --rm -it 
fedora:latest`), you can install al
 using `dnf`:
 
 ```bash
-dnf install -y git cmake R gnupg curl libarrow-devel
+dnf install -y git cmake R gnupg curl libarrow-devel python3-devel 
python3-virtualenv
 ```
 
 ### Arch Linux
@@ -207,7 +216,8 @@ https://dl-cdn.alpinelinux.org/alpine/edge/testing/
 EOF
 apk update
 
-apk add bash linux-headers git cmake R R-dev g++ gnupg curl apache-arrow-dev
+apk add bash linux-headers git cmake R R-dev g++ gnupg curl apache-arrow-dev \
+  python3-dev
 ```
 
 ### Centos7
@@ -238,7 +248,7 @@ curl -L 
https://github.com/apache/arrow/archive/refs/tags/apache-arrow-9.0.0.tar
     make install
 
 # Pass location of Arrow, cmake, and ctest to the verification script
-export NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd)/arrow/lib/cmake/Arrow"
+export NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd)/arrow/lib64/cmake/arrow"
 export CMAKE_BIN=cmake3
 export CTEST_BIN=ctest3
 
@@ -246,6 +256,9 @@ export CTEST_BIN=ctest3
 # not skip verifying signatures, just allows errors for unsupported entries in
 # the global Arrow KEYS file.
 export NANOARROW_ACCEPT_IMPORT_GPG_KEYS_ERROR=1
+
+# System Python on centos7 is not new enough to support the Python package
+export TEST_PYTHON=0
 ```
 
 ### Big endian
@@ -257,7 +270,7 @@ One can verify a nanoarrow release candidate on big endian 
by setting
 ## Creating a release candidate
 
 The first step to creating a nanoarrow release is to create a `maint-VERSION` 
branch
-(e.g., `usethis::pr_init("maint-0.3.0")`) and push the branch to `upstream`. 
This is
+(e.g., `usethis::pr_init("maint-0.4.0")`) and push the branch to `upstream`. 
This is
 a good opportunity to run though the above instructions to make sure the 
verification
 script and instructions are up-to-date. You may also wish to start a manual 
dispatch
 of the [Verification 
workflow](https://github.com/apache/arrow-nanoarrow/actions/workflows/verify.yaml)
@@ -268,11 +281,11 @@ When this is complete, run
 ```bash
 # from the repository root
 # 01-prepare.sh <nanoarrow-dir> <prev_veresion> <version> <next_version> 
<rc-num>
-dev/release/01-prepare.sh . 0.0.0 0.3.0 0.4.0 0
+dev/release/01-prepare.sh . 0.3.0 0.4.0 0.5.0 0
 ```
 
 This will update version numbers, the changelong, and create the git tag
-`apache-arrow-nanoarrow-0.3.0-rc0`. Check to make sure that the changelog
+`apache-arrow-nanoarrow-0.4.0-rc0`. Check to make sure that the changelog
 and versions are what you expect them to be before pushing the tag (you
 may wish to do this by opening a dummy PR to run CI and look at the diff
 from the main branch). When you are satisfied that the code at this tag
@@ -294,7 +307,7 @@ file to exist setting the appropriate `GPG_KEY_ID` 
environment variable.
 
 ```bash
 # 02-sign.sh <version> <rc-num>
-dev/release/02-sign.sh 0.3.0 0
+dev/release/02-sign.sh 0.4.0 0
 ```
 
 Finally, run
@@ -306,7 +319,7 @@ file to exist setting the appropriate `APACHE_USERNAME` 
environment variable.
 
 ```
 # 03-source.sh $0 <version> <rc-num>
-dev/release/03-source.sh 0.3.0 0
+dev/release/03-source.sh 0.4.0 0
 ```
 
 You should check that the release verification runs locally and/or
@@ -318,7 +331,7 @@ At this point the release candidate is suitable for a vote 
on the Apache Arrow d
 ```
 Hello,
 
-I would like to propose the following release candidate (rc0) of Apache Arrow 
nanoarrow [0] version 0.3.0. This is an initial release consisting of 42 
resolved GitHub issues from 4 contributors [1].
+I would like to propose the following release candidate (rc0) of Apache Arrow 
nanoarrow [0] version 0.4.0. This is an initial release consisting of 44 
resolved GitHub issues from 5 contributors [1].
 
 This release candidate is based on commit: {rc_commit} [2]
 
@@ -329,15 +342,15 @@ Please download, verify checksums and signatures, run the 
unit tests, and vote o
 
 The vote will be open for at least 72 hours.
 
-[ ] +1 Release this as Apache Arrow nanoarrow 0.3.0
+[ ] +1 Release this as Apache Arrow nanoarrow 0.4.0
 [ ] +0
-[ ] -1 Do not release this as Apache Arrow nanoarrow 0.3.0 because...
+[ ] -1 Do not release this as Apache Arrow nanoarrow 0.4.0 because...
 
 [0] https://github.com/apache/arrow-nanoarrow
-[1] https://github.com/apache/arrow-nanoarrow/milestone/3?closed=1
-[2] 
https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.3.0-rc0
-[3] 
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.3.0-rc0/
-[4] 
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.3.0-rc0/CHANGELOG.md
+[1] https://github.com/apache/arrow-nanoarrow/milestone/4?closed=1
+[2] 
https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.4.0-rc0
+[3] 
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.4.0-rc0/
+[4] 
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.4.0-rc0/CHANGELOG.md
 [5] https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/README.md
 ```
 
@@ -351,6 +364,8 @@ After a passing release vote, the following tasks must be 
completed:
 [ ] Uploaded artifacts to Subversion
 [ ] Created GitHub release
 [ ] Submit R package to CRAN
+[ ] Submit Python package to PyPI
+[ ] Update Python package on conda-forge
 [ ] Release blog post at https://github.com/apache/arrow-site/pull/288
 [ ] Sent announcement to [email protected]
 [ ] Removed old artifacts from SVN
@@ -367,7 +382,7 @@ and mark it as closed.
 The reporter system for Arrow can be found at
 <https://reporter.apache.org/addrelease.html?arrow>. To add a release, a
 PMC member must log in with their Apache username/password. The release
-names are in the form `NANOARROW-0.3.0`.
+names are in the form `NANOARROW-0.4.0`.
 
 ### Upload artifacts to Subversion / Create GitHub Release
 
@@ -377,7 +392,7 @@ This script must be run by a PMC member whose 
`APACHE_USERNAME` environment vari
 has been set in `.env`.
 
 ```bash
-dev/release/post-01-upload.sh 0.3.0 0
+dev/release/post-01-upload.sh 0.4.0 0
 ```
 
 ### Submit R package to CRAN
@@ -389,8 +404,8 @@ Before a release candidate is created, the first section of
 `usethis::use_release_issue()` should all be completed (i.e., any changes
 after release should be minor tweaks). The steps are:
 
-- Ensure you are on the release branch (i.e., `git switch maint-0.3.0`)
-- Run `usethis::pr_init("r-cran-maint-0.3.0")` and push the branch to your
+- Ensure you are on the release branch (i.e., `git switch maint-0.4.0`)
+- Run `usethis::pr_init("r-cran-maint-0.4.0")` and push the branch to your
   fork.
 - Ensure `cran_comments.md` is up-to-date.
 - Run `devtools::check()` locally and verify that the package version is 
correct
@@ -402,7 +417,7 @@ after release should be minor tweaks). The steps are:
 Any changes required at this stage should be made as a PR into `main` and
 cherry-picked into the `r-cran-maint-XXX` packaging branch. (i.e.,
 `git cherry-pick 01234abcdef`). If any changes
-to the source are required, bump the "tweak" version (e.g., `Version: 0.3.0.1`
+to the source are required, bump the "tweak" version (e.g., `Version: 0.4.0.1`
 in `DESCRIPTION`).
 
 ### Release blog post
@@ -419,14 +434,14 @@ the `mail-relay.apache.org` outgoing server.
 Email template:
 
 ```
-[ANNOUNCE] Apache Arrow nanoarrow 0.3.0 Released
+[ANNOUNCE] Apache Arrow nanoarrow 0.4.0 Released
 
-The Apache Arrow community is pleased to announce the 0.3.0 release of Apache 
Arrow nanoarrow. This initial release covers 42 resolved issues from 4 
contributors[1].
+The Apache Arrow community is pleased to announce the 0.4.0 release of Apache 
Arrow nanoarrow. This initial release covers 44 resolved issues from 5 
contributors[1].
 
 The release is available now from [2].
 
 Release notes are available at:
-https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.3.0/CHANGELOG.md
+https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.4.0/CHANGELOG.md
 
 What is Apache Arrow?
 ---------------------
@@ -442,8 +457,8 @@ Please report any feedback to the mailing lists ([4], [5]).
 Regards,
 The Apache Arrow Community
 
-[1]: 
https://github.com/apache/arrow-nanoarrow/issues?q=is%3Aissue+milestone%3A%22nanoarrow+0.3.0%22+is%3Aclosed
-[2]: https://www.apache.org/dyn/closer.cgi/arrow/apache-arrow-nanoarrow-0.3.0
+[1]: 
https://github.com/apache/arrow-nanoarrow/issues?q=is%3Aissue+milestone%3A%22nanoarrow+0.4.0%22+is%3Aclosed
+[2]: https://www.apache.org/dyn/closer.cgi/arrow/apache-arrow-nanoarrow-0.4.0
 [3]: https://github.com/apache/arrow-nanoarrow
 [4]: https://lists.apache.org/[email protected]
 [5]: https://lists.apache.org/[email protected]
@@ -459,14 +474,14 @@ using:
 # Once
 export APACHE_USERNAME=xxx
 # Once for every release candidate
-svn rm --username=$APACHE_USERNAME -m "Clean up svn artifacts" 
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.3.0-rc0/
+svn rm --username=$APACHE_USERNAME -m "Clean up svn artifacts" 
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.4.0-rc0/
 ```
 
 ### Bumped versions on main
 
 This is handled by
-[post-02-bump-versions.sh](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/post-02-bump-versions.sh):
+[post-02-bump-versions.sh](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/post-02-bump-versions.sh).
 Create a branch and then run:
 
 ```bash
-dev/release/post-02-bump-versions.sh . 0.3.0 0.4.0
+dev/release/post-02-bump-versions.sh . 0.4.0 0.5.0
 ```
diff --git a/dev/release/verify-release-candidate.sh 
b/dev/release/verify-release-candidate.sh
index 84013602..61baa219 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -21,6 +21,7 @@
 # - cmake >= 3.14
 # - R >= 3.5.0
 # - Arrow C++ >= 9.0.0
+# - Python >= 3.8
 #
 # Environment Variables
 # - CMAKE_BIN: Command to use for cmake (e.g., cmake3 on Centos7)
@@ -35,12 +36,18 @@
 #   "gpg --import KEYS" returns an error. In general, we should not use this
 #   to ensure importing all GPG keys. But newer algorithms such as ed25519 may
 #   not be supported in old GPG such as GPG on CentOS 7.
+# - NANOARROW_PYTHON_VENV: An absolute path to a virtual environment, into 
which
+#   nanoarrow Python build and/or test dependencies may be installed. If empty,
+#   a temporary virtual environment will be created using Python from 
PYTHON_BIN
+#   or python3 if PYTHON_BIN is empty.
 # - TEST_SOURCE: Set to 0 to selectively run component verification.
 # - TEST_C: Builds C libraries and tests using the default CMake
 #   configuration. Defaults to the value of TEST_SOURCE.
 # - TEST_C_BUNDLED: Tests the bundled version of the C libraries.
 # - TEST_R: Builds the R package source tarball and runs R CMD check.
 #   Defaults to the value of TEST_SOURCE.
+# - TEST_PYTHON: Builds the Python package and runs tests. Defaults to the 
value
+#   of TEST_SOURCE.
 # - TEST_WITH_MEMCHECK: Set to a nonzero value to additionally run tests
 #   with memcheck. This requires valgrind on PATH.
 
diff --git a/docker-compose.yml b/docker-compose.yml
index a7728972..8542ebdc 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -28,7 +28,7 @@ services:
       args:
         NANOARROW_ARCH: ${NANOARROW_ARCH}
     volumes:
-      - ${NANOARROW_SOURCE_DIR}:/nanoarrow
+      - ${NANOARROW_DOCKER_SOURCE_DIR}:/nanoarrow
     command: "/bin/bash /nanoarrow/dev/release/verify-release-candidate.sh 
$NANOARROW_VERIFY_ARGS"
 
   coverage:
@@ -36,7 +36,7 @@ services:
     volumes:
       # Don't mix the "dev tools" and "source" checkouts
       - ./ci/scripts/coverage.sh:/coverage.sh
-      - ${NANOARROW_SOURCE_DIR}:/nanoarrow
+      - ${NANOARROW_DOCKER_SOURCE_DIR}:/nanoarrow
     command: "/bin/bash /coverage.sh /nanoarrow"
 
   docs:
@@ -44,5 +44,5 @@ services:
     volumes:
       # Don't mix the "dev tools" and "source" checkouts
       - ./ci/scripts/build-docs.sh:/build-docs.sh
-      - ${NANOARROW_SOURCE_DIR}:/nanoarrow
+      - ${NANOARROW_DOCKER_SOURCE_DIR}:/nanoarrow
     command: "/bin/bash /build-docs.sh /nanoarrow"

Reply via email to