diff --git a/.asf.yaml b/.asf.yaml index aab8c1e6df2df..7f597369664a1 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -50,6 +50,75 @@ github: main: required_pull_request_reviews: required_approving_review_count: 1 + # needs to be updated as part of the release process + # Github doesn't support wildcard branch protection rules, only exact branch names + # https://github.com/apache/infrastructure-asfyaml?tab=readme-ov-file#branch-protection + # Keeping set of protected branches for future releases + # Meanwhile creating a prerelease script that will update the branch protection names + # automatically. Keep track on it https://github.com/apache/datafusion/issues/17134 + branch-50: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-51: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-52: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-53: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-54: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-55: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-56: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-57: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-58: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-59: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-60: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-61: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-62: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-63: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-64: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-65: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-66: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-67: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-68: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-69: + required_pull_request_reviews: + required_approving_review_count: 1 + branch-70: + required_pull_request_reviews: + required_approving_review_count: 1 pull_requests: # enable updating head branches of pull requests allow_update_branch: true diff --git a/.github/workflows/extended.yml b/.github/workflows/extended.yml index 805856339be51..ad63ea49d3514 100644 --- a/.github/workflows/extended.yml +++ b/.github/workflows/extended.yml @@ -32,6 +32,10 @@ on: push: branches: - main + # support extended test suite for release candidate branches, + # it is not expected to have many changes in these branches, + # so running extended tests is not a burden + - 'branch-*' workflow_dispatch: inputs: pr_number: diff --git a/dev/release/README.md b/dev/release/README.md index e5444ba4c6912..02c2f663c69b5 100644 --- a/dev/release/README.md +++ b/dev/release/README.md @@ -36,8 +36,8 @@ If you would like to propose your change for inclusion in a release branch for a patch release: 1. Find (or create) the issue for the incremental release ([example release issue]) and discuss the proposed change there with the maintainers. -1. Follow normal workflow to create PR to `main` branch and wait for its approval and merge. -1. After PR is squash merged to `main`, branch from most recent release branch (e.g. `branch-37`), cherry-pick the commit and create a PR targeting the release branch [example backport PR]. +2. Follow normal workflow to create PR to `main` branch and wait for its approval and merge. +3. After PR is squash merged to `main`, branch from most recent release branch (e.g. `branch-37`), cherry-pick the commit and create a PR targeting the release branch [example backport PR]. For example, to backport commit `12345` from `main` to `branch-43`: @@ -128,6 +128,15 @@ release. See [#9697](https://github.com/apache/datafusion/pull/9697) for an example. +Modify `asf.yaml` to protect future release candidate branch to prevent accidental merges: + +```yaml +# needs to be updated as part of the release process +branch-50: + required_pull_request_reviews: + required_approving_review_count: 1 +``` + Here are the commands that could be used to prepare the `38.0.0` release: ### Update Version