You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2021/07/19 19:28:42 UTC
[arrow-rs] branch master updated: Improve release documentation
(#548)
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/master by this push:
new ede81fc Improve release documentation (#548)
ede81fc is described below
commit ede81fc6c0d27f6b3123a19f82ed364de0ebf9f9
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Mon Jul 19 15:28:35 2021 -0400
Improve release documentation (#548)
---
dev/release/README.md | 26 ++++++++++++++------------
dev/release/update_change_log.sh | 5 ++++-
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/dev/release/README.md b/dev/release/README.md
index bf03cbf..e5fe72a 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -21,13 +21,13 @@
## Branching
-We would maintain two branches: `active_release` and `master`.
+Arrow maintains two branches: `active_release` and `master`.
- All new PRs are created and merged against `master`
- All versions are created from the `active_release` branch
- Once merged to master, changes are "cherry-picked" (via a hopefully soon to be automated process), to the `active_release` branch based on the judgement of the original PR author and maintainers.
-- We do not merge breaking api changes, as defined in [Rust RFC 1105](https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md) to the `active_release`
+- We do not merge breaking api changes, as defined in [Rust RFC 1105](https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md) to the `active_release` branch. Instead, they are merged to the `master` branch and included in the next major release.
Please see the [original proposal](https://docs.google.com/document/d/1tMQ67iu8XyGGZuj--h9WQYB9inCk6c2sL_4xMTwENGc/edit?ts=60961758) document the rational of this change.
@@ -35,11 +35,11 @@ Please see the [original proposal](https://docs.google.com/document/d/1tMQ67iu8X
We aim to release every other week from the `active_release` branch.
-Every other Monday, a maintainer proposes a minor (e.g. `4.1.0` to `4.2.0`) or patch (e.g `4.1.0` to `4.1.1`) release, depending on changes to the `active_release` in the previous 2 weeks, following the process beloe.
+Every other week, a maintainer proposes a minor (e.g. `4.1.0` to `4.2.0`) or patch (e.g `4.1.0` to `4.1.1`) release, depending on changes to the `active_release` in the previous 2 weeks, following the process below.
-If this release is approved by at least three PMC members, a new version from that tarball is released to crates.io later in the week.
+If this release is approved by at least three PMC members, that tarball is uploaded to the official apache distribution sites, a new version from that tarball is released to crates.io later in the week.
-Apache Arrow in general does synchronized major releases every three months. The Rust implementation aims to do its major releases in the same time frame.
+The overall Apache Arrow in general does synchronized major releases every three months. The Rust implementation aims to do its major releases in the same time frame.
# Release Mechanics
@@ -62,7 +62,7 @@ crates.io, the Rust ecosystem's package manager.
We create a `CHANGELOG.md` so our users know what has been changed between releases.
The CHANGELOG is created automatically using
-[change_log.sh](https://github.com/apache/arrow-rs/blob/master/change_log.sh)
+[update_change_log.sh](https://github.com/apache/arrow-rs/blob/master/dev/release/update_change_log.sh)
This script creates a changelog using github issues and the
labels associated with them.
@@ -133,13 +133,13 @@ Pick numbers in sequential order, with `1` for `rc1`, `2` for `rc2`, etc.
### Create, sign, and upload tarball
-Run the `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in previous steps:
+Run `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in previous steps:
```shell
./dev/release/create-tarball.sh 4.1.0 2
```
-This script
+The `create-tarball.sh` script
1. creates and uploads a release candidate tarball to the [arrow
dev](https://dist.apache.org/repos/dist/dev/arrow) location on the
@@ -184,7 +184,7 @@ For the release to become "official" it needs at least three PMC members to vote
#### Verifying Release Candidates
-There is a script in this repository which can be used to help `dev/release/verify-release-candidate.sh` assist the verification process. Run it like:
+The `dev/release/verify-release-candidate.sh` is a script in this repository that can assist in the verification process. Run it like:
```
./dev/release/verify-release-candidate.sh 4.1.0 2
@@ -202,6 +202,8 @@ Move tarball to the release location in SVN, e.g. https://dist.apache.org/repos/
./dev/release/release-tarball.sh 4.1.0 2
```
+Congratulations! The release is now offical!
+
### Publish on Crates.io
Only approved releases of the tarball should be published to
@@ -231,7 +233,7 @@ following commands
# Backporting
-As of now, the plan for backporting to `active_release` is to do so semi-manually.
+As of the time of writing, backporting to `active_release` done semi-manually.
_Note_: Since minor releases will be automatically picked up by other CI systems, it is CRITICAL to only cherry pick commits that are API compatible -- that is that do not require any code changes in crates that rely on arrow. API changes are released with the next major version.
@@ -243,7 +245,7 @@ Step 3a: If CI passes, merge cherry-pick PR
Step 3b: If CI doesn't pass or some other changes are needed, the PR should be reviewed / approved as normal prior to merge
-For example, to backport `b2de5446cc1e45a0559fb39039d0545df1ac0d26` to active_release use the folliwing
+For example, to backport `b2de5446cc1e45a0559fb39039d0545df1ac0d26` to active_release, you could use the following command
```shell
git clone git@github.com:apache/arrow-rs.git /tmp/arrow-rs
@@ -260,7 +262,7 @@ There are two labels that help keep track of backporting:
You can find candidates to cherry pick using [this filter](https://github.com/apache/arrow-rs/pulls?q=is%3Apr+is%3Aclosed+-label%3Arelease-cherry-pick+-label%3Acherry-picked)
-## Rationale for creating PRs:
+## Rationale for creating PRs on cherry picked PRs:
1. PRs are a natural place to run the CI tests to make sure there are no logical conflicts
2. PRs offer a place for the original author / committers to comment and say it should/should not be backported.
diff --git a/dev/release/update_change_log.sh b/dev/release/update_change_log.sh
index 3f4412f..309564a 100755
--- a/dev/release/update_change_log.sh
+++ b/dev/release/update_change_log.sh
@@ -18,7 +18,10 @@
# under the License.
#
-# invokes the changelog generator with the config located in
+# invokes the changelog generator from
+# https://github.com/github-changelog-generator/github-changelog-generator
+#
+# With the config located in
# arrow-rs/.github_changelog_generator
#
# Usage: