-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(dev/release): Improve release and post-release instructions (#249)
Filling in a few items while I remember the details!
- Loading branch information
1 parent
ec81297
commit d0300df
Showing
2 changed files
with
101 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -257,7 +257,12 @@ 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 | ||
and run | ||
(e.g., `usethis::pr_init("maint-0.2.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) | ||
targeting the maint-XX branch that was just pushed. | ||
When this is complete, run | ||
[01-prepare.R](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/01-prepare.sh): | ||
|
||
```bash | ||
|
@@ -287,7 +292,7 @@ the script but *does* need the | |
[dev/release/.env](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/.env.example) | ||
file to exist setting the appropriate `GPG_KEY_ID` environment variable. | ||
|
||
``` | ||
```bash | ||
# 02-sign.sh <version> <rc-num> | ||
dev/release/02-sign.sh 0.2.0 0 | ||
``` | ||
|
@@ -299,6 +304,15 @@ be on any particular branch but *does* need the | |
[dev/release/.env](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/.env.example) | ||
file to exist setting the appropriate `APACHE_USERNAME` environment variable. | ||
|
||
``` | ||
# 03-source.sh $0 <version> <rc-num> | ||
dev/release/03-source.sh 0.2.0 0 | ||
``` | ||
|
||
You should check that the release verification runs locally and/or | ||
start a | ||
[Verification workflow](https://github.com/apache/arrow-nanoarrow/actions/workflows/verify.yaml) and wait for it to complete. | ||
|
||
At this point the release candidate is suitable for a vote on the Apache Arrow developer mailing list. | ||
|
||
``` | ||
|
@@ -333,17 +347,76 @@ After a passing release vote, the following tasks must be completed: | |
|
||
``` | ||
[ ] Closed GitHub milestone | ||
[ ] Added release to Apache Reporter System | ||
[ ] Added release to the Apache Reporter System | ||
[ ] Uploaded artifacts to Subversion | ||
[ ] Created GitHub release | ||
[ ] Submit R package to CRAN | ||
[ ] Sent announcement to [email protected] | ||
[ ] Release blog post at https://github.com/apache/arrow-site/pull/288 | ||
[ ] Sent announcement to [email protected] | ||
[ ] Removed old artifacts from SVN | ||
[ ] Bumped versions on main | ||
``` | ||
|
||
Template for the email to [email protected]: | ||
### Close GitHub milestone | ||
|
||
Find the appropriate entry in https://github.com/apache/arrow-nanoarrow/milestones/ | ||
and mark it as closed. | ||
|
||
### Add release to the Apache Reporter System | ||
|
||
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.2.0`. | ||
|
||
### Upload artifacts to Subversion / Create GitHub Release | ||
|
||
These are both handled by | ||
[post-01-upload.sh](https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/post-01-upload.sh). | ||
This script must be run by a PMC member whose `APACHE_USERNAME` environment variable | ||
has been set in `.env`. | ||
|
||
```bash | ||
dev/release/post-01-upload.sh 0.2.0 0 | ||
``` | ||
|
||
### Submit R package to CRAN | ||
|
||
The R package submission occurs from a separate branch to facilitate including | ||
any small changes requested by a member of the CRAN team; however, these | ||
updates are usually automatic and do not require additional changes. | ||
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.2.0`) | ||
- Run `usethis::pr_init("r-cran-maint-0.2.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 | ||
- Run `urlchecker::url_check()` | ||
- Run `devtools::check_win_devel()` and wait for the response | ||
- Run `devtools::submit_cran()` | ||
- Confirm submission email | ||
|
||
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.2.0.1` | ||
in `DESCRIPTION`). | ||
|
||
### Release blog post | ||
|
||
Final review + merge of the blog post that was drafted prior to preparation of | ||
the release candidate. | ||
|
||
### Send announcement | ||
|
||
This email should be sent to [email protected] and [email protected]. It | ||
**must** be sent from your Apache email address and **must** be sent through | ||
the `mail-relay.apache.org` outgoing server. | ||
|
||
Email template: | ||
|
||
``` | ||
[ANNOUNCE] Apache Arrow nanoarrow 0.2.0 Released | ||
|
@@ -375,3 +448,25 @@ The Apache Arrow Community | |
[4]: https://lists.apache.org/[email protected] | ||
[5]: https://lists.apache.org/[email protected] | ||
``` | ||
|
||
### Remove old artifacts from SVN | ||
|
||
These artifacts include any release candidates that were uploaded to | ||
<https://dist.apache.org/repos/dist/dev/arrow/>. You can remove them | ||
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.2.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): | ||
|
||
```bash | ||
dev/release/post-02-bump-versions.sh . 0.2.0 0.3.0 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters