You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2023/02/06 13:53:46 UTC
[arrow-adbc] branch main updated: chore(dev/release): add vote email template (#410)
This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new a7646b2 chore(dev/release): add vote email template (#410)
a7646b2 is described below
commit a7646b23fecc1620c0218013bddfad819a85e2c0
Author: David Li <li...@gmail.com>
AuthorDate: Mon Feb 6 08:53:41 2023 -0500
chore(dev/release): add vote email template (#410)
Fixes #333.
---------
Co-authored-by: Sutou Kouhei <ko...@cozmixng.org>
---
dev/release/06-binary-verify.sh | 49 +++++++++++++++++++++++++++++++++++
dev/release/post-09-website.sh | 13 +++++-----
dev/release/utils-prepare.sh | 27 +++++++++++++++++++
docs/source/development/releasing.rst | 4 +--
4 files changed, 85 insertions(+), 8 deletions(-)
diff --git a/dev/release/06-binary-verify.sh b/dev/release/06-binary-verify.sh
index d4a17d8..5eca2e8 100755
--- a/dev/release/06-binary-verify.sh
+++ b/dev/release/06-binary-verify.sh
@@ -28,6 +28,9 @@ main() {
: ${REPOSITORY:="apache/arrow-adbc"}
+ export SOURCE_DIR="${source_dir}"
+ source "${source_top_dir}/dev/release/utils-prepare.sh"
+
echo "Starting GitHub Actions workflow on ${REPOSITORY} for ${version} RC${rc_number}"
gh workflow run \
@@ -51,6 +54,52 @@ main() {
echo "Started GitHub Actions workflow with ID: ${run_id}"
echo "You can wait for completion via: gh run watch --repo ${REPOSITORY} ${run_id}"
+
+ set_resolved_issues "${version}"
+
+ echo "The following draft email has been created to send to the"
+ echo "dev@arrow.apache.org mailing list"
+ echo ""
+ echo "---------------------------------------------------------"
+
+ cat <<MAIL
+To: dev@arrow.apache.org
+Subject: [VOTE] Release Apache Arrow ADBC ${version} - RC${rc_number}
+
+Hello,
+
+I would like to propose the following release candidate (RC${rc_number}) of Apache Arrow ADBC version ${version}. This is a release consisting of ${RESOLVED_ISSUES} resolved GitHub issues [1].
+
+This release candidate is based on commit: [2]
+
+The source release rc${rc_number} is hosted at [3].
+The binary artifacts are hosted at [4][5][6][7][8].
+The changelog is located at [9].
+
+Please download, verify checksums and signatures, run the unit tests, and vote on the release. See [10] for how to validate a release candidate.
+
+See also a verification result on GitHub Actions [11].
+
+The vote will be open for at least 72 hours.
+
+[ ] +1 Release this as Apache Arrow ADBC ${version}
+[ ] +0
+[ ] -1 Do not release this as Apache Arrow ADBC ${version} because...
+
+Note: to verify APT/YUM packages on macOS/AArch64, you must \`export DOCKER_DEFAULT_ARCHITECTURE=linux/amd64\`. (Or skip this step by \`export TEST_APT=0 TEST_YUM=0\`.)
+
+[1]: https://github.com/apache/arrow-adbc/issues?q=is%3Aissue+milestone%3A${version}+is%3Aclosed
+[2]: https://github.com/apache/arrow-adbc/releases/tag/${tag}
+[3]: https://dist.apache.org/repos/dist/dev/arrow/${tag}/
+[4]: https://apache.jfrog.io/artifactory/arrow/almalinux-rc/
+[5]: https://apache.jfrog.io/artifactory/arrow/debian-rc/
+[6]: https://apache.jfrog.io/artifactory/arrow/ubuntu-rc/
+[7]: https://repository.apache.org/content/repositories/staging/org/apache/arrow/adbc/
+[8]: https://github.com/apache/arrow-adbc/releases/tag/${tag}
+[9]: https://github.com/apache/arrow-adbc/blob/${tag}/CHANGELOG.md
+[10]: https://arrow.apache.org/adbc/main/development/releasing.html#how-to-verify-release-candidates
+[11]: https://github.com/apache/arrow-adbc/actions/runs/${run_id}
+MAIL
}
main "$@"
diff --git a/dev/release/post-09-website.sh b/dev/release/post-09-website.sh
index 03e0dae..839090a 100755
--- a/dev/release/post-09-website.sh
+++ b/dev/release/post-09-website.sh
@@ -30,6 +30,9 @@ main() {
local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
local -r source_top_dir="$( cd "${source_dir}/../../" && pwd )"
+ export SOURCE_DIR="${source_dir}"
+ source "${source_top_dir}/dev/release/utils-prepare.sh"
+
# Extract ADBC spec version from Doxygen macro in header.
local -r spec_version=$(grep '[\]version' "${source_top_dir}/adbc.h" | awk '{print $NF}')
local -r date=${POST_DATE:-$(date "+%Y-%m-%d")}
@@ -37,10 +40,8 @@ main() {
local -r contributor_command="git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-${prev_version}..apache-arrow-adbc-${version}"
local -r contributor_list=$(eval "${contributor_command}")
local -r contributors=$(echo "${contributor_list}" | wc -l)
- local -r milestone_info=$(gh api /repos/apache/arrow-adbc/milestones -X GET -f 'state=closed' --jq ".[] | select(.title | test(\" ${version}\$\"))")
- local -r milestone_number=$(echo "${milestone_info}" | jq -r '.number')
- local -r milestone_url=$(echo "${milestone_info}" | jq -r '.html_url')
- local -r issues=$(gh api graphql -f query="query { repository(owner: \"apache\", name: \"arrow-adbc\") { milestone(number:${milestone_number}) { issues(states:CLOSED) { totalCount } } } }" --jq '.data.repository.milestone.issues.totalCount')
+
+ set_resolved_issues "${version}"
cat <<EOF | tee "${filename}"
---
@@ -70,7 +71,7 @@ limitations under the License.
-->
The Apache Arrow team is pleased to announce the ${version} release of
-the Apache Arrow ADBC libraries. This covers includes [**${issues}
+the Apache Arrow ADBC libraries. This covers includes [**${RESOLVED_ISSUES}
resolved issues**][1] from [**${contributors} distinct contributors**][2].
This is a release of the **libraries**, which are at version
@@ -102,7 +103,7 @@ We welcome questions and contributions from all interested. Issues
can be filed on [GitHub][4], and questions can be directed to GitHub
or the [Arrow mailing lists][5].
-[1]: ${milestone_url}
+[1]: ${MILESTONE_URL}
[2]: #contributors
[3]: https://github.com/apache/arrow-adbc/blob/apache-arrow-adbc-${version}/CHANGELOG.md
[4]: https://github.com/apache/arrow-adbc/issues
diff --git a/dev/release/utils-prepare.sh b/dev/release/utils-prepare.sh
index 22c32eb..ec8a466 100644
--- a/dev/release/utils-prepare.sh
+++ b/dev/release/utils-prepare.sh
@@ -107,3 +107,30 @@ update_versions() {
popd
fi
}
+
+set_resolved_issues() {
+ # TODO: this needs to work with open milestones
+ local -r version="${1}"
+ local -r milestone_info=$(gh api \
+ /repos/apache/arrow-adbc/milestones \
+ -X GET \
+ -F state=all \
+ --jq ".[] | select(.title | test(\"ADBC Libraries ${version}\$\"))")
+ local -r milestone_number=$(echo "${milestone_info}" | jq -r '.number')
+
+ local -r graphql_query="query {
+ repository(owner: \"apache\", name: \"arrow-adbc\") {
+ milestone(number: ${milestone_number}) {
+ issues(states: CLOSED) {
+ totalCount
+ }
+ }
+ }
+}
+"
+
+ export MILESTONE_URL=$(echo "${milestone_info}" | jq -r '.html_url')
+ export RESOLVED_ISSUES=$(gh api graphql \
+ -f query="${graphql_query}" \
+ --jq '.data.repository.milestone.issues.totalCount')
+}
diff --git a/docs/source/development/releasing.rst b/docs/source/development/releasing.rst
index 8a2b901..bc7422f 100644
--- a/docs/source/development/releasing.rst
+++ b/docs/source/development/releasing.rst
@@ -177,7 +177,7 @@ Build source and binaries and submit them
Verify the Release
------------------
-Start the vote thread on dev@arrow.apache.org.
+Start the vote thread on dev@arrow.apache.org using the template email from ``06-binary-verify.sh``.
Voting and approval
===================
@@ -211,7 +211,7 @@ How to Verify Release Candidates
Alternatively, you can have the verification script download and install dependencies automatically via Conda.
See the environment variables below.
-#. Clone the project:
+#. Clone the project::
$ git clone https://github.com/apache/arrow-adbc.git