This is an automated email from the ASF dual-hosted git repository.
xushiyan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hudi-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 6a995e2 chore: update release guide and issue templates (#282)
6a995e2 is described below
commit 6a995e2374d0869cc30d38344335d2f200f6e24e
Author: Shiyan Xu <[email protected]>
AuthorDate: Thu Jan 30 20:07:21 2025 -0600
chore: update release guide and issue templates (#282)
Update release guide, issue templates, codeowners, and cargo project crate
description.
---
.github/CODEOWNERS | 18 +++
.../ISSUE_TEMPLATE/{bug_report.yml => 1-bug.yml} | 0
.../{feature_request.yml => 2-feature-request.yml} | 20 +---
Cargo.toml | 2 +-
release/README.md | 131 ++++++++++++---------
5 files changed, 103 insertions(+), 68 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..abcf568
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,18 @@
+# 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.
+
+* @xushiyan
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml
b/.github/ISSUE_TEMPLATE/1-bug.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/bug_report.yml
rename to .github/ISSUE_TEMPLATE/1-bug.yml
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml
b/.github/ISSUE_TEMPLATE/2-feature-request.yml
similarity index 66%
rename from .github/ISSUE_TEMPLATE/feature_request.yml
rename to .github/ISSUE_TEMPLATE/2-feature-request.yml
index 60bcc6f..43d7d70 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/2-feature-request.yml
@@ -17,30 +17,22 @@
name: Feature request 🚀
description: Suggest an idea to help us improve
-labels: ['feat']
+labels: ['feature']
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: textarea
- id: feat-description
+ id: feature-description
attributes:
- label: Description of the improvement
- description: Tell us what improvement would you like to suggest
- validations:
- required: true
- - type: textarea
- id: expected-behavior
- attributes:
- label: Expected behavior
- description: What should be the expected behavior.
- placeholder: A clear and concise description of what you expected to
happen.
+ label: Feature Description
+ description: Tell us how the feature would work
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
- description: Do you want to share any additional context about this
improvement?
- placeholder: Add any other context about the improvement here.
+ description: Any additional context about this feature?
+ placeholder: Tell us any related context like production use cases.
diff --git a/Cargo.toml b/Cargo.toml
index 24e60e6..00f9429 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,7 +29,7 @@ license = "Apache-2.0"
rust-version = "1.81"
keywords = ["apachehudi", "hudi", "datalake", "arrow"]
readme = "README.md"
-description = "A native Rust library for Apache Hudi"
+description = "The native Rust implementation for Apache Hudi"
homepage = "https://github.com/apache/hudi-rs"
repository = "https://github.com/apache/hudi-rs"
diff --git a/release/README.md b/release/README.md
index 4ddfb85..c11ade2 100644
--- a/release/README.md
+++ b/release/README.md
@@ -29,7 +29,7 @@ corresponding milestone for the release, and edit the issue
description as below
### Issues
-- [ ] All remaining issues in the
[milestone](https://github.com/apache/hudi-rs/milestone/1) should be closed.
+- [ ] All other issues in the [release
milestone](https://github.com/apache/hudi-rs/milestone/1) should be closed.
> [!IMPORTANT]
> Highlight blocker issues if any
@@ -37,28 +37,56 @@ corresponding milestone for the release, and edit the issue
description as below
- [ ] https://github.com/apache/hudi-rs/issues/xxx
- [ ] https://github.com/apache/hudi-rs/issues/xxx
-### GitHub
+### Prepare release candidate(s)
-- [ ] Bump version
-- [ ] Push release tag
-
-### ASF
-
-- [ ] Create an ASF release
-- [ ] Upload artifacts to the SVN dist repo
-- [ ] Start VOTE in dev email list
+- [ ] Create a release branch
+- [ ] Bump the version in the release branch for the target RC
+- [ ] Bump the version in `main` branch
+- [ ] Upload the target RC artifacts to the ASF dev repo (SVN)
+- [ ] Verify the target RC artifacts
+- [ ] Push a desired RC release git tag to the release branch
+- [ ] Start VOTE in `[email protected]`
> [!IMPORTANT]
> Proceed from here only after VOTE passes.
### Official release
-- [ ] Push the release git tag
-- [ ] Publish artifacts to SVN RELEASE branch
-- [ ] Merge the PR to update the changelog
+- [ ] Bump the version in the release branch for the official release
+- [ ] Push the official release git tag to the release branch
+- [ ] Upload the release artifacts to the ASF release repo (SVN)
+- [ ] Merge a PR to update the changelog in `main` branch
+- [ ] Publish release notes in https://github.com/apache/hudi-rs/releases
+- [ ] Register ASF release in https://reporter.apache.org/addrelease.html?hudi
- [ ] Send `ANNOUNCE` email to dev and user email lists
+- [ ] Close this tracking issue and the release milestone
```
+## ASF work
+
+### Upload source release to SVN dev
+
+> [!NOTE]
+> Make sure you're using a computer that has your code-signing gpg key
installed.
+
+Run the below script to create and upload the source release artifacts.
+
+```shell
+RELEASE_VER=0.1.0-rc.1
+
+./release/upload_src_release_to_dev.sh $RELEASE_VER ${YOUR CODE-SIGNING KEY ID}
+```
+
+Run the below script to verify the source release.
+
+```shell
+RELEASE_VER=0.1.0-rc.1
+
+./release/verify_src_release.sh $RELEASE_VER dev
+```
+
+Fix any issues if found before proceeding to the next step.
+
## GitHub work
> [!NOTE]
@@ -74,6 +102,9 @@ Execute the below script that creates a branch with the new
version changes comm
### Bump version in release branch
+> [!NOTE]
+> When working on a release branch, use a local clone of `apache/hudi-rs`
instead of your own fork.
+
For a major or minor release, create a release branch in the format of
`release/[0-9]+.[0-9]+.x` matching the target
release version. For example, if it's `0.2.0`, cut a branch named
`release/0.2.x`, if it's `1.0.0`, cut a branch
named `release/1.0.x`.
@@ -91,10 +122,18 @@ On the release branch, bump the version to indicate
pre-release by pushing a com
- If it is ready for voting, go with `rc.1`, `rc.2`, etc
```shell
-cargo set-version 0.2.0-rc.1 --manifest-path crates/hudi/Cargo.toml
-git commit -am "build(release): bump version to 0.2.0-rc.1"
+RELEASE_VER=0.2.0-rc.1
+
+cargo set-version $RELEASE_VER --manifest-path crates/hudi/Cargo.toml
+git commit -am "build(release): bump version to $RELEASE_VER"
```
+### Testing
+
+Once the "bump version" commit is pushed, CI will be triggered and all tests
need to pass before proceed to the next.
+
+Perform any release related tests, such as integration tests, before
proceeding to the next step.
+
### Generate changelog
We use [cliff](https://git-cliff.org/) to generate changelogs. Install it by
running the below command.
@@ -117,12 +156,6 @@ git cliff release-{previous_release_version}..HEAD | xclip
Paste the changelog output as a comment on the tracking issue.
-### Testing
-
-Once the "bump version" commit is pushed, CI will be triggered and all tests
need to pass before proceed to the next.
-
-Perform any release related tests, such as integration tests, before
proceeding to the next step.
-
### Push tag
> [!IMPORTANT]
@@ -138,29 +171,13 @@ Push a tag to the commit that matches to the version in
the form of `release-*`.
> pypi.org, which, if successful, is irreversible. Same versions are not
> allowed to publish more than once.
```shell
-git tag release-0.1.0-rc.1
-git push origin release-0.1.0-rc.1
-```
-
-Once the CI completes, check crates.io and pypi.org for the new release
artifacts.
-
-## ASF work
-
-### Upload source release to SVN dev
+RELEASE_VER=0.1.0-rc.1
-Run the below script to create and upload the source release artifacts.
-
-```shell
-./release/upload_src_release_to_dev.sh
-```
-
-Run the below script to verify the source release.
-
-```shell
-./release/verify_src_release.sh 0.1.0-rc.1 dev
+git tag release-$RELEASE_VER
+git push origin release-$RELEASE_VER
```
-Fix any issues if found before proceeding to the next step.
+Once the CI completes, check crates.io and pypi.org for the new release
artifacts.
### Start a `[VOTE]` thread
@@ -208,8 +225,10 @@ Release Manager
Remove the pre-release suffix from the version in the release branch.
```shell
-cargo set-version 0.2.0 --manifest-path crates/hudi/Cargo.toml
-git commit -am "build(release): bump version to 0.2.0"
+RELEASE_VER=0.2.0
+
+cargo set-version $RELEASE_VER --manifest-path crates/hudi/Cargo.toml
+git commit -am "build(release): bump version to $RELEASE_VER"
```
Wait for the CI to pass before proceeding to the next step.
@@ -219,13 +238,17 @@ Wait for the CI to pass before proceeding to the next
step.
Run the below script to create and upload the source release artifacts.
```shell
-./release/publish_src_release.sh
+RELEASE_VER=0.2.0
+
+./release/publish_src_release.sh $RELEASE_VER ${YOUR CODE-SIGNING KEY ID}
```
Run the below script to verify the source release.
```shell
-./release/verify_src_release.sh 0.2.0 release
+RELEASE_VER=0.2.0
+
+./release/verify_src_release.sh $RELEASE_VER release
```
There shouldn't be any issue in verifying the source release at this step. But
if any error came out from it,
@@ -238,8 +261,10 @@ revert the last version bump commit, fix the reported
error, and start a new rel
> pypi.org, which, if successful, is irreversible. Same versions are not
> allowed to publish more than once.
```shell
-git tag release-0.2.0
-git push origin release-0.2.0
+RELEASE_VER=0.2.0
+
+git tag release-$RELEASE_VER
+git push origin release-$RELEASE_VER
```
Once the CI completes, check crates.io and pypi.org for the new release
artifacts.
@@ -253,23 +278,23 @@ Close the tracking issue.
### Send `ANNOUNCE` email
```text
-subject: [ANNOUNCE] hudi-rs 0.1.0 released
+subject: [ANNOUNCE] hudi-rs ${RELEASE_VER} released
Hi all,
-The Apache Hudi community is pleased to announce the release 0.1.0 of
-hudi-rs <https://github.com/apache/hudi-rs>, a native Rust library for
-Apache Hudi, with bindings into Python.
+The Apache Hudi community is pleased to announce the release ${RELEASE_VER} of
+hudi-rs <https://github.com/apache/hudi-rs>, the native Rust implementation for
+Apache Hudi, with Python API bindings.
Highlights for this release:
<insert highlights here based on the changelog>
The release notes can be found here
-https://github.com/apache/hudi-rs/releases/tag/release-0.1.0
+https://github.com/apache/hudi-rs/releases/tag/release-${RELEASE_VER}
The source releases are available here
-https://dist.apache.org/repos/dist/release/hudi/hudi-rs-0.1.0/
+https://dist.apache.org/repos/dist/release/hudi/hudi-rs-${RELEASE_VER}/
Please refer to the readme for installation and usage examples
https://github.com/apache/hudi-rs/blob/main/README.md