alamb commented on a change in pull request #299: URL: https://github.com/apache/arrow-rs/pull/299#discussion_r637388949
########## File path: dev/release/README.md ########## @@ -0,0 +1,135 @@ +<!--- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Release management scripts + +# Process Overview +(TODO) + +# Change log creation +TODO write up expectations about managing release notes via labels, etc: +https://github.com/apache/arrow-rs/pull/298#discussion_r633080039 + + +# Mechanics of creating a release + +## Prepare active_release + +Create and merge a PR to update changelog and versions on `active_release` branch. See [#298](https://github.com/apache/arrow-rs/pull/298) for an example + +``` +git checkout active_release +git pull +git checkout -b make-release +# create changelog +# manully edit ./dev/release/update_change_log.sh to reflect the release +CHANGELOG_GITHUB_TOKEN=<TOKEN>./dev/release/update_change_log.sh +git commit -a -m 'Create changelog' +# update versions +sed -i '' -e 's/5.0.0-SNAPSHOT/4.1.0/g' `find . -name 'Cargo.toml'` +git commit -a -m 'Update version' + +``` + + + +## Prepare release candidate + +(Note you need to be a committer to run these scripts as they upload to the apache svn servers) + +### Create git tag for the release: + +While the official release artifact is a signed tarball, having a tag to the commit it was created from can be useful for code archaeology. + +Using a string such as `4.0.1` as the `<version>`, create and push the tag thusly: + +```shell +git fetch apache +git tag <version> apache/active_release +# push tag to apache +git push apache <version> +``` + +### Create, sign, and upload tarball + +Run the `create-tarball.sh` with the `<version>` tag you created in previous steps + +This will create and upload a release candidate tarball to the [arrow +dev](https://dist.apache.org/repos/dist/dev/arrow) location of the +apache distribution svn server and provide you an email template to +send to [email protected] for release voting. + + +### Vote on artifact + +Send the email such as the following to [email protected] + +``` +TODO get from initial +``` + +For the release to become "official" it needs at least three PMC members to vote +1 on it. + + +#### If the release is not approved + +If the release is not approved, fix whatever the problem is +and try again + +Open question: The simplest process is to make a new minor release version (e.g. if `4.1.1` didn't pass, make `4.1.2`) and run the process again. This would allow us to avoid the overhead of creating "RC / release candidates but would means published version numbers could have gaps Review comment: Updated to use `rc1` etc to be consistent with other arrow releases -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
