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

maximebeauchemin pushed a commit to branch eslint_precommit
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 1b57a1d8f6eab88e96f418a12e8cdfda2e773707
Author: Maxime Beauchemin <[email protected]>
AuthorDate: Tue Jan 14 12:52:43 2025 -0800

    chore: add eslint to pre-commit hooks
    
    Chiseling at https://github.com/apache/superset/pull/31590 and bringing 
what's atomically committable out of there.
    
    This simply adds eslint checks to pre-commit. Note that:
    - it requires having run `npm i` in superset-frontend
    - it's set up to NOT run in CI as part of the pre-commit validation 
workflow, since we run eslint more formally in another workflow
    
    Why doing this? Currently it's common to forget to run `npm run lint` prior 
to committing/pushing, so people can waste time waiting for CI to fail where it 
could be caught easily. It's nice to have pre-commit do the check itself 
because it will only evaluate the files that have changed, making it much 
faster than running a full lint run against all files.
---
 .github/workflows/pre-commit.yml | 4 +++-
 .pre-commit-config.yaml          | 8 ++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index 640468d2a2..dcb4df8285 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -18,7 +18,7 @@ jobs:
     runs-on: ubuntu-24.04
     strategy:
       matrix:
-        python-version: ["current", "previous"]
+        python-version: ["current", "next", "previous"]
     steps:
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@v4
@@ -41,6 +41,8 @@ jobs:
       - name: pre-commit
         run: |
           set +e  # Don't exit immediately on failure
+          # Skip eslint as it requires `npm ci` and is executed in another job
+          export SKIP=eslint
           pre-commit run --all-files
           if [ $? -ne 0 ] || ! git diff --quiet --exit-code; then
             echo "❌ Pre-commit check failed."
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f436161652..bb34ee4055 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -52,6 +52,14 @@ repos:
       - id: trailing-whitespace
         exclude: ^.*\.(snap)
         args: ["--markdown-linebreak-ext=md"]
+  - repo: local
+    hooks:
+      - id: eslint
+        name: eslint
+        entry: bash -c 'cd superset-frontend && npm run eslint -- $(echo "$@" 
| sed "s|superset-frontend/||g")'
+        language: system
+        pass_filenames: true
+        files: \.(js|jsx|ts|tsx)$
   - repo: https://github.com/pre-commit/mirrors-prettier
     rev: v4.0.0-alpha.8 # Use the sha or tag you want to point at
     hooks:

Reply via email to