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 209b293d chore(dev/release): Update release verification instructions
for 0.8.0 (#843)
209b293d is described below
commit 209b293d190912a8a6b1e8f682dbc6d6a534a2a2
Author: Dewey Dunnington <[email protected]>
AuthorDate: Tue Feb 3 21:59:34 2026 -0600
chore(dev/release): Update release verification instructions for 0.8.0
(#843)
Updates the versions in the document. I also checked the verification on
all the platforms listed (no changes required).
---
dev/release/README.md | 103 ++++++++++++++++++++++++++++----------------------
1 file changed, 57 insertions(+), 46 deletions(-)
diff --git a/dev/release/README.md b/dev/release/README.md
index 01f07e9e..c116bbfd 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -25,19 +25,19 @@ 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.7.0-rc0, one could run:
+For example, to verify nanoarrow 0.8.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.7.0 0
+./verify-release-candidate.sh 0.8.0 0
```
The verification script itself is written in `bash` and requires the `curl`,
`gpg`, and
`shasum`/`sha512sum` commands. These are typically available from a package
manager except on Windows (see below). [CMake](https://cmake.org/download/),
-Python (>=3.8), and a C/C++ compiler are required to verify the C libraries;
-Python (>=3.8) is required to verify the Python bindings; and R (>= 4.0) is
+Python (>=3.9), and a C/C++ compiler are required to verify the C libraries;
+Python (>=3.9) is required to verify the Python bindings; and R (>= 4.0) is
required to verify the R bindings. See below for platform-specific direction
for how to obtain verification dependencies.
@@ -48,19 +48,19 @@ For example, to run only C library verification (requires
CMake and Python but n
To run only C library verification (requires CMake but not R or Python):
```bash
-TEST_DEFAULT=0 TEST_C=1 TEST_C_BUNDLED=1 ./verify-release-candidate.sh 0.7.0 0
+TEST_DEFAULT=0 TEST_C=1 TEST_C_BUNDLED=1 ./verify-release-candidate.sh 0.8.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.7.0 0
+TEST_DEFAULT=0 TEST_R=1 ./verify-release-candidate.sh 0.8.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.7.0 0
+TEST_DEFAULT=0 TEST_PYTHON=1 ./verify-release-candidate.sh 0.8.0 0
```
### MacOS
@@ -168,10 +168,9 @@ 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.7.0")`) and push the branch to `upstream`.
This is
+(e.g., `usethis::pr_init("maint-0.8.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.
-targeting the maint-XX branch that was just pushed.
This is a good time to run other final checks such as:
@@ -189,7 +188,7 @@ When these steps are 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.6.0 0.7.0 0.8.0 0
+dev/release/01-prepare.sh . 0.7.0 0.8.0 0.9.0 0
```
A currently not automated part of this workflow is updating the R NEWS.md
@@ -197,8 +196,12 @@ from the changelog: any changelog items for the `r/...`
component can
be copied to the R NEWS.md file. This is not essential (i.e., it does not
affect the ability to release the R package).
+It is also important to ensure the usage on the README reflects the
+current version (e.g., download links refer to 0.8.0). This should be done
+after the release branch is created.
+
This will update version numbers, the changelong, and create the git tag
-`apache-arrow-nanoarrow-0.7.0-rc0`. Check to make sure that the changelog
+`apache-arrow-nanoarrow-0.8.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).
@@ -222,7 +225,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.7.0 0
+dev/release/02-sign.sh 0.8.0 0
```
Finally, run
@@ -234,7 +237,7 @@ file to exist setting the appropriate `APACHE_USERNAME`
environment variable.
```
# 03-source.sh $0 <version> <rc-num>
-dev/release/03-source.sh 0.7.0 0
+dev/release/03-source.sh 0.8.0 0
```
You should check that the release verification runs locally and/or
@@ -244,11 +247,11 @@ start a
At this point the release candidate is suitable for a vote on the Apache Arrow
developer mailing list.
```
-[VOTE] Release nanoarrow 0.7.0
+[VOTE] Release nanoarrow 0.8.0
Hello,
-I would like to propose the following release candidate (rc0) of Apache Arrow
nanoarrow [0] version 0.7.0. This is an initial release consisting of 44
resolved GitHub issues from 5 contributors [1].
+I would like to propose the following release candidate (rc0) of Apache Arrow
nanoarrow [0] version 0.8.0. This release consists of 44 resolved GitHub issues
from 5 contributors [1].
This release candidate is based on commit: {rc_commit} [2]
@@ -259,15 +262,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.7.0
+[ ] +1 Release this as Apache Arrow nanoarrow 0.8.0
[ ] +0
-[ ] -1 Do not release this as Apache Arrow nanoarrow 0.7.0 because...
+[ ] -1 Do not release this as Apache Arrow nanoarrow 0.8.0 because...
[0] https://github.com/apache/arrow-nanoarrow
[1] https://github.com/apache/arrow-nanoarrow/milestone/4?closed=1
-[2]
https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.7.0-rc0
-[3]
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.7.0-rc0/
-[4]
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.7.0-rc0/CHANGELOG.md
+[2]
https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.8.0-rc0
+[3]
https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-nanoarrow-0.8.0-rc0/
+[4]
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.8.0-rc0/CHANGELOG.md
[5] https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/README.md
```
@@ -284,6 +287,8 @@ After a passing release vote, the following tasks must be
completed:
[ ] Submit Python package to PyPI
[ ] Update Python package on conda-forge
[ ] Update the WrapDB entry
+[ ] Update the vcpkg entry
+[ ] Update the Conan entry
[ ] Update release documentation
[ ] Release blog post at https://github.com/apache/arrow-site/pull/288
[ ] Sent announcement to [email protected]
@@ -301,7 +306,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.7.0`.
+names are in the form `NANOARROW-0.8.0`.
### Upload artifacts to Subversion / Create GitHub Release
@@ -311,7 +316,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.7.0 0
+dev/release/post-01-upload.sh 0.8.0 0
```
### Submit R package to CRAN
@@ -335,14 +340,16 @@ If there are no NOTEs, WARNINGs, or ERRORs on the
winbuilder results
devtools::submit_cran()
```
-If changes *are* required, create a branch called `r-cran-maint-0.7.-0`,
+If changes *are* required, create a branch called `r-cran-maint-0.8.0`,
make any changes required, and resubmit to CRAN after bumping the "tweak"
-version (e.g., `Version: 0.7.0.1` in the `DESCRIPTION`). Ensure those changes
-are also reflected in the main branch after submission is successful.
+version (e.g., `Version: 0.8.0-1` in the `DESCRIPTION`). Ensure those changes
+are also reflected in the main branch after submission is successful. Be sure
to update
+`NEWS.md` in the R package to ensure that changes included in patch updates are
+transparent.
### Submit Python package to PyPI
-The Python package source distribution and wheels are built using the [Build
Python
Wheels](https://github.com/apache/arrow-nanoarrow/actions/workflows/python-wheels.yaml)
action on the `maint-0.7.0` branch after cutting the release candidate.
+The Python package source distribution and wheels are built using the [Build
Python
Wheels](https://github.com/apache/arrow-nanoarrow/actions/workflows/python-wheels.yaml)
action on the `maint-0.8.0` branch after cutting the release candidate.
To submit these to PyPI, download all assets from the run into a folder (e.g.,
`python/dist`) and run `twine upload`:
@@ -377,6 +384,10 @@ The nanoarrow C library is available for users of the
[Meson build system](https
The nanoarrow C library is available on
[vcpkg](https://github.com/microsoft/vcpkg). When a new release is added, PR
into the vcpkg repository to make the new version available to users. See
https://github.com/microsoft/vcpkg/pull/46029 for a template PR. It is a good
idea to do this step before merging a release to catch packaging issues before
finalizing the content of the version.
+### Update the conan Entry
+
+The nanoarrow C library is available on [conan](https://conan.io/center). When
a new release is added, PR into the conan-center-index repository to make the
new version available. See
https://github.com/conan-io/conan-center-index/pull/29405 for a template PR.
+
### Update release documentation
The [nanoarrow documentation](https://arrow.apache.org/nanoarrow) is populated
from the [asf-site
branch](https://github.com/apache/arrow-nanoarrow/tree/asf-site) of this
repository. To update the documentation, first clone just the asf-site branch:
@@ -386,18 +397,18 @@ git clone -b asf-site --single-branch
https://github.com/apache/arrow-nanoarrow.
cd arrow-nanoarrow
```
-Download the [0.7.0
documentation](https://github.com/apache/arrow-nanoarrow/releases/download/apache-arrow-nanoarrow-0.7.0/docs.tgz):
+Download the [0.8.0
documentation](https://github.com/apache/arrow-nanoarrow/releases/download/apache-arrow-nanoarrow-0.8.0/docs.tgz):
```shell
-curl -L
https://github.com/apache/arrow-nanoarrow/releases/download/apache-arrow-nanoarrow-0.7.0/docs.tgz
\
+curl -L
https://github.com/apache/arrow-nanoarrow/releases/download/apache-arrow-nanoarrow-0.8.0/docs.tgz
\
-o docs.tgz
```
-Extract the documentation and rename the directory to `0.7.0`:
+Extract the documentation and rename the directory to `0.8.0`:
```shell
tar -xvzf docs.tgz
-mv nanoarrow-docs 0.7.0
+mv nanoarrow-docs 0.8.0
```
Then remove the existing `latest` directory and run the extraction again,
renaming to `latest` instead:
@@ -408,7 +419,7 @@ tar -xvzf docs.tgz
mv nanoarrow-docs latest
```
-Finally, update `switcher.json` with entries pointing `/latest/` and `/0.7.0/`
to `"version": "0.7.0"`:
+Finally, update `switcher.json` with entries pointing `/latest/` and `/0.8.0/`
to `"version": "0.8.0"`:
```json
[
@@ -417,16 +428,16 @@ Finally, update `switcher.json` with entries pointing
`/latest/` and `/0.7.0/` t
"url": "https://arrow.apache.org/nanoarrow/main/"
},
{
- "version": "0.7.0",
+ "version": "0.8.0",
"url": "https://arrow.apache.org/nanoarrow/latest/"
},
{
- "version": "0.7.0",
- "url": "https://arrow.apache.org/nanoarrow/0.7.0/"
+ "version": "0.8.0",
+ "url": "https://arrow.apache.org/nanoarrow/0.8.0/"
},
{
- "version": "0.6.0",
- "url": "https://arrow.apache.org/nanoarrow/0.6.0/"
+ "version": "0.7.0",
+ "url": "https://arrow.apache.org/nanoarrow/0.7.0/"
},
...
]
@@ -449,10 +460,10 @@ or it will be rejected by the announce mailing list.
Email template:
```
-[ANNOUNCE] Apache Arrow nanoarrow 0.7.0 Released
+[ANNOUNCE] Apache Arrow nanoarrow 0.8.0 Released
-The Apache Arrow community is pleased to announce the 0.7.0 release of
-Apache Arrow nanoarrow. This initial release covers 79 resolved issues
+The Apache Arrow community is pleased to announce the 0.8.0 release of
+Apache Arrow nanoarrow. This release covers 79 resolved issues
from 9 contributors[1].
The release is available now from [2], release notes are available at
@@ -487,10 +498,10 @@ Please report any feedback to the mailing lists ([6],
[7]).
Regards,
The Apache Arrow Community
-[1]
https://github.com/apache/arrow-nanoarrow/issues?q=milestone%3A%22nanoarrow+0.7.0%22+is%3Aclosed
-[2] https://www.apache.org/dyn/closer.cgi/arrow/apache-arrow-nanoarrow-0.7.0
-[3]
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.7.0/CHANGELOG.md
-[4] https://arrow.apache.org/blog/2024/05/27/nanoarrow-0.7.0-release/
+[1]
https://github.com/apache/arrow-nanoarrow/issues?q=milestone%3A%22nanoarrow+0.8.0%22+is%3Aclosed
+[2] https://www.apache.org/dyn/closer.cgi/arrow/apache-arrow-nanoarrow-0.8.0
+[3]
https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.8.0/CHANGELOG.md
+[4] https://arrow.apache.org/blog/2024/05/27/nanoarrow-0.8.0-release/
[5] https://arrow.apache.org/nanoarrow/
[6] https://lists.apache.org/[email protected]
[7] https://lists.apache.org/[email protected]
@@ -514,7 +525,7 @@ This is handled by
[post-03-bump-versions.sh](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/post-03-bump-versions.sh).
Create a branch and then run:
```bash
-dev/release/post-03-bump-versions.sh . 0.7.0 0.8.0
+dev/release/post-03-bump-versions.sh . 0.8.0 0.9.0
```
A currently not automated part of this workflow is also porting the R NEWS.md
@@ -524,6 +535,6 @@ makes the next R NEWS.md update for the next release make a
bit more sense.
After this PR is merged, create the dev tag that is used to generate the
changelog:
```shell
-git tag -a apache-arrow-nanoarrow-0.8.0.dev -m "tag dev 0.8.0"
-git push upstream apache-arrow-nanoarrow-0.8.0.dev
+git tag -a apache-arrow-nanoarrow-0.9.0.dev -m "tag dev 0.9.0"
+git push upstream apache-arrow-nanoarrow-0.9.0.dev
```