This is an automated email from the ASF dual-hosted git repository.

tison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git


The following commit(s) were added to refs/heads/main by this push:
     new 498a8e27 ci: add PR title lint following the conventional commits 
(#1317)
498a8e27 is described below

commit 498a8e27519bbdae9cf6f547327792d32dd8758e
Author: Twice <[email protected]>
AuthorDate: Sat Jan 6 19:36:32 2024 +0800

    ci: add PR title lint following the conventional commits (#1317)
---
 .asf.yaml                      |  2 +-
 .github/workflows/ci.yml       |  4 +-
 .github/workflows/pr-lint.yml  | 91 ++++++++++++++++++++++++++++++++++++++++++
 .github/workflows/release.yaml |  2 +-
 CONTRIBUTING.md                | 12 ++++++
 5 files changed, 107 insertions(+), 4 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index e9940948..875b4cd9 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -45,7 +45,7 @@ github:
   enabled_merge_buttons:
     squash:  true
     merge:   false
-    rebase:  true
+    rebase:  false
   protected_branches:
     main:
       required_status_checks:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1da0c44a..cec6b775 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -93,7 +93,7 @@ jobs:
           cd scala && sbt +test && cd -
 
   integration_tests:
-    name: integration_tests
+    name: Integration Tests
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
@@ -110,7 +110,7 @@ jobs:
         run: ./ci/run_ci.sh integration_tests
 
   javascript:
-    name: Javascript CI
+    name: JavaScript CI
     runs-on: ubuntu-latest
     strategy:
       matrix:
diff --git a/.github/workflows/pr-lint.yml b/.github/workflows/pr-lint.yml
new file mode 100644
index 00000000..bbd4c57f
--- /dev/null
+++ b/.github/workflows/pr-lint.yml
@@ -0,0 +1,91 @@
+# 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.
+
+name: "Lint PR"
+
+on:
+  pull_request_target:
+    types:
+      - opened
+      - edited
+      - synchronize
+
+permissions:
+  pull-requests: read
+
+jobs:
+  main:
+    name: Validate PR title
+    runs-on: ubuntu-latest
+    steps:
+      - uses: amannn/action-semantic-pull-request@v5
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          # Configure which types are allowed (newline-delimited).
+          # Default: https://github.com/commitizen/conventional-commit-types
+          types: |
+            fix
+            feat
+            build
+            chore
+            ci
+            docs
+            perf
+            refactor
+            revert
+            style
+            test
+          # Configure which scopes are allowed (newline-delimited).
+          # These are regex patterns auto-wrapped in `^ $`.
+          scopes: |
+            \S+
+          # Configure that a scope must always be provided.
+          requireScope: false
+          # Configure which scopes are disallowed in PR titles 
(newline-delimited).
+          # For instance by setting the value below, `chore(release): ...` 
(lowercase)
+          # and `ci(e2e,release): ...` (unknown scope) will be rejected.
+          # These are regex patterns auto-wrapped in `^ $`.
+          # disallowScopes: |
+          #   release
+          #   [A-Z]+
+          # Configure additional validation for the subject based on a regex.
+          # This example ensures the subject doesn't start with an uppercase 
character.
+          # subjectPattern: ^(?![A-Z]).+$
+          # If `subjectPattern` is configured, you can use this property to 
override
+          # the default error message that is shown when the pattern doesn't 
match.
+          # The variables `subject` and `title` can be used within the message.
+          # subjectPatternError: |
+          #   The subject "{subject}" found in the pull request title "{title}"
+          #   didn't match the configured pattern. Please ensure that the 
subject
+          #   doesn't start with an uppercase character.
+          # The GitHub base URL will be automatically set to the correct value 
from the GitHub context variable.
+          # If you want to override this, you can do so here (not recommended).
+          # githubBaseUrl: https://github.myorg.com/api/v3
+          # If the PR contains one of these newline-delimited labels, the
+          # validation is skipped. If you want to rerun the validation when
+          # labels change, you might want to use the `labeled` and `unlabeled`
+          # event triggers in your workflow.
+          ignoreLabels: |
+            ignore-semantic-pull-request
+          # If you're using a format for the PR title that differs from the 
traditional Conventional
+          # Commits spec, you can use these options to customize the parsing 
of the type, scope and
+          # subject. The `headerPattern` should contain a regex where the 
capturing groups in parentheses
+          # correspond to the parts listed in `headerPatternCorrespondence`.
+          # See: 
https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-commits-parser#headerpattern
+          # headerPattern: '^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$'
+          # headerPatternCorrespondence: type, scope, subject
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index efad0de0..945bef10 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -63,4 +63,4 @@ jobs:
         with:
           user: __token__
           password: ${{ secrets.PYPI_API_TOKEN }}
-          packages-dir: dist
\ No newline at end of file
+          packages-dir: dist
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 332e7dae..471335a5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -8,6 +8,18 @@ See [Good First 
Issues](https://github.com/apache/incubator-fury/contribute).
 
 Create an issue with [this 
form](https://github.com/apache/incubator-fury/issues/new/choose).
 
+## How to title your PR
+
+Generally we follows the [Conventional 
Commits](https://www.conventionalcommits.org/) for pull request titles, 
+since we will squash and merge the PR and use the PR title as the first line 
of commit message.
+
+For example, here are good PR titles:
+- feat(java): support xxx feature
+- fix(c++): blablabla
+- chore(python): remove useless yyy file
+
+For more details, please check [pr-lint.yml](./.github/workflows/pr-lint.yml).
+
 ## 🧪 Testing
 
 ### Python


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to