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]