You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2021/05/17 17:40:39 UTC

[GitHub] [arrow-rs] jorgecarleitao commented on a change in pull request #299: Document and automate new release process (WIP)

jorgecarleitao commented on a change in pull request #299:
URL: https://github.com/apache/arrow-rs/pull/299#discussion_r633729159



##########
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

Review comment:
       ```suggestion
   CHANGELOG_GITHUB_TOKEN=<TOKEN> ./dev/release/update_change_log.sh
   ```

##########
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 dev@arrow.apache.org for release voting.
+
+
+### Vote on artifact
+
+Send the email such as the following to dev@arrow.apache.org
+
+```
+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:
       imo we should not jump versions. arrow uses RC.




-- 
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:
users@infra.apache.org